Jenkins 集成k8s 运行Jenkins slave

需求:公司为了节省资源、降低Jenkins master压力,打算把Jenkins jobs在kubernetes上运行,jobs构建完成kubernetes上的pod删除。
好了话不多说我们现在开始

1、Jenkins基础配置

系统管理–全局安全设置
需要开启代理协议、然后代理端口在我们后面agent连接需要用到
在这里插入图片描述

2、安装Kubernetes插件

系统管理–插件管理
在这里插入图片描述

3、创建Kubernetes Namespace与Service Account

创建Namespace

在Kubenates的上创建jenkins-slave命名空间,用于Jenkins使用

kubectl create namespace jenkins-slave

创建Service Account

在Kubernetes上为Jenkins构建创建有Cluster Admin权限的Service Account jenkins:

kubectl create clusterrolebinding jenkins --clusterrole cluster-admin --serviceaccount=jenkins-slave:jenkins

4、生成调度凭证

生成Kubernetes的 server certificate key和Client P12 Certificate File

这个步骤主要是生成P12 Certificate File提供给jenkins Master去调用Kubenetes,具体步骤如下:
Kubernetes Master上,打开~/.kube/config文件,复制相对应的内容,运行以下命令分别生成生成ca.crt, client.crt, client.key

cat ~/.kube/config
# 复制certificate-authority-data的内容,运行以下命令生成client.crt
echo "<certificate-authority-data>" | base64 -d > ca.crt
# 复制client-certificate-data的内容,运行以下命令生成client.crt
echo "<client-certificate-data>" | base64 -d > client.crt

# 复制client-key-data的内容,运行以下命令生成client.key
echo "<client-key-data>" | base64 -d > client.key

再根据前面步骤生成的ca.crt, client.crt和client.key来生成PKCS12格式的cert.pfx
以下命令运行时,需要输入4位以上的密码

openssl pkcs12 -export -out cert.pfx -inkey client.key -in client.crt -certfile ca.crt

在这里插入图片描述

5、在Jenkins上集成Kubernetes

在Jenkins上配置Kubernetes Credential

将上面生成的cert.pfx复制出来备用
添加cert.pfx到Jenkins Global Credential
如下图:
在这里插入图片描述

6、在Jenkins上配置Kubernetes Cloud

系统管理- -节点管理- -Configure Clouds- -Add a new cloud- -Kubernetes
输入Name,比如kubernetes
复制上面步骤生成的ca.crt文件内容到Kubernetes server certificate key
输入上面创建的Kubernetes Namespace,jenkins-slave
选择刚刚配好的Credential
点击“Test Connection"按钮测试Jenkins是否可以成功连接Kubernetes。
Pod Retention选择Never,这样每次Jenkins构建结束后(无论成功和失败)都会销毁Pod,达到动态创建和运行Jenkins Build Agent的目的。
在这里插入图片描述

在Jenkins上配置Kubernetes Pod Template

在这里插入图片描述

7、验证

预期效果:Jenkins构建Jobs然后Kubernetes启动一个Pod namespace属于jenkins-slave,Jobs构建成功容器删除
在这里插入图片描述
主要的是就需要注意这里需要指定刚刚写的label
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

↑可以看到流水线已经成功了

查看Kubernetes, 可以看到跟我们预想的是一样的
在这里插入图片描述

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维生涯记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值