From e733fbc45afe63702b909ba1341bec553930e7f0 Mon Sep 17 00:00:00 2001 From: "huanqing.shao" Date: Tue, 24 Sep 2019 22:52:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9E=84=E5=BB=BA=20OCP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../build.assets/image-20190924201906038.png | Bin 0 -> 83277 bytes learning/k8s-practice/ocp/build.md | 255 +++++++++++++++++- learning/k8s-practice/ocp/index.md | 2 +- 3 files changed, 255 insertions(+), 2 deletions(-) create mode 100644 learning/k8s-practice/ocp/build.assets/image-20190924201906038.png diff --git a/learning/k8s-practice/ocp/build.assets/image-20190924201906038.png b/learning/k8s-practice/ocp/build.assets/image-20190924201906038.png new file mode 100644 index 0000000000000000000000000000000000000000..c761bc4a573f5db56e0672ff88d410ba3a5557e0 GIT binary patch literal 83277 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

;v93@I_+Y%GSif?g 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 properties --> docker.host` 修改为 `unix:///var/run/docker.sock` + * `project --> properties --> docker.image.prefix` 修改为 `ocpsample` (此处使用你在 https://hub.docker.com 的账号) + +``` xml {11,12} + + 1.8 + 2.0.1 + 2.1 + 1.14 + 4.1.13 + 1.2.60 + 3.4.1 + 1.8 + 1.8 + unix:///var/run/docker.sock + ocpsample + 2.0.4.RELEASE + 2.0.1.RELEASE + Cairo-SR3 + 1.1.6.RELEASE + 5.1.1.RELEASE + 2.3.4.RELEASE + 4.1 + UTF-8 + 5.0.2.Final + 6.4.1 + Finchley.SR2 + +``` + +## 构建 jar 包 + +* 在 master 节点执行 `cd /root/open-capacity-platform` +* 在 master 节点执行 `mvn clean package -DskipTests`,输出结果如下所示 + + ``` sh + [INFO] zipkin-center ...................................... SUCCESS [ 0.009 s] + [INFO] zipkin-center-es ................................... SUCCESS [ 0.003 s] + [INFO] es-server .......................................... SUCCESS [ 1.156 s] + [INFO] es-client .......................................... SUCCESS [ 0.515 s] + [INFO] new-api-gateway .................................... SUCCESS [ 1.956 s] + [INFO] web-portal ......................................... SUCCESS [ 0.004 s] + [INFO] back-center ........................................ SUCCESS [ 1.735 s] + [INFO] ------------------------------------------------------------------------ + [INFO] BUILD SUCCESS + [INFO] ------------------------------------------------------------------------ + [INFO] Total time: 01:09 min + [INFO] Finished at: 2019-09-24T13:23:44+08:00 + [INFO] ------------------------------------------------------------------------ + ``` +::: tip +* **构建时间**:在首次执行时 `mvn clean package -DskipTests` 时,由于需要从 maven 中央仓库拉取 OCP 所依赖的 jar 包以及 maven 所需要的 plugin 等资源,耗时比较长,作者第一次执行该命令时等候了 32 分钟。 + + * 在第二次以及以后的执行中,只需要 1 分钟左右的时间即可完成构建 +* **构建结果**:完成构建后,jar包存在于 java 模块的 `./target/` 目录下,例如 eureka-server 子模块的jar包位于路径 `/root/open-capacity-platform/register-center/eureka-server/target/eureka-server.jar` + * jar文件所在目录是 java 项目的一种约定 + * jar文件的名字则在由子模块 pom.xml 文件中 `build.finalName` 字段指定。例如 `/root/open-capacity-platform/register-center/eureka-server/pom.xml` 中 `build.finalName` 字段为 `${project.artifactId}`,该变量的取值为 `eureka-server`,因此jar文件的名字为 eureka-server.jar + * 其他jar文件可在对应子模块的 `./target/` 目录下找到 +::: + +## 构建docker镜像并推送到registry + +### eureka-server + +* 执行命令 `cd /root/open-capacity-platform/register-center/eureka-server` +* 执行命令 `mvn docker:build` 输出结果如下所示: + +``` +ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null} +Successfully built 2fa9cf75f7ba +Successfully tagged ocpsample/eureka-server:latest +[INFO] Built ocpsample/eureka-server +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 17.900 s +[INFO] Finished at: 2019-09-24T13:45:45+08:00 +[INFO] ------------------------------------------------------------------------ +``` + + * OCP中由于全是 java 项目,因此使用了 docker 的 maven 插件 `com.spotify.docker-maven-plugin` 进行 docker 镜像的构建 + * 该插件的配置在子模块目录 pom.xml 文件的 `build.plugins` 字段 + * OCP 将该插件的两个全局配置项作为属性提取到了 `/root/open-capacity-platform/pom.xml` 文件中,即我们在 [修改配置](#修改配置) 章节提前修改好的属性 `docker.image.prefix` 和 `docker.host` + > `docker-maven-plugin` 在 maven 环境中给我们带来了很大的便利,您仍然有必要熟悉 `docker build` 命令,以便您能够轻松地处理 php/nodejs/python 等类型的项目 + ``` xml {8,11} + + + com.spotify + docker-maven-plugin + 0.4.13 + + ${docker.image.prefix}/${project.artifactId} + src/main/docker + + ${docker.host} + + + / + ${project.build.directory} + ${project.build.finalName}.jar + + + + + ``` + +* 执行命令 `docker login` 输入您在 hub.docker.com 的用户名密码,输出结果如下所示 + +``` sh +Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. +Username: ocpsample +Password: +WARNING! Your password will be stored unencrypted in /root/.docker/config.json. +Configure a credential helper to remove this warning. See +https://docs.docker.com/engine/reference/commandline/login/#credentials-store + +Login Succeeded +``` + +* 执行命令 `docker push ocpsample/eureka-server:latest` + + 如果推送成功,将显示 + + ``` + The push refers to repository [docker.io/ocpsample/eureka-server] + daf5b9e5336a: Layer already exists + b59179c58f56: Layer already exists + ceaf9e1ebef5: Layer already exists + 9b9b7f3d56a0: Layer already exists + f1b5933fe4b5: Layer already exists + latest: digest: sha256:7fb0f1b566e9d9183c65f2ceed3740d210072b2317523b6399ef2745fe87b367 size: 1371 + ``` + + > 推送速度取决于您与 hub.docker.com 之间的网络连接速度,时间有点儿长,您也可以直接使用本教程已经推送上去的镜像,直接进入在 Kubernetes 上部署的环节 + +### auth-server + +过程与 eureka 相同,因此只写命令,不再写过程 + +``` sh +# 切换到目录 +cd /root/open-capacity-platform/oauth-center/auth-server +# docker build +mvn docker:build +# docker push +docker push ocpsample/auth-server:latest +``` + +### user-center + +``` sh +# 切换到目录 +cd /root/open-capacity-platform/business-center/user-center +# docker build +mvn docker:build +# docker push +docker push ocpsample/user-center:latest +``` + +### api-gateway + +``` sh +# 切换到目录 +cd /root/open-capacity-platform/api-gateway +# docker build +mvn docker:build +# docker push +docker push ocpsample/api-gateway:latest +``` + +### back-center + +``` sh +# 切换到目录 +cd /root/open-capacity-platform/web-portal/back-center +# docker build +mvn docker:build +# docker push +docker push ocpsample/back-center:latest +``` + +## 查看镜像推送结果 + +使用 ocpsample 的用户名和密码登录 [https://hub.docker.com](https://hub.docker.com) 的 `Repositories` 菜单下可查看推送上去的镜像,如下图所示: + +::: tip +* 其使用您自己在 hub.docker.com 的用户名和密码 +::: + +![image-20190924201906038](./build.assets/image-20190924201906038.png) + +## 深度解析 + +### OCP的项目结构 + +Open Capacity Platform 中,使用一个三层结构在组织java项目: + +* **【项目根路径】:** 对应 open-capacity-platform 的项目根路径,包含: + * pom.xml,所有 java 项目的 parent,该 pom.xml 中需要以 module 的形式定义子模块的名称 + * **【模块分类】:** 对应 api-gateway / business-center / ... register-center 等模块 + * pom.xml,需要定义该模块的所有子模块 + * 某些情况下,第二层直接就是子模块代码,如 api-gateway / new-api-gateway 等 + * **【子模块代码】:** 对应(以 business-center 为例) file-center / generator-center / sms-center / user-center / workflow-center 等模块 + * pom.xml + * 子模块的代码 + +**这种代码组织结构的优点:** + +* OCP 可以将所有模块有机组织起来一个命令 `mvn clean build` 就可以完成所有项目的构建 +* 模块之间的依赖设定比较便捷 + +**缺点** + +* 所有模块全都在一个 gitee(github) 项目中,不能够按模块设定代码查看权限 + +### 另一种项目结构 + +相对于类似 OCP 的多层结构,还可以用扁平的结构组织 java 项目,即每一个模块一个 gitee(github) 项目,如果这样,OCP 的项目结构将如下所示: + +* **`ocp-root`** 用于存放原 `open-capacity-platform/pom.xml` 文件 +* **`ocp-$(category)-root`** 用于存放原 `open-capacity-platform/register-center/pom.xml` 等第二层 `【模块分类】` 的 pom.xml +* **`ocp-$(category)-$(modules)`** 用于存放原 `open-capacity-platform/register-center/eureka-server` 等第三层 `【子模块代码】` 的项目文件 + +**这种代码结构的优点:** + +* 可以按照模块进行权限控制 +* 可以将 CI/CD 的 pipeline 文件直接存在 项目的根路径,并按模块控制 pipline + +**缺点** + +* 需要先将 **ocp-root** / **ocp-category-root** 以及被其他模块依赖的 **ocp-modules** 提前构建并推送到私有 maven 仓库中(此时你还要自己搭建 maven 仓库) +* 模块的构建顺序需要人为控制 + +::: tip 如何选择 + +不同的结构,没有最好,只有最合适: +* OCP 作为开源项目,将所有模块放在同一个 gitee 项目中,便于管理和维护,同时也是为了让大家快速上手 +* 大型团队按服务领域拆分模块之后,每个团队负责一个到多个模块,同时要控制代码的可见范围,可能倾向于操作起来更复杂的扁平式结构 +* 先熟悉 OCP 的分层结构,在对 maven 以及 java 的包依赖有深入了解之后,在必要的时候再尝试扁平式的结构,对初学者来说,是一条友好的学习路径 + +::: diff --git a/learning/k8s-practice/ocp/index.md b/learning/k8s-practice/ocp/index.md index ac85987..a8124b7 100644 --- a/learning/k8s-practice/ocp/index.md +++ b/learning/k8s-practice/ocp/index.md @@ -4,7 +4,7 @@ layout: LearningLayout description: Kubernetes教程_使用Kuboard在Kubernetes上部署Spring_Cloud微服务平台OCP_open_capacity_platform微服务能力开放平台 --- -# Open_Capacity_Platform介绍 +# 在Kubernetes上部署SpringCloud ## 使用 Kuboard 在 K8S 上部署 OCP