您可以通过CodePipeline,构建代码工作流模板、编译应用、构建与推送容器镜像、发布Kubernetes应用,从而实现利用代码发布应用的全过程自动化。本文以构建一个Java软件项目并将其部署到Kubernetes集群为例,说明如何使用CodePipeline。
CodePipeline简介
阿里云CodePipeline提供持续集成/持续交付的能力,并完全兼容Jenkins的能力与使用习惯,是一款SAAS化的产品。
其优点在于:
- 提供构建资源,无需用户运维,开箱即用;
- 与阿里云产品生态无缝集成;
- 兼容开源Jenkins使用习惯、轻量;
- 免费。
了解更多关于CodePipeline的内容,请参见CodePipeline产品帮助文档。
前提条件
使用CodePipeline之前,您需要先开通服务:
- 登录CodePipeline管理控制台并开通服务。
- 同意RAM的CodePipeline角色授权。
实施步骤
构建java-demo项目并部署到Kubernetes集群。
- 登录CodePipeline管理控制台。
- 单击右上角的新建。
- 在新建项目页面,输入项目名称,选择构建一个自由风格的软件项目,并单击下一步。
- 在基本信息区域,选择构建节点。本示例中选择国内节点和java构建环境(缓存)。
- 在源码管理区域,配置源码仓库URL以及分支信息。本示例选择Git,并且使用源码项目
https://code.aliyun.com/CodePipeline/k8s-java-demo.git
。
说明 如果是私有仓库,您需要添加用户名密码类型证书。
- 配置java-demo项目源码编译命令。
在
构建区域的
增加构建步骤下拉框中,选择
执行Shell脚本,并输入以下构建命令:
mvn package -B -DskipTests

- 注入环境变量IMAGE_TAG。
- 在增加构建步骤下拉框中选择执行Shell脚本,并配置以下命令。通过该命令,您可以生成变量文件并写入变量的键值对。
TIME=`date +%Y%m%d%H%M%S`echo IMAGE_TAG=$TIME >> env.properties

- 在增加构建步骤下拉框中选择注入环境变量,并填写变量文件路径。
- 配置Docker镜像构建并推送至私有镜像仓库。
在增加构建步骤下拉框中选择镜像构建和发布,并填写相关信息。
- 配置部署Kubernetes应用。
在增加构建步骤下拉框中选择部署Kubernetes(新),并填写相关信息。
- 选择认证方式。
CodePipeline目前支持证书认证、用户名密码认证和Token认证三种认证方式。Kubernetes集群默认选择证书认证。

- 填写API服务器地址。
填写Kubernetes集群的API服务器地址。您可以在容器服务管理控制台查看Kubernetes集群的API Server公网连接端点,例如https://1.12.123.134:6443
。

- 添加证书。
在添加证书之前,先在Kubernetes集群的
基本信息页面,找到
配置集群凭据中提供的
KubeConfig。

在弹出的
添加证书对话框中,完成以下配置:

- 类型:选择Docker授权。
- 客户端Key(key.pem):填写KubeConfig中client-key-data对应的内容。
- 客户端证书(cert.pem):填写KubeConfig中client-certificate-data对应的内容。
单击添加添加该证书。
- 添加部署配置文件。
添加yaml格式的Kubernetes部署配置文件。如果该文件位于当前项目的workspace下,请直接输入文件名。如果位于当前项目workspace的子目录中,请输入
..子目录/文件名。不支持添加位于当前项目workspace之外的文件。

- 添加状态检查配置。
支持检验的Kubernetes资源对象种类有:pods、daemonsets、deployments、replicasets、replicationcontrollers、statefulsets。如果检验的不是default命名空间下的资源,请在首行填写命名空间名称。请用“:”分隔资源对象种类与资源对象名称。如果一种资源对象有多个名称,请用“,”分隔。每一行描述一种资源对象。

说明 请严格按照说明填写单词,不要删减字母。请勿填写多余的空格或者换行。
- 添加变量申明配置,声明需要使用的变量。
您可以在上文的部署配置文件deployment.yaml中使用变量。请以${IMAGE_TAG}的格式严格填写,其他格式插件会被忽略。
- 单击提交保存配置。
- 在左侧导航栏中,选择,并查看构建日志。
- 在Kubernetes集群控制台查看并访问服务。
- 登录容器服务管理控制台。
- 单击集群右侧的控制台,进入 Kubernetes集群控制台页面。
- 在左侧导航栏中,选择。
- 查看并访问部署了Java软件项目的服务。
了解更多CodePipeline的相关内容,请参见CodePipeline。
了解更多容器服务的相关内容,请参见容器服务。