回答:
これらのコマンドが実行されると:
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"}}}}'      
helm init --service-account tiller --upgrade
実行された場合、問題は解決されました。
The accepted answer gives full admin access to Helm which is not the best solution security wise(stackoverflow.com/a/53277281/2777965を参照)。
                    kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'と、次のよう   になりますError from server (NotFound): deployments.extensions "tiller-deploy" not found
                    承認された回答はHelmへの完全な管理者アクセスを提供しますが、これはセキュリティに関して最良のソリューションではありません。もう少し作業することで、Helmの特定の名前空間へのアクセスを制限できます。詳細については、Helmのドキュメントをご覧ください。
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created
Tillerが以下のtiller-worldようにすべてのリソースを管理できるようにするロールを定義しますrole-tiller.yaml。
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tiller-manager
  namespace: tiller-world
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]
次に実行します:
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created
でrolebinding-tiller.yaml、
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tiller-binding
  namespace: tiller-world
subjects:
- kind: ServiceAccount
  name: tiller
  namespace: tiller-world
roleRef:
  kind: Role
  name: tiller-manager
  apiGroup: rbac.authorization.k8s.io
次に実行します:
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created
その後、実行helm initしてtiller-world名前空間にTillerをインストールできます。
$ helm init --service-account tiller --tiller-namespace tiller-world
すべてのコマンドの前に、--tiller-namespace tiller-worldまたはTILLER_NAMESPACE=tiller-world環境変数で設定します。
Tillerの使用を停止します。Helm 3はTillerの必要性を完全に排除します。Helm 2を使用している場合は、を使用helm templateしてHelmチャートからyamlを生成し、実行kubectl applyしてオブジェクトをKubernetesクラスターに適用できます。
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
--tiller-namespace tiller-worldかTILLER_NAMESPACE=tiller-world、環境変数に設定する必要があります。
                    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
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default、helm listそれでも実行しますError: configmaps is forbidden: User "system:serviceaccount:tiller:default" cannot list configmaps in the namespace "tiller": no RBAC policy matched
                    デフォルトのserviceaccountにはAPI権限がありません。Helmにはサービスアカウントを割り当てる必要があり、そのサービスアカウントにはAPI権限が付与されています。サービスアカウントに権限を付与する方法については、RBACのドキュメントをご覧ください:https : //kubernetes.io/docs/admin/authorization/rbac/#service-account-permissions
apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
kubectl apply -f your-config-file-name.yaml
次に、helmインスタレーションを更新してserviceAccountを使用します。
helm init --service-account tiller --upgrade
AWSのEKSクラスターを使用していて、禁止されている問題に直面している場合(例:forbidden: User ... cannot list resource "jobs" in API group "batch" in the namespace "default"これは私にとってはうまくいきました:
解決:
--clusterrole=cluster-adminにより、アクセス許可の問題は確実に修正されますが、必要な修正ではない場合があります。独自のサービスアカウント、(クラスター)ロール、(クラスター)ロールバインディングを必要な権限で作成することをお勧めします。