Kubernetes 添加pods/portforward的创建权限似乎会删除configmaps的获取权限

Kubernetes 添加pods/portforward的创建权限似乎会删除configmaps的获取权限,kubernetes,kubernetes-helm,rbac,Kubernetes,Kubernetes Helm,Rbac,我试图从名称空间内的容器中运行helm status--tiller namespace=$namespace$RELEASE\u NAME 我有一个规则的角色 -API组: - "" 资源: -豆荚 -配置映射 动词: -得到 -监视 绑定到默认服务帐户。但是我得到了错误 错误:pods被禁止:用户“system:serviceaccount:mynamespace:default”无法在命名空间“mynamespace”中列出API组“”中的资源“pods” 所以我添加了列表动词,如下所示

我试图从名称空间内的容器中运行
helm status--tiller namespace=$namespace$RELEASE\u NAME

我有一个规则的角色

-API组:
- ""
资源:
-豆荚
-配置映射
动词:
-得到
-监视
绑定到默认服务帐户。但是我得到了错误

错误:pods被禁止:用户“system:serviceaccount:mynamespace:default”无法在命名空间“mynamespace”中列出API组“”中的资源“pods”

所以我添加了
列表
动词,如下所示

-API组:
- ""
资源:
-豆荚
-配置映射
动词:
-得到
-监视
-名单
现在我遇到了一个错误
无法在API组“”中创建资源“pods/portforward”
。我在k8s文档中找不到关于如何将不同动词分配给同一apiGroup中的不同资源的任何内容,但基于我的假设,这应该是可行的:

-API组:
- ""
资源:
-豆荚
-配置映射
动词:
-得到
-监视
-名单
-蜂群:
- ""
资源:
-吊舱/左前
动词:
-创造
但是,现在我遇到了错误
无法获取API组“”中的资源“configmaps”
。注意:在运行
helm status
命令之前,我正在运行
kubectl get cm$CMNAME

因此,在我尝试添加创建pods/portforward的权限之前,我似乎确实有权执行
kubectl get cm

谁能给我解释一下吗

此外,集群正在运行k8s版本

Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.7+1.2.3.el7", GitCommit:"cfc2012a27408ac61c8883084204d10b31fe020c", GitTreeState:"archive", BuildDate:"2019-05-23T20:00:05Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}
和头盔版本

Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}

我的问题是,我正在部署带有这些角色的清单,作为头盔图表的一部分(使用头盔2)。但是,进行部署的舵柄的服务帐户没有
创建
吊舱/portforward
权限。因此,它无法授予该权限,因此在尝试使用角色部署清单时出错。这意味着没有创建configmap get permission角色,因此出现了奇怪的错误。

我的问题是,我正在将带有这些角色的清单作为helm图表的一部分进行部署(使用helm 2)。但是,进行部署的舵柄的服务帐户没有
创建
吊舱/portforward
权限。因此,它无法授予该权限,因此在尝试使用角色部署清单时出错。这意味着没有创建configmap get permission角色,因此出现了奇怪的错误。

我在我的实验室中测试了您的角色,它按预期工作,我没有遇到与您相同的问题。我怀疑你还有其他与这条规则相冲突的地方。我建议您使用
kubectl auth can-I
kubectl--context=employee context auth can-I create pods/portforward
来加快故障排除。啊,我忘了我把这个问题留了下来。很抱歉问题是,正在部署此服务帐户的分蘖器的服务帐户没有权限,因此无法使用其自身没有的权限创建服务帐户。请将此解决方案作为答案发布,以便其他人在将来遇到类似问题时可以得到帮助。我在我的实验室和它按预期工作,我没有和你一样的问题。我怀疑你还有其他与这条规则相冲突的地方。我建议您使用
kubectl auth can-I
kubectl--context=employee context auth can-I create pods/portforward
来加快故障排除。啊,我忘了我把这个问题留了下来。很抱歉问题是,正在部署此服务帐户的分蘖器的服务帐户没有权限,因此无法使用其自身没有的权限创建服务帐户。请将此解决方案作为答案发布,以便其他人在将来遇到类似问题时可以得到帮助。