当前位置: 首页 > 知识库问答 >
问题:

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

云焱
2023-03-14

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

){“kind”:“Status”,“apiVersion”:“v1”,“metadata”:{},“Status”:“Failure”,“message”:“deployments”。应用被禁止:用户“system:serviceaccount:default:default\”无法创建部署。命名空间“dicyclientapps”中的应用程序,“原因”:“禁止”,“详细信息”:{“组”:“应用程序”,“种类”:“部署”},“代码”:403}

当我试图通过Kubernetes REST API创建一个部署时,我得到了上面的错误。

为什么?我不理解错误信息...

这发生在自定义库伯内特斯集群上…上述操作在本地Minikube实例上正常工作。

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

共有3个答案

东郭良弼
2023-03-14

它可能在minikube上工作,因为它为您设置了一个许可(不安全)策略。

有关向服务帐户授予权限的信息,请参见https://kubernetes . io/docs/admin/authorization/RBAC/# service-account-permissions。

默认RBAC策略向控制平面组件、节点和控制器授予作用域权限,但不向“kube system”命名空间之外的服务帐户授予权限(除了授予所有经过身份验证的用户的发现权限)。

全誉
2023-03-14

您可以:

  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
邹修真
2023-03-14

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

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

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

 类似资料:
  • 我试图在AWS EKS集群中创建一个名称空间,并不断收到一个错误。 我可以使用默认名称空间做任何我想做的事情,但是当我尝试创建一个新的名称空间时,我被禁止。 这一定是我对用户“thera-eks”做的不正确的事情。也许角色绑定? 看起来我给了角色访问所有内容的权限,因为在规则中我给了它*通配符。 我使用的命令是- 我得到的错误是- 我的role.yaml是: 我的rolebinding.yaml是

  • 我在默认命名空间中创建了一个serviceaccount(dm sa),并在clusterRole(绑定到PodSecurityPolicy)和clusterRoleBinding中使用了这个serviceaccount。接下来,在部署yaml(将在名称空间“dm”中运行)中,我在模板:spec下指定了serviceAccount:dm和serviceAccountName:default。这样,

  • 我需要在K8S中管理部署的建议。我需要使用gitops进行蓝色/绿色部署,这基本上给我留下了两个选择: 这将需要使用helm来管理删除资源等等,并通过helm通过代理管理blue/green,而这又将需要创建重复的部署模板(用于green和blue)。 优点:由掌舵人管理,会删除已删除的资源;似乎是一般的做法。 缺点:由helm管理,可能会搞砸一些东西,特别是在多个失败的部署中;可以创建雪花命名空

  • 我现在正在使用Kubernetes测试在不同名称空间中的部署。在这里,我使用了Kubernetes的掌舵图。在我的图表中,我有deployment.yaml和service.yaml。 当我使用Helm命令定义“namespace”参数时,它不起作用。当我读到这篇文章时,我发现-“helm2 is not overwrite by the--namespace parameter”这个语句。 我尝

  • 本文向大家介绍JavaScript创建命名空间的5种写法,包括了JavaScript创建命名空间的5种写法的使用技巧和注意事项,需要的朋友参考一下 在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,可以看看下面的例子: 最终的输出为 为什么会这样,根据 StackOverFlow 的解释,实际上JavaScript的是按如下顺序解析的。 不带var

  • 我正在尝试使用Google Apps脚本在XML文件中创建以下结构: 尝试设置命名空间前缀时会出现问题: xmlns="http://ns.adobe.com/xfdf/" 以下是我目前的代码: 然而,当运行这段代码时,我在日志中遇到了以下错误。日志 理想情况下,输出XML如下所示: 我想我一开始就错过了这一节: xml版本=“1.0”编码=“UTF-8” 然而,这是它自己创造的。我如何绕过这个无