禁止deployments.apps:用户“ system:serviceaccount:default:default”无法在名称空间中创建Deployments.apps

Chr*_*ski 4 kubernetes

网址:/ apis / apps / v1 / namespaces / diyclientapps / deployments

)“ {”种类“:”状态“,” apiVersion“:” v1“,”元数据“:{},”状态“:”故障“,”消息“:” deployments.apps禁止:用户\“系统: serviceaccount:default:default \“无法在名称空间\” diyclientapps \“”,“原因”:“禁止”,“详细信息”:{“ group”:“ apps”,“种类”:“部署”中创建Deployments.apps },“代码”:403}

尝试通过Kubernetes REST API创建部署时出现上述错误。

为什么?我不明白错误讯息...

这发生在自定义的Kubernetes集群上...以上内容在本地Minikube实例上正常运行。

我可以通过以下方式成功创建部署: kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080

ken*_*eni 9

你可以:

  1. 使用您需要的资源创建集群角色,在本例中是在应用程序资源组中。
  2. 将其绑定到您的服务帐户。

例子:

kubectl create clusterrole deployer --verb=get,list,watch,create,delete,patch,update --resource=deployments.apps

kubectl create clusterrolebinding deployer-srvacct-default-binding --clusterrole=deployer --serviceaccount=default:default
Run Code Online (Sandbox Code Playgroud)


Chr*_*ski 6

警告:这将允许任何具有机密访问权限的用户或能够创建Pod来访问超级用户凭据的用户。

kubectl create clusterrolebinding serviceaccounts-cluster-admin \
  --clusterrole=cluster-admin \
  --group=system:serviceaccounts
Run Code Online (Sandbox Code Playgroud)

https://kubernetes.io/docs/admin/authorization/rbac/

  • 哇最受好评!这是文档警告的一个,因为它授予跨所有名称空间的升级权限:| (8认同)