# 容器镜像准备

  • 配置镜像服务器

    进入平台管理 -> 平台配置 -> 服务集成 -> 镜像服务器,点击新增按钮,配置镜像服务器信息

    image-repository-configuration

  • 项目关联镜像库

    进入平台管理 -> 配置管理 -> 镜像库 -> 项目关联,点击关联按钮,配置项目及镜像仓库信息,将镜像仓库与项目进行关联

    project-relate-image-repository-configuration

  • 配置代码库

    进入项目 -> 代码,点击关联代码库按钮,配置代码库信息

    relate-code-repository

  • 添加 Kubernetes 组件

    进入项目 -> 设计 -> 组件,点击添加组件按钮,分类选择程序类组件,组件类型选择 kubernetes

    k8s-component-configuration

  • 配置容器镜像构建流水线

    进入项目 -> 集成 -> 构建,点击创建构建定义按钮,进行构建流水线信息配置

    docker-image-build-pipeline-configuration-1

    docker-image-build-pipeline-configuration-2

    docker-image-build-pipeline-configuration-3

    docker-image-build-pipeline-configuration-4

    docker-image-build-pipeline-configuration-5

  • 生成容器镜像

    点击执行构建按钮,开始构建流水线。

    当流水线执行完成后,进入集成 -> 镜像页面,选择所对应的镜像仓库,即可看到生成的容器镜像信息。

    integration-image-page

# 容器云集成部署配置

# 容器云集成

DevOps 集成容器云相关配置请参考 容器云集成 部分

# 容器云应用部署发布流水线配置

  1. 进入项目 -> 部署 -> 发布 -> 点击创建发布定义按钮 -> 配置发布环境 -> 环境部署图 -> 添加发布环境

    add-release-definition-env

  2. 切换到配置发布环境 -> 变量配置页面,为新增的发布环境添加如下变量

    release-definition-env-params-configuration

    说明 变量名称 变量值 类型 是否作为入参
    Kubernetes中的服务之间访问的端口 port 8080 常量
    应用名称 deployName springboot-demo 常量
    外部机器可访问的端口 nodePort 32515 常量
  3. 配置 Kubernetes 容器云应用部署原子任务

    点击新增 kubernetes容器云应用部署原子任务,进行相关配置

    kubernetes-container-cloud-app-deploy-stage-configuration-1

    kubernetes-container-cloud-app-deploy-stage-configuration-2

    需特别注意:在部署 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 的值
    
  4. Kubernetes 应用服务发现部署配置

    新增 Kubernetes YAML 部署原子任务,配置资源和 YAML 信息

    kubernetes-container-cloud-app-svc-configuration

    其中 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 的值
    

# 容器云应用部署发布流水线执行

点击发布,开始执行容器云应用部署发布流水线。

以下为流水线执行成功后的效果图:

release-pipeline-exec-result-1

release-pipeline-exec-result-2

release-pipeline-exec-result-3

上次更新: 2023/5/19上午11:50:05