# 容器镜像准备
配置镜像服务器
进入平台管理 -> 平台配置 -> 服务集成 -> 镜像服务器,点击新增按钮,配置镜像服务器信息
项目关联镜像库
进入平台管理 -> 配置管理 -> 镜像库 -> 项目关联,点击关联按钮,配置项目及镜像仓库信息,将镜像仓库与项目进行关联
配置代码库
进入项目 -> 代码,点击关联代码库按钮,配置代码库信息
添加 Kubernetes 组件
进入项目 -> 设计 -> 组件,点击添加组件按钮,分类选择程序类组件,组件类型选择 kubernetes
配置容器镜像构建流水线
进入项目 -> 集成 -> 构建,点击创建构建定义按钮,进行构建流水线信息配置
生成容器镜像
点击执行构建按钮,开始构建流水线。
当流水线执行完成后,进入集成 -> 镜像页面,选择所对应的镜像仓库,即可看到生成的容器镜像信息。
# 容器云集成部署配置
# 容器云集成
DevOps 集成容器云相关配置请参考 容器云集成 部分
# 容器云应用部署发布流水线配置
进入项目 -> 部署 -> 发布 -> 点击创建发布定义按钮 -> 配置发布环境 -> 环境部署图 -> 添加发布环境
切换到配置发布环境 -> 变量配置页面,为新增的发布环境添加如下变量
说明 变量名称 变量值 类型 是否作为入参 Kubernetes中的服务之间访问的端口 port 8080 常量 否 应用名称 deployName springboot-demo 常量 否 外部机器可访问的端口 nodePort 32515 常量 否 配置 Kubernetes 容器云应用部署原子任务
点击新增 kubernetes容器云应用部署原子任务,进行相关配置
需特别注意:在部署 YAML 表单属性的内容里,必须在 yaml.metadata 或 yaml.spec.template.metadata 中声明 app 和 release 两个属性,详情请见如下
apiVersion: apps/v1 kind: Deployment metadata: labels: release: ${pipelineContext.releaseInstanceName} # 此处必填,内容固定!!! app: ${deployName} # 此处必填!!!其值对应发布环境变量中变量名为 deployName 的值 name: ${deployName} # 其值对应发布环境变量中变量名为 deployName 的值 namespace: wyq-test spec: selector: matchLabels: app: ${deployName} # 其值对应发布环境变量中变量名为 deployName 的值 replicas: 1 template: metadata: labels: release: ${pipelineContext.releaseInstanceName} # 此处必填,内容固定!!! app: ${deployName} # 此处必填!!!其值对应发布环境变量中变量名为 deployName 的值 spec: containers: - image: ${componentArtifactUrl} # 此处容器镜像这么填即可,会自动获取镜像信息中所选的镜像URL imagePullPolicy: Always ports: - containerPort: ${port} # 其值对应发布环境变量中变量名为 port 的值 protocol: TCP name: web name: ${deployName} # 其值对应发布环境变量中变量名为 deployName 的值
Kubernetes 应用服务发现部署配置
新增 Kubernetes YAML 部署原子任务,配置资源和 YAML 信息
其中 YAML 内容如下:
--- apiVersion: v1 kind: Service metadata: name: ${deployName} # 其值对应发布环境变量中变量名为 deployName 的值 namespace: wyq-test labels: app: ${deployName} # 其值对应发布环境变量中变量名为 deployName 的值 spec: selector: app: ${deployName} # 其值对应发布环境变量中变量名为 deployName 的值 type: NodePort ports: - name: web port: ${port} # 其值对应发布环境变量中变量名为 port 的值 targetPort: web nodePort: ${nodePort} # 其值对应发布环境变量中变量名为 nodePort 的值
# 容器云应用部署发布流水线执行
点击发布,开始执行容器云应用部署发布流水线。
以下为流水线执行成功后的效果图: