使用 Jenkins 配置 Kubernetes 集群,以便自动化部署。
安装插件
首先在 Jenkins 中安装 Kubernetes 插件,安装如下四个,其中一二三为依赖会自动安装,手动安装第四个即可。

安装后重启插件即可生效。
获取授权
然后需要获取现有集群的访问授权文件,对于标准 Kubernetes 来说,位于 ~/.kube/config
中,其他非标准集群请参考其官方文档。
提取 CA 证书
cat ~/.kube/config | grep 'certificate-authority-data:' | awk -F ':' '{print $2}' | sed 's/^ *//g' | base64 -d | tee ca.crt
提取客户证书
cat ~/.kube/config | grep 'client-certificate-data:' | awk -F ':' '{print $2}' | sed 's/^ *//g' | base64 -d | tee ci.crt
提取客户密钥
cat ~/.kube/config | grep 'client-key-data:' | awk -F ':' '{print $2}' | sed 's/^ *//g' | base64 -d | tee ci.key
使用客户证书密钥制作 PFX 授权文件(需要为证书设置密码,需输入两次)
openssl pkcs12 -export -out cert.pfx -inkey ci.key -in ci.crt -certfile ca.crt
小贴士:命令看起来复杂,实际上是获取授权文件,过滤出所需字段,去掉多余修饰和空格,然后使用加密算法制作证书。
测试项目
创建一个测试项目(选择 Freestyle project)测试是否可以正常连接和操控集群。

在 Build Environment
中勾选 Configure Kubernetes CLI (kubectl) with multiple credentials
,上面的不要勾选,已经废弃,后面版本可能会被删掉。然后点击红色箭头指向的添加按钮。

类型选择密码文件,文件上传生成的 PFX 证书,名称和描述根据需要填写。

按图提示填写

实际执行的命令填写一个查询 Pod 的即可。

然后执行构建即可,查看结果。

查看详细输出,是否可以正常显示所有 Pod 信息。
流水线
如果想在流水线中使用,需要使用 Pipeline Syntax 生成配置,选择配置好的密钥,填写相关信息点击生成即可。

附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2023-07-19 14:41 PM