本文主要演示如何在阿里云Serverless Kubernetes服务(ASK)上快速搭建Jenkins持续集成环境,并基于提供的应用示例快速完成应用源码编译、镜像构建和推送以及应用部署的流水线。
部署Jenkins
- 执行以下命令下载部署文件:
git clone https://github.com/AliyunContainerService/jenkins-on-serverless.git
cd jenkins-on-serverless
- 完成
jenkins_home
持久化配置。
Serverless Kubernetes目前不支持云盘,如需持久化
jenkins_home
,您可以挂载
nfs volume
,修改
serverless-k8s-jenkins-deploy.yaml文件,取消以下字段注释并配置您的nfs信息:
#volumeMounts:
# - mountPath: /var/jenkins_home
# name: jenkins-home
.....
#volumes:
# - name: jenkins-home
# nfs:
# path: /
# server:
- 执行以下命令部署Jenkins。
kubectl apply -f serverless-k8s-jenkins-deploy.yaml
- 登录Jenkins。
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的应用管理。
- 在左侧导航栏中,选择服务。
- 单击Jenkins服务的外部端点登录Jenkins。
- 在Jenkins登录页面,输入用户名和密码。默认用户名和密码均为admin,请于登录后进行修改。
创建集群证书和镜像仓库证书,构建和部署示例应用
- 配置Kubernetes Cloud,动态创建Slave Pod。
- 在左侧导航栏中,选择系统管理。
- 在右侧的Manage Jenkins页面,单击系统设置。
- 在Cloud区域中,填写KubeConfig中的API Server URL作为Kubernetes URL。
- 单击凭证右侧的Add。
在添加凭据前,先在Serverless Kubernetes集群的
基本信息页面,找到
配置集群凭据中提供的
KubeConfig。
在弹出的
添加凭据对话框中,完成以下配置。
- 类型:选择Docker Host Certificate Authentication。
- Client Key:填写KubeConfig中client-key-data对应的内容。
- Client Certificate:填写KubeConfig中client-certificate-data对应的内容。
- ID:填写证书ID。本示例中填写k8sCertAuth。
- 描述:填写描述。
- 单击添加。
- 测试连通性。
从
Credentials下拉框中选择上一步添加的凭据,单击
Test Connection。
- 填写jenkins服务的外部端点作为Jenkins URL,jenkins-agent的外部端点作为Jenkins tunnel。
- 单击Save保存配置。
- 通过kubectl在Serverless Kubernetes集群中创建jenkins-docker-cfg secret,用于设置镜像仓库权限。
本示例中使用阿里云镜像服务提供的北京区域镜像仓库:
docker login -u xxx -p xxx registry.cn-beijing.aliyuncs.com
#输出:
Login Succeeded
kubectl create secret generic jenkins-docker-cfg --from-file=/root/.docker/config.json
- 构建demo-pipeline并访问应用服务。
- 在Jenkins首页,单击demo-pipeline。
- 在左侧导航栏中,选择Build with Parameters。
- 根据自己的镜像仓库信息修改构建参数,并填写KubeConfig中的API Server URL作为api_server_url。本示例中源码仓库分支为Serverless,镜像为registry.cn-beijing.aliyuncs.com/haoshuwei/jenkins-java-demo:serverless, 请根据提示信息进行替换。
- 单击Build。
- 查看Build History。下图表示构建成功。
- 构建成功后,登录容器服务管理控制台,查看应用的服务地址。
获取源码仓库
单击源码仓库获取示例项目中使用的源码仓库。