开发者社区> 流生> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 通过CodePipeline可以构建您的代码工作流模板,配置从应用编译到容器镜像构建和推送,再到Kubernetes应用的发布,打通代码应用发布全过程自动化。
+关注继续查看

本文档以构建一个 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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云容器服务Kubernetes版快速入门
本步骤指导您如何在ACK集群中快速部署一个无状态应用(Deployment),即魔方游戏,并将该应用向公网公开
126 0
容器服务Windows Kubernetes使用阿里云日志服务来收集容器日志
目前,容器服务Windows Kubernetes支持将业务容器产生的stdout输出、日志文件同步到阿里云日志服务(SLS)进行统一管理。 支撑组件安装 在Windows Kubernetes集群安装界面勾选使用日志服务,集群会安装支持日志收集的必要组件logtail。
1405 0
阿里云容器服务Kubernetes实践系列 - Ingress篇
本文是我司近期对阿里云容器服务落地实践经验的总结之ingress篇,从原理、实践、到避坑等多方面进行总结。
4724 0
[Kubernetes] 阿里云容器服务Kubernetes配置负载均衡HTTPS
在云端环境使用Kubernetes与SLB(负载均衡器)搭建HTTPS时,有多种实现的方式: 在SLB上配置HTTPS,SLB通过HTTP直接访问到集群内的具体服务(SLB负责处理HTTPS) 在SLB上配置TCP 443端口到Ingress的映射,SLB通过TCP将流量转发到Ingress,在.
3845 0
阿里云容器服务Kubernetes之Jenkins X(1)-安装部署实践篇
"Jenkins X is a CI/CD solution for modern cloud applications on Kubernetes." 这是Jenkins社区对于Jenkins X 的官方总结和定义。
5701 0
阿里云Kubernetes SpringCloud 实践进行时(5): 弹性服务与容错处理
讲述了在阿里云Kubernetes容器服务基础之上,如何快速搭建基于Spring Cloud的微服务架构中的基础设施之分布式弹性服务与容错处理框架Hystrix及其监控仪表板Hystrix Dashboard。
4547 0
阿里云Kubernetes SpringCloud 实践进行时(3): API网关服务Zuul
讲述了在阿里云Kubernetes容器服务基础之上,如何快速搭建基于Spring Cloud的微服务架构中的基础设施之API网关服务Zuul 系统。
5132 0
CodePipeline流水线实现自动发布Serverless Kubernetes
本文档以构建一个 Java 软件项目并部署到 阿里云容器服务Serverless Kubernetes集群 为例说明如何使用 CodePipeline。 使用说明 开通使用 CodePipeline 产品。
4570 0
+关注
57
文章
0
问答
来源圈子
更多
容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级 Kubernetes 容器化应用的全生命周期管理。容器服务 Kubernetes 版简化集群的搭建和扩容等工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes 容器化应用运行环境。
+ 订阅
相关文档: 云原生应用交付平台 ADP 容器镜像服务 容器服务Kubernetes版
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载