web-dev-qa-db-ja.com

指定された名前空間にkubernetesチャートをインストールできません

Google Kubernetes Engineにクラスタをインストールしました。

そして、名前空間「ステージング」を作成しました

$ 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

しかし、私は得ました:

エラー:ステージングのリリースに失敗しました:名前空間「staging」は禁止されています:ユーザー「system:serviceaccount:kube-system:default」は名前空間「staging」で名前空間を取得できません:不明なユーザー「system:serviceaccount:kube-system:default」

どういう意味ですか..??それを動作させる方法.. ??

ありがとう..

8
karina

クラスターでRBACが有効になっているため、tillerポッドに十分な権限がないようです。

ティラーで必要なRBAC権限が不足しているdefault ServiceAccountを使用しています。

ClusterRole、ClusterRoleBinding、およびServiceAccountを作成するために必要なすべてのこと。それらを使用して、ポッドに必要な許可を与えることができます。

この手順に従ってください

_1。 ClusterRole tillerを作成します

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

注:ここでは完全な許可を使用しています。

_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 DeploymentでこのServiceAccountを使用する必要があります。

すでに持っているので、それを編集します

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

PodSpecでserviceAccountNametillerに設定します

[〜#〜] rbac [〜#〜] の詳細を読む

19

試してください:

helm init --upgrade --service-account tiller

this コメントでスコットSによって提案されました。

1
Madhu