最近TKE集群的RBAC对象级权限控制功能已经全量上线了,新的RBAC模式下kubeconfig不再提供集群的token,都是通过证书进行认证,具体变化和使用可以参考文档https://cloud.tencent.com/document/product/457/46104,但是今天的重点不是RBAC的介绍和使用。
我们很多时候我们还是会需要用到集群的token,比如jekins的kubernetes插件就需要用到集群的token进行认证,那么现在集群不像以前提供admin用户token怎么办呢,难道就不能快乐玩耍jenkins了?其实我们还是有其他方法来解决这个问题。
我们仔细想想为啥jenkins要用集群的admin这个user的token才能认证成功,说白了就是admin的权限足够大,能够对集群执行所有操作。既然admin远离我们了,那我们就创建一个新的admin来为我们提供服务。今天我们来说说如何创建一个serviceAccount用来进行jenkins的k8s插件认证。
kubectl create sa tke-admin
我们新版的rbac权限控制有4个如下预设角色,既然我们的新的admin需要足够的权限,那就给他管理员权限。
kubectl create clusterrolebinding tke-admin-binding --clusterrole=tke:admin --serviceaccount=default:tke-admin
新的admin用户已经创建好了,下面我们来获取下这个账号的token用于jenkins里面认证
[root@VM-0-13-centos ~]# kubectl get sa tke-admin -o=jsonpath='{.secrets[0].name}'
tke-admin-token-hwqw2
[root@VM-0-13-centos ~]# kubectl get secret tke-admin-token-hwqw2 -o=jsonpath='{.data.token}' | base64 -d
eyJhbGciOiJSUzI1NiIsImtpZCI6ImphQ0RWTFBlNTJ0aXNDSUNkTUJzdHBlbTBLSFVGTmd0UF9JWGMwOFNqM2Mi
通过上命令获取sa的token,然后进行base64解密就是你可以使用的token了(注意防止token泄露,上面token已进行删减)
现在我们集群的token有了,那么可以到jenkisn进行认证了,看看能不能用这个token来连接tke集群
首先需要在jenkisn中安装Kubernetes plugin
插件安装好之后,可以在系统配置中,拉到最下面找到cloud配置进行k8s配置
点击配置集群,需要进行如下配置
Kubernetes 地址 :tke集群的公网访问地址,可以在集群基本信息中获取
在Kubernetes 服务证书 key中配置集群的ca证书,这个随便登录一个节点,执行命令获取
[root@VM-0-3-centos ~]# sudo cat /etc/kubernetes/cluster-ca.crt
-----BEGIN CERTIFICATE-----
MIICyDCCAbCgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl
cm5ldGVzMB4XDTIwMTExOTAzNDQxMVoXDTMwMTExNzAzNDQxMVowFTETMBEGA1UE
AxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbN
0nC5jmQdCvC1waT0avcMPmg29AXlOwRcWJgPWktzu2J3ZhYgDWZQlRMUH1Vl9nNm
iH617/3TPzVmzGGIATgeaq9iyG4PqKXLZf2SnR5LJj3wlrD1q9GjT+ZkNhVsD6fo
9ZUNk2mXVg/f53E9rSfCeGPoNxkyebOkwBYeRZ7ttUhc+HlF6ruMiG3OMM+xeZg7
FACtiWj3JajFLFhaCTjxW6i3RCm9vG0qPDTT1z+AkAULl3u3uKmFoM2ROv2I317o
WtalEKrlXR9qqxEDzjOk5MbF252/mUi4OAxsXh9O8e5JDh/EZz0k7n3vDld2cIL5
fBPe9elH54vucruPdn8CAwEAAaMjMCEwDgYDVR0PAQH/BAQDAgKUMA8GA1UdEwEB
/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJjrX5eYokUlJmlwknYKtmvHcKUF
pHvcbARaOOX43qcUPokd/L0TzIFOZ/ZT4zx1s/yCpvYZL9mhd5B7n7s0LbrB4etS
YwnfoFWoj7gwuKDIPNXZE4NG6IOWQs1NiwM4/UyKF5gA4yJ6eWmuO43sZC0=
-----END CERTIFICATE-----
凭据:这个把上面获取的token配置成一个凭证即可,类型选择secret text,secret填入token,id填写凭证名称
最终完整配置如下,配置完之后,点击连接测试,如果出现 Connected to Kubernetes XXXXXX 则表示连接集群成功 。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。