web-dev-qa-db-ja.com

ヘルム:エラー:利用可能なリリース名が見つかりません

他の場所の説明を見つけることができないHelmのエラーがいくつか発生しています。 2つのエラーは次のとおりです。

Error: no available release name found
Error: the server does not allow access to the requested resource (get configmaps)

2つのエラーの詳細は、以下のコードブロックにあります。

Ubuntu 16.04にKubernetesクラスターをインストールしました。マスター(K8SMST01)と2つのノード(K8SN01およびK8SN02)があります。

これは1.6以上のWeaveネットワークを使用してkubeadmを使用して作成されました。

展開、サービス、ポッドなどに関しては、すべてが完璧に動作しているようです。DNSは正常に動作しているようです。つまり、ポッドはDNS名(myservicename.default)を使用してサービスにアクセスできます。

「helm create」および「helm search」の使用は機能しますが、耕うん機の展開との相互作用は機能しないようです。 Tillerは、Helmインストールドキュメントに従ってインストールおよび実行されます。

root@K8SMST01:/home/blah/charts# helm version

Client: &version.Version{SemVer:"v2.3.0", 
GitCommit:"d83c245fc324117885ed83afc90ac74afed271b4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.3.0", GitCommit:"d83c245fc324117885ed83afc90ac74afed271b4", GitTreeState:"clean"}

root@K8SMST01:/home/blah/charts# helm install ./mychart

Error: no available release name found

root@K8SMST01:/home/blah/charts# helm ls

Error: the server does not allow access to the requested resource (get configmaps)

実行中のポッドは次のとおりです。

root@K8SMST01:/home/blah/charts# kubectl get pods -n kube-system -o wide
NAME                                      READY     STATUS    RESTARTS   AGE       IP             NODE
etcd-k8smst01                             1/1       Running   4          1d        10.139.75.19   k8smst01
kube-apiserver-k8smst01                   1/1       Running   3          19h       10.139.75.19   k8smst01
kube-controller-manager-k8smst01          1/1       Running   2          1d        10.139.75.19   k8smst01
kube-dns-3913472980-dm661                 3/3       Running   6          1d        10.32.0.2      k8smst01
kube-proxy-56nzd                          1/1       Running   2          1d        10.139.75.19   k8smst01
kube-proxy-7hflb                          1/1       Running   1          1d        10.139.75.20   k8sn01
kube-proxy-nbc4c                          1/1       Running   1          1d        10.139.75.21   k8sn02
kube-scheduler-k8smst01                   1/1       Running   3          1d        10.139.75.19   k8smst01
tiller-deploy-1172528075-x3d82            1/1       Running   0          22m       10.44.0.3      k8sn01
weave-net-45335                           2/2       Running   2          1d        10.139.75.21   k8sn02
weave-net-7j45p                           2/2       Running   2          1d        10.139.75.20   k8sn01
weave-net-h279l                           2/2       Running   5          1d        10.139.75.19   k8smst01
32
cjp

RBACの問題だと思います。ヘルムは1.6.1のRBACの準備ができていないようです。

HelmのGithubでこの問題が未解決です。

https://github.com/kubernetes/helm/issues/2224

「kubeadm v1.6.1を使用してクラスターを初めてインストールする場合、初期化はデフォルトでRBAC制御アクセスを設定します。これは、Tillerがインストール、インストール済みコンポーネントのスキャンなどを行うために必要な権限を台無しにします。 、しかしヘルムリスト、ヘルムインストールなどはすべて機能しません。許可の欠落などが原因です。」

一時的な回避策が提案されています:

「コマンドkubectl create clusterrolebinding permissive-binding --clusterrole = cluster-admin --user = admin --user = kubelet --group = system:serviceaccounts;を使用してRBACを「無効」にします。」

しかし、私はその妥当性について話すことはできません。幸いなことに、これは既知の問題であり、修正するための作業が行われています。お役に立てれば。

24
Simon I

GitHubの問題からkujengaによって提供されたソリューション 他の変更なしで機能しました:

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
56
karthik101

CentOS 7でのkubeadmセットアップで同じ問題が発生しました。

Helmは、「helm init」時にサービスアカウントを作成せず、デフォルトのアカウントにはconfigmapからの読み取り権限がないため、目的のデプロイメント名を確認するためのチェックを実行できません。用途は独特です。

これは私にそれを過ぎてしまった:

kubectl create clusterrolebinding add-on-cluster-admin \
    --clusterrole=cluster-admin \
    --serviceaccount=kube-system:default

しかし、それはデフォルトのアカウントに大量のパワーを与えています。私はこれをやったので、仕事に取りかかることができました。 Helmは、独自のサービスアカウントの作成を「helm init」コードに追加する必要があります。

11
MrMackey

kubernetesのすべてのアドオンは「デフォルト」サービスアカウントを使用します。したがって、Helmは「デフォルト」サービスアカウントでも実行されます。許可を与える必要があります。それにロールバインディングを割り当てます。

読み取り専用権限の場合:

kubectl create rolebinding default-view --clusterrole=view \ --serviceaccount=kube-system:default --namespace=kube-system

管理者アクセスの場合:例:パッケージをインストールします。

kubectl create clusterrolebinding add-on-cluster-admin \ --clusterrole=cluster-admin \ --serviceaccount=kube-system:default

以下のコマンドを使用して、別のネームスペースにティラーサーバーをインストールすることもできます。

  1. 最初に名前空間を作成します
  2. 名前空間のサービスアカウントを作成する
  3. 以下のコマンドを使用して、このそれぞれのネームスペースにティラーをインストールします。

helm init --tiller-namespace test-namespace

3
suresh Palemoni

このソリューションは私のために働いています: https://github.com/helm/helm/issues/3055#issuecomment-397296485

$ kubectl create serviceaccount --namespace kube-system tiller

$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

$ helm init --service-account tiller --upgrade

$ helm update repo

$ helm install stable/redis --version 3.3.5

しかし、その後、何かが変わりました。 kubectlコマンドに-insecure-skip-tls-verify = trueフラグを追加する必要があります!私はgcloud container clusterと対話していることを知っているので、それを修正する方法がわかりません。

3
Omar L.

https://github.com/kubernetes/helm/issues/2224#issuecomment-356344286 ごとに、次のコマンドでもエラーが解決されました。

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
2
Vikram Hosakote

https://github.com/kubernetes/helm/issues/3055

helm init --service-account default

これは、RBAC(serviceaccount)コマンドが機能しなかったときに機能しました。

2
robrich

これはRBACの問題です。 cluster-adminロールを持つサービスアカウントが必要です。また、HELMの初期化中にこのサービスアカウントを渡す必要があります。

たとえば、tillerという名前のサービスアカウントを作成した場合、hemlコマンドは次のようになります。

helm init --service-account=tiller

この問題を解決するためにこのブログをフォローしました。 https://scriptcrunch.com/helm-error-no-available-release/

0
Bibin Wilson