目录

jenkins配置连接k8s集群

jenkins配置连接k8s集群

jenkins配置连接k8s集群

前言

我这边jenkins是在一个服务器里面,k8s集群在其他服务器,实现连接

首先jenkins下载有k8s插件

进入配置页面

https://i-blog.csdnimg.cn/direct/8a28dabfc7084dbdb7df080a4247579c.png

获取k8s-api-server地址

对应k8s服务器执行

kubectl config view --minify -o jsonpath='{.clusters[0].cluster}'

https://i-blog.csdnimg.cn/direct/36fe72d364044887b119e3b25411195b.png

生成Service Account Token(在k8s中执行)

创建一个新的 Service Account

apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins-sa
  namespace: kube-system
kubectl apply -f service-account.yaml

绑定角色

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: jenkins-admin
subjects:
- kind: ServiceAccount
  name: jenkins-sa
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
kubectl apply -f role-binding.yaml

获取 Service Account Token

执行三条命令

SECRET_NAME=$(kubectl get serviceaccount jenkins-sa -n kube-system -o jsonpath="{.secrets[0].name}")
TOKEN=$(kubectl get secret $SECRET_NAME -n kube-system -o jsonpath="{.data.token}" | base64 --decode)
echo $TOKEN

https://i-blog.csdnimg.cn/direct/5ab33812f5ee46f083f5989235dea9a8.png

复制生成的Token

添加凭证

在 Credentials 字段中点击 Add -> Jenkins ,然后选择 Secret text

将之前获取的 TOKEN 粘贴到 Secret 字段中,并给它一个描述性的 ID(例如 jenkins-sa-token)。

https://i-blog.csdnimg.cn/direct/ad705e46d70d4d8c8873bceeca4e86d4.png

https://i-blog.csdnimg.cn/direct/318c40e50cab4a56bda6ef36c5722710.png

测试连接成功

https://i-blog.csdnimg.cn/direct/b7450c57747b4fb7a4d812cd4102ba73.png