配置Jenkins Kubernetes插件以对接AWS EKS集群
Jenkins Kubernetes插件:证书密钥与EKS凭证配置
一、Kubernetes服务器证书密钥说明与获取
这个字段是EKS集群API Server的CA证书base64编码值,用于Jenkins验证EKS集群身份,保障通信安全。
获取方式
方法1:AWS CLI直接获取(推荐)
执行命令直接拿到编码完成的证书值:
aws eks describe-cluster --name <你的EKS集群名称> --query "cluster.certificateAuthority.data" --output text
复制输出字符串,直接填入Jenkins插件的「Kubernetes服务器证书密钥」字段即可。
方法2:OpenSSL提取(备选)
- 先获取EKS API Server地址:
aws eks describe-cluster --name <你的EKS集群名称> --query "cluster.endpoint" --output text
- 连接API Server并提取CA证书:
openssl s_client -showcerts -connect <API_SERVER地址>:443 < /dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > ca.crt
- 对证书进行base64编码并去除换行:
base64 < ca.crt | tr -d '\n'
复制结果填入插件对应字段。
二、Jenkins访问EKS的凭证(令牌)创建与配置
需要在EKS中创建具备流水线所需权限的ServiceAccount,提取其令牌后添加到Jenkins凭证库。
步骤1:创建ServiceAccount与权限绑定
- 编写ServiceAccount配置文件(如
jenkins-sa.yaml):
apiVersion: v1 kind: ServiceAccount metadata: name: jenkins-agent namespace: default # 可根据实际需求修改命名空间
- 编写ClusterRoleBinding配置文件(如
jenkins-rbac.yaml),分配流水线必要权限:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: jenkins-agent-rbac roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: edit # 该角色支持创建、修改Pod/PVC等资源,满足大部分流水线需求;如需更严格权限可自定义ClusterRole subjects: - kind: ServiceAccount name: jenkins-agent namespace: default
- 应用配置文件:
kubectl apply -f jenkins-sa.yaml kubectl apply -f jenkins-rbac.yaml
步骤2:提取ServiceAccount令牌
- 查询ServiceAccount对应的Secret:
kubectl get secrets -n default | grep jenkins-agent
输出类似jenkins-agent-token-xxxxxx kubernetes.io/service-account-token 3 5m,复制该Secret名称。
2. 解码获取令牌明文:
kubectl get secret <Secret名称> -n default -o jsonpath='{.data.token}' | base64 -d
复制解码后的字符串,这就是Jenkins需要的凭证内容。
步骤3:在Jenkins中添加凭证
- 进入Jenkins后台,点击Manage Jenkins -> Manage Credentials
- 选择目标凭证域(如全局域),点击Add Credentials
- 凭证类型选择Secret text,将令牌粘贴到「Secret」字段,设置唯一ID和描述,点击OK保存。
内容的提问来源于stack exchange,提问作者Systemgeek
相关产品推荐
相关产品推荐

