CICD联动阿里云容器服务Kubernetes实践之CodePipeline篇

本文档以构建一个 Java 软件项目并部署到 阿里云容器服务的Kubernetes集群 为例说明如何使用 CodePipeline。 CodePipeline服务介绍及开通 阿里云CodePipeline是一款提供持续集成/持续交...

本文档以构建一个 Java 软件项目并部署到 阿里云容器服务的Kubernetes集群 为例说明如何使用 CodePipeline。

CodePipeline服务介绍及开通

阿里云CodePipeline是一款提供持续集成/持续交付能力,并完全兼容Jenkins的能力和使用习惯的SAAS化产品。

它的优点在于:

(1)CodePipeline提供构建资源,无需用户运维,开箱即用;

(2)与阿里云产品生态无缝集成;

(3)兼容开源Jenkins使用习惯、轻量;

(4)免费;

更多关于CodePipeline的内容请参考 CodePipeline产品帮助文档

使用说明

使用CodePipeline之前,您需要先开通产品:

  1. 登录CodePipeline控制台 并开通服务
  2. 同意RAM的CodePipeline角色授权。

构建java-demo项目并部署到Kubernetes

1. 点击 “新建” 并 “输入项目名称”, 选择 “构建一个自由风格的项目”, 最后点击 “下一步”进入到项目配置页面

2. 配置 “基本信息” 区域, 选择构建节点,本示例中选择 “国内java构建环境(缓存)”

3. 配置 “源码管理” 区域, 分别配置源码仓库url以及分支信息,本示例使用源码项目为:

https://code.aliyun.com/CodePipeline/k8s-java-demo.git

4. 配置java-demo项目源码编译命令

在 “构建” 区域 点击 “增加构建步骤” 选择 “执行Shell脚本” 并配置命令:

mvn package -B -DskipTests

5. 注入一个环境变量 IMAGE_TAG

(1)再增加一个 “执行Shell脚本” 步骤并配置命令:

TIME=`date  %Y%m%d%H%M%S`
echo IMAGE_TAG=$TIME >> env.properties

(2)增加 “注入环境变量” 步骤并填写变量文件路径

6. 配置docker镜像构建并推送至私有镜像仓库

在 “构建” 区域 增加构建步骤 “镜像构建和发布”,填写相关信息,例如我要把新构建的镜像推送至我的私有镜像仓库信息如下:

则CodePipeline项目中 “镜像构建和发布” 对应的参数项则为:

7. 配置部署Kubernetes

在 “构建” 区域 增加构建步骤 “部署Kubernetes(新)”,填写相关信息。

  • 选择 认证方式

    CodePipeline目前支持 证书认证,用户名密码认证 和 Token认证 三种认证方式。如果是 阿里云容器服务Kubernetes集群,默认都是 证书认证。

  • 填写 API服务器地址

    请输入Kubernetes API 服务器地址,您可以在阿里云容器服务控制台查看Kubernetes集群 API Server 公网连接端点,例如, https://1.12.123.134:6443

  • 添加 证书

    本示例使用 证书认证 方式。

在集群 基本信息 页面,找到 配置集群凭据 中提供的 KubeConfig

添加 Docker授权 类型证书:

client-key-data 的内容(冒号后面的字符串)填入 客户端Key 对话框。

client-certificate-data 的内容(冒号后面的字符串)填入 客户端证书 对话框。

  • 添加 部署配置文件

    输入yaml格式的Kubernetes部署配置文件。如果文件在当前项目的workspace下,请直接输入文件名,如果在项目workspace的子目录中,请输入 ..子目录/文件名。不支持位于当前项目的workspace之外的文件。

  • 添加 状态检查配置

    支持检验的 Kubernetes Kind: pods,daemonsets,deployments,replicasets,replicationcontrollers,statefulsets。如果检验的不是 default namespace 下的资源,请在首行填写 namespace 名称。请用 “:” 分隔 Kubernetes Kind 和 Kind name, 用 “,” 分隔多个 Kind name。每一行描述一种 Kubernetes Kind。

注意:请严格按照说明填写单词,不要删减字母;请勿填写多余的空格或者换行。

  • 添加 变量申明配置

    上文的部署配置文件deployment.yaml中使用变量,请以 ${IMAGE_TAG} 格式严格填写,其他格式插件将忽略。

整个部署Kubernetes应用的配置如下:

8. 点击 提交 进行保存

整个项目的完整配置如下:

9. 点击 立即构建 并查看构建日志

10. 在Kubernetes集群控制台查看服务并访问

了解更多CodePipeline内容,请访问 https://www.aliyun.com/product/codepipeline

了解更多阿里云容器服务内容,请访问 https://www.aliyun.com/product/containerservice

  • 发表于 2018-10-23 15:48
  • 阅读 ( 891 )
  • 分类:默认分类

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
Kemin

架构工程师

45 篇文章

作家榜 »

  1. Kemin 45 文章
  2. golanglover 5 文章
  3. D.Chen 4 文章
  4. salamander 1 文章
  5. 深圳-伟 1 文章
  6. 广训 1 文章
  7. PHP小菜 1 文章
  8. Undefined 0 文章