Jenkins 通过kubernetes plugin连接K8s集群(十一)
一、Jenkins安装Kubernetes插件
jenkins是在虚拟机环境中部署的,未部署在k8s集群内部。需要在Jenkins的插件管理中安装Kubernetes插件
二、在Kubetnetes集群中创建SA帐号授权cluster-admin权限,并获取其token。
# kubectl create sa jenkins-test serviceaccount/jenkins-test created # kubectl create clusterrolebinding jenkins-test --clusterrole cluster-admin --serviceaccount=default:jenkins-test clusterrolebinding.rbac.authorization.k8s.io/jenkins-test created # 获取token # kubectl describe sa jenkins-test -n default Name: jenkins-test Namespace: default Labels: <none> Annotations: <none> Image pull secrets: <none> Mountable secrets: jenkins-test-token-cklc4 Tokens: jenkins-test-token-cklc4 Events: <none> # kubectl describe secrets jenkins-test-token-cklc4 -n default Name: jenkins-test-token-cklc4 Namespace: default Labels: <none> Annotations: kubernetes.io/service-account.name: jenkins-test kubernetes.io/service-account.uid: 9daba370-3b74-4f6a-903f-f60e3399d741 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1025 bytes namespace: 7 bytes token: eyJhbGciOiJSUzI1NiIsImtpZCI6InYtS2VkR1VvSUNwVlJjMmdBeXd3VHozZzB0NTByWjJyO
E1SUUdvR1h2NlEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9
zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3Vu
dC9zZWNyZXQubmFtZSI6ImplbmtpbnMtdGVzdC10b2tlbi1ja2xjNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZ
WFjY291bnQvc2VydmljZS1hY2NvdW50Lm5
三、将上面的tonken添加到Jenkins的凭据,凭据类型必须为Secret text类型。
四、配置连接Kubernetes集群
4.1 jenkins --> 系统配置 --> Cloud -->点击 a separate configuration page
4.2 进入到Configure Clouds配置页面
kubernetes地址:为k8s api server地址,通过调用apiserver操作k8s,可以通过下面的命令查看api地址
# kubectl cluster-info
Kubernetes 服务证书 key: 为/root/.kube/config中的certificate-authority-data部分,并通过base64加密。
凭据:为我们上面添加的凭据
Kubernetes 命名空间:使用default命
Jenkins地址:经过测试使用域名会有问题,使用的是虚拟机的IP+PORT。
4.3 将内容填入后点击连接测试,能获取集群内的信息表示可以连接到Kubernetes集群了。