本文主要演示如何在阿里云Serverless Kubernetes服务上快速搭建jenkins持续集成环境,并基于提供的示例应用快速完成应用源码编译、镜像构建和推送以及应用部署的流水线。
前置条件
您已经创建了ACK Serverless Kubernetes集群。
快速部署Jenkins on ASK
部署jenkins:
$ git clone https://github.com/AliyunContainerService/jenkins-on-serverless.git $ cd jenkins-on-serverless
在部署之前,您还需要创建一个NAS共享存储卷(参考https://help.aliyun.com/document_detail/189293.html)来保存/var/jenkins_home下的数据,目标jenkins master pod重启后配置丢失。使用NAS共享存储卷修改serverless-k8s-jenkins-deploy.yaml中注释部分字段:
```
#volumeMounts:
# - mountPath: /var/jenkins_home
# name: jenkins-home
.....
#volumes:
# - name: jenkins-home
# nfs:
# path: /
# server:
```
部署:
$ kubectl apply -f serverless-k8s-jenkins-deploy.yaml
查看jenkins服务访问地址:
登录jenkins,默认用户名密码为admin/admin,登录后请修改。:
点击 安装推荐的插件(已默认安装):
保存并完成配置:
获取token连接kubernetes集群:
$ kubectl get secret NAME TYPE DATA AGE ack-jenkins-sa-token-q9g6v kubernetes.io/service-account-token 3 28m default-token-bn9zr kubernetes.io/service-account-token 3 27h $ kubectl get secret ack-jenkins-sa-token-q9g6v -o jsonpath={.data.token} |base64 -d xxxxxxxxxxxxxxxx
创建Secret Text类型凭证,Secret内容为xxxxxxxxxxxxxxxx,名字自定义,本示例为ask-jenkins-token
在系统管理->系统配置->Kubernetes cloud云中继续配置Kubernetes地址,选择凭据ask-jenkins-token,点击连接测试验证连接是否正常。
继续配置jenkins地址和jenkins通道:
点击保存。
构建demo-pipeline测试ASK集群分配slave pod以及slave pod连接jenkins master是否正常:
如何挂载maven缓存、如何为kaniko推送容器镜像设置权限等问题请参考:https://developer.aliyun.com/article/783848