【问题标题】:Setting up Helm RBAC Per Namespace为每个命名空间设置 Helm RBAC
【发布时间】:2019-04-18 20:48:20
【问题描述】:

我正在关注官方 Helm documentation 的“在命名空间中部署 Tiller,仅限于在该命名空间中部署资源”。这是我的 bash 脚本:

Namespace="$1"

kubectl create namespace $Namespace
kubectl create serviceaccount "tiller-$Namespace" --namespace $Namespace
kubectl create role "tiller-role-$Namespace" /
    --namespace $Namespace /
    --verb=* /
    --resource=*.,*.apps,*.batch,*.extensions
kubectl create rolebinding "tiller-rolebinding-$Namespace" /
    --namespace $Namespace /
    --role="tiller-role-$Namespace" /
    --serviceaccount="$Namespace:tiller-$Namespace"
helm init /
    --service-account "tiller-$Namespace" /
    --tiller-namespace $Namespace
    --override "spec.template.spec.containers[0].command'='{/tiller,--storage=secret}"
    --upgrade
    --wait

运行 helm upgrade 给我以下错误:

错误:升级失败:禁止配置映射:用户“system:serviceaccount:kube-system:default”无法列出命名空间“kube-system”中的配置映射

官方文档有bug吗?我读错了吗?

【问题讨论】:

  • 您是否尝试过$ helm init --service-account <serviceaccount_name> --tiller-namespace <namespace> --upgrade 来升级您现有的tiller
  • 添加了我用于helm init的命令。

标签: kubernetes rbac kubernetes-helm


【解决方案1】:

我不确定--resource 在您的脚本中标记正确的语法,这里是否允许星号符号“*”,请查看 GitHub 上报告的 issue

$ kubectl create role "tiller-role-$Namespace" \
--namespace $Namespace \
--verb=* \
--resource=*.,*.apps,*.batch,*.extensions
the server doesn't have a resource type "*"

但您可以在集群中检查此角色对象:

kubectl get role tiller-role-$Namespace -n $Namespace -o yaml

否则,请尝试按照文档中的指导在 yaml 文件中为 tiller 创建角色:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tiller-manager
  namespace: tiller-world
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]

此外,请记住,如果您在非默认命名空间(default)中安装了tiller,则需要在调用Helm 命令时指定tiller 所在的命名空间:

$ helm --tiller-namespace $Namespace version
Client: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 2020-10-18
    • 2018-03-11
    • 1970-01-01
    • 2020-01-03
    • 2020-06-27
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多