我试图使用 button.setOnClickListener {
Navigation.findNavController(it).navigate(R.id.addEmotionFragment)
.... (Over Here)
}
创建名称空间,但出现此错误:
来自服务器的错误(禁止):创建“ namespacefoo”时出错:禁止命名空间:用户“ xyz@pqr.com”无法在集群范围内创建命名空间
Kubernetes中是否存在“范围”的概念?我找不到有关不同类型范围的任何信息。如果无法在集群范围内创建名称空间,那么在哪里可以创建名称空间?如何检查我可以访问哪些“范围”?
答案 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。群集作用域资源的示例是节点,持久卷和名称空间本身。
当一个操作被禁止时,该消息指示该操作被禁止在哪个作用域,如果资源被命名了空间,那么该操作将在哪个命名空间中进行尝试。
“无法在集群作用域中创建名称空间”与在其他作用域中创建名称空间相反,它只是试图指出需要在哪个作用域上授予权限以允许该操作。