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

 

posted @ 2020-02-29 20:02  small_lei_it  阅读(552)  评论(0编辑  收藏  举报