Kubernetes无法在集群范围内创建名称空间

时间:2018-08-19 06:48:54

标签: kubernetes namespaces

我试图使用 button.setOnClickListener { Navigation.findNavController(it).navigate(R.id.addEmotionFragment) .... (Over Here) } 创建名称空间,但出现此错误:

  

来自服务器的错误(禁止):创建“ namespacefoo”时出错:禁止命名空间:用户“ xyz@pqr.com”无法在集群范围内创建命名空间

Kubernetes中是否存在“范围”的概念?我找不到有关不同类型范围的任何信息。如果无法在集群范围内创建名称空间,那么在哪里可以创建名称空间?如何检查我可以访问哪些“范围”?

3 个答案:

答案 0 :(得分:2)

这取决于您的Kubernetes环境。

answer suggest(在Google Cloud environment中):

  

这表明gcloud config set container/use_client_certificate设置为true,即gcloud期望客户端群集证书向群集进行身份验证(这是错误消息中的“客户端”所指的内容) )。

     

通过在container/use_client_certificate中发出以下命令来取消glcoud config的设置,从而消除了对旧版证书或凭据的需求,并防止了错误消息的出现:

gcloud config unset container/use_client_certificate
     

如果您在家庭工作站或其他地方使用的是gcloud的较旧版本,则可能会出现此类问题。

仍然,kubernetes/kubernetes issue 62361提到了相同的错误消息。

答案 1 :(得分:1)

这是GKE吗?如果是这样,则默认情况下会启用RBAC-您可能需要授予自己cluster-admin角色才能创建名称空间。

答案 2 :(得分:1)

kubernetes中的资源是命名空间的(存在于包含命名空间中)或集群范围的资源(不包含在命名空间中)。命名空间资源的示例是Pod,configmap和serviceaccounts。群集作用域资源的示例是节点,持久卷和名称空间本身。

当一个操作被禁止时,该消息指示该操作被禁止在哪个作用域,如果资源被命名了空间,那么该操作将在哪个命名空间中进行尝试。

“无法在集群作用域中创建名称空间”与在其他作用域中创建名称空间相反,它只是试图指出需要在哪个作用域上授予权限以允许该操作。