gpt4 book ai didi

kubernetes - 无法在指定的命名空间上安装 kubernetes 图表

转载 作者:行者123 更新时间:2023-12-01 22:43:17 25 4
gpt4 key购买 nike

我已在 Google Kubernetes Engine 上安装了集群。

然后,我创建了命名空间“staging”

$ kubectl get namespaces
default Active 26m
kube-public Active 26m
kube-system Active 26m
staging Active 20m

然后,我切换到在临时命名空间中操作

$ kubectl config use-context staging
$ kubectl config current-context
staging

然后,我在暂存命名空间上使用 helm 安装了 postgresql

helm install --name staging stable/postgresql

但是我得到了:

Error: release staging failed: namespaces "staging" is forbidden: User "system:serviceaccount:kube-system:default" cannot get namespaces in the namespace "staging": Unknown user "system:serviceaccount:kube-system:default"

这是什么意思..?如何让它工作..??

谢谢你..

最佳答案

由于您的集群启用了 RBAC,因此您的 tiller Pod 似乎没有足够的权限。

您使用的default ServiceAccount 缺乏足够的 RBAC 权限,tiller 需要。

创建 ClusterRole、ClusterRoleBinding 和 ServiceAccount 所需的一切。通过它们,您可以向您的 Pod 提供必要的权限。

按照此步骤操作

_1。创建 ClusterRole tiller

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]

Note: I have used full permission here.

_2。在 kube-system 命名空间

中创建 ServiceAccount tiller
$ kubectl create sa tiller -n kube-system

_3。创建 ClusterRoleBinding tiller

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
apiGroup: ""
roleRef:
kind: ClusterRole
name: tiller
apiGroup: rbac.authorization.k8s.io

现在您需要在 Tiller 部署中使用此 ServiceAccount。

由于您已有一个,请对其进行编辑

$ kubectl edit deployment -n kube-system tiller-deploy

将 PodSpec 下的 serviceAccountName 设置为 tiller

了解更多关于RBAC的信息

关于kubernetes - 无法在指定的命名空间上安装 kubernetes 图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48556971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com