Jenkins 使用证书连接Kubernetes集群
一、使用rbac授权,token的方式连接k8s1、rbac授权Jenkins通过kubernetes-plugin对k8s进行操作,需要在k8s内提前进行rbac授权。为方便管理,我们为其绑定cluster-admin角色。当然也可以进一步缩小使用权限。#创建serviceaccountskubectl create sa jenkins#对jenkins做cluster-admin绑定kube
·
1、通过解码获取kubectl使用的admin证书
查看 /root/.kube/config文件,文件中有三个值 certificate-authority-data 、client-certificate-data 、 client-key-data
解码它们获得证书 ,注意将上面的值替换称自己的一大长传字符串
echo certificate-authority-data | base64 -d > ca.crt
echo client-certificate-data | base64 -d > client.crt
echo client-key-data | base64 -d > client.key
根据这三个文件生成一个PKCS12格式的客户端证书文件
openssl pkcs12 -export -out cert.pfx -inkey client.key -in client.crt -certfile ca.crt
注意生成证书的时候,一定要填写密码,后面会用到
将生成的 cert.pfx 上传到凭证
2、kubernetes plugin连接配置
将ca.crt中的内容填写到 Kubernetes server certificate key 字段
完成后点击测试连接
此时集群连接成功
3 全局安全配置
配置代理 指定端口号
保存好设置,连接集群配置完成。
4 给节点打标记
在Jenkinsfile中配置了节点选择,需要build=true的节点进行部署pod,需要给工作节点打标记
[root@k8smaster ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8smaster Ready master 7h25m v1.18.0
k8snode1 Ready <none> 7h20m v1.18.0
[root@k8smaster ~]# kubectl label node k8snode1 build=true
node/k8snode1 labeled
5 创建集群配置
kubectl镜像进行多集群配置需要用到kubernetes多集群的配置文件,这个配置文件在jenkins流水线中我们制定的参数是,集群的配置文件,挂载了主机的secret,
更多推荐
已为社区贡献5条内容
所有评论(0)