jenkins配置连接k8s集群
前言
我这边jenkins是在一个服务器里面,k8s集群在其他服务器,实现连接
首先jenkins下载有k8s插件
进入配置页面

获取k8s-api-server地址
对应k8s服务器执行
bash
kubectl config view --minify -o jsonpath='{.clusters[0].cluster}'

生成Service Account Token(在k8s中执行)
创建一个新的 Service Account
YAML
apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins-sa
namespace: kube-system
kubectl apply -f service-account.yaml
绑定角色
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
yaml
kubectl apply -f role-binding.yaml
获取 Service Account Token
执行三条命令
sql
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

复制生成的Token
添加凭证
在 Credentials 字段中点击 Add -> Jenkins
,然后选择 Secret text
。
将之前获取的 TOKEN 粘贴到 Secret 字段中,并给它一个描述性的 ID(例如 jenkins-sa-token)。

测试连接成功
