You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins部署Sock Shop至AWS EKS集群时遇权限认证错误求助

问题原因及解决方法

错误提示为认证失败,说明Jenkins执行kubectl时未获得访问EKS集群的合法权限,和将Jenkins用户加入sudo组无关——你在EC2实例直接执行命令成功,是因为当前登录用户(如ec2-user)已拥有正确的EKS认证配置,但Jenkins进程使用的jenkins用户没有。

解决步骤:

1. 在流水线中生成EKS认证配置

在执行kubectl create前,先通过AWS CLI生成kubeconfig文件,让Jenkins用户获取EKS集群的访问权限:
修改流水线的Deploy to EKS阶段:

stage("Deploy to EKS") {
    steps {
        script {
            dir('deploy/kubernetes') {
                // 替换<你的EKS集群名称>为实际集群名,生成kubeconfig
                sh "aws eks update-kubeconfig --name <你的EKS集群名称> --region us-east-1"
                sh "kubectl create -f complete-demo.yaml"
            }
        }
    }
}

该命令会将EKS集群的认证信息写入Jenkins用户的~/.kube/config文件,让kubectl能完成身份认证。

2. 验证IAM权限

确保流水线中配置的AWS_ACCESS_KEY_ID对应的IAM用户拥有以下权限:

  • eks:DescribeCluster:用于获取集群信息生成kubeconfig
  • EKS集群的RBAC权限:需要在EKS集群中为该IAM用户绑定可创建资源的角色(如edit或admin ClusterRole)

如果你的EC2实例已绑定能访问EKS的IAM角色,也可以移除流水线中的AWS密钥配置,让Jenkins直接使用实例角色,安全性更高。

3. 检查kubectl配置(可选)

可在流水线中添加验证步骤,确认kubeconfig配置正确:

sh "kubectl config view"
sh "kubectl get nodes"

若kubectl get nodes能返回节点列表,说明认证配置已生效。

内容的提问来源于stack exchange,提问作者user11631346

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:32:51