jenkins在k8s中动态创建slave代理
https://mp.weixin.qq.com/s/C82DsWV9oK23lfOJiunkhA
https://help.aliyun.com/document_detail/106712.html?spm=a2c4g.11186623.6.813.626e4330lQtSFi
https://www.cnblogs.com/wangxu01/articles/11697405.html
接下来需要来配置 Jenkins,让他能够动态的生成 Slave 的 Pod。
Slave主要是解决单点负载的问题,分布式的master-slve架构,master主要负责负载地调度,slave执行构建任务,可以很好地解决性能问题。
1 安装kubernetes插件
点击 Manage Jenkins -> Manage Plugins -> Available -> Kubernetes勾选安装即可。
2 Jenkins配置k8s信息
安装完毕后,点击 Manage Jenkins —> Configure System —> (拖到最下方)Add a new cloud —> 选择 Kubernetes,然后填写 Kubernetes 和 Jenkins 配置信息。
4 自由风格测试
Kubernetes 插件的配置工作完成了,接下来我们就来添加一个 Job 任务,看是否能够在 Slave Pod 中执行,任务执行完成后看 Pod 是否会被销毁。
在 Jenkins 首页点击create new jobs,创建一个测试的任务,输入任务名称,然后我们选择 Freestyle project 类型的任务:
然后往下拉,在 Build 区域选择Execute shell
echo "测试 Kubernetes 动态生成 jenkins slave" echo "==============docker in docker===========" docker info echo "=============kubectl=============" kubectl get pods
最后点击保存
现在我们直接在页面点击立即构建 触发构建即可,然后观察 Kubernetes 集群中 Pod 的变化
gnlp6这个镜像很大,需要下载很长时间,我都是docker提前下载的,否则很容易测试失败
kubectl get pods NAME READY STATUS RESTARTS AGE jenkins2-8b7f7bdb7-h9kzt 1/1 Running 0 22m jnlp-s2kfk 1/1 Running 0 19s
我们可以看到在我们点击立刻构建的时候可以看到一个新的 Pod:jnlp-s2kfk 被创建了,这就是我们的 Jenkins Slave。任务执行完成后我们可以看到任务信息
执行完成,pod自动销毁。
[root@k8s-master ~]# kubectl -n kube-ops get pod NAME READY STATUS RESTARTS AGE jenkins2-8b7f7bdb7-h9kzt 1/1 Running 0 84m
到这里我们就完成了使用 Kubernetes 动态生成 Jenkins Slave