用户无法在API组中获取资源“服务”-Jenkins管道EKS部署

时间:2020-10-01 17:34:14

标签: jenkins jenkins-pipeline amazon-iam kubectl amazon-eks

我正在尝试使用Jenkins将docker映像部署到集群中。我的Jenkins应用程序正在EC2 ubuntu服务器中运行。最初,当我尝试时出现此错误。

enter image description here

我提到了这个stack 并使用

将Jenkins用户IAM arn添加到Kube配置文件中
kubectl edit configmap aws-auth -n kube-system

在运行管道时更新配置文件后,出现此新错误 enter image description here

我的问题是

  1. 这个Jenkins用户是管理员用户,为什么我会遇到此访问控制错误?

请帮助我吗?

2 个答案:

答案 0 :(得分:1)

谢谢@jakub。我可以通过创建集群绑定角色来解决该错误。

kubectl create clusterrolebinding NAME --clusterrole=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none]

答案 1 :(得分:1)

如评论中所述

service account詹金斯没有特权列出豆荚kube-system。您必须先创建ClusterRoleBindingClusterRole才能使其正常工作。

您可以使用kubectl create来完成此操作,就像上面的@Gowtham Babu答案一样。

下面的中等教程中有一个例子

另外,当rbac设置为true时,必须进行以下操作才能允许jenkins pod访问kubernetes集群的“ kube-system”命名空间。

创建具有权限“ cluster-admin”的clusterrolebinding,

kubectl create clusterrolebinding jenkinsrolebinding - -clusterrole=cluster-admin - - group=system:serviceaccounts:jenkins

其他资源: