RBACが無効になっているとされるkubernetesクラスターにhelmパッケージをインストールしようとしています。 RBACがenabledだった場合に予想されるclusterroles.rbac.authorization.k8s.io
に言及する許可エラーが表示されます。
kubectl
でRBACが本当に無効になっているかどうかを確認する方法はありますか?
私が試したもの:
kubectl describe nodes --all-namespaces | grep -i rbac
:何も表示されませんkubectl describe rbac --all-namespaces | grep -i rbac
:何も表示されませんkubectl config get-contexts | grep -i rbac
:何も表示されませんk get clusterroles
は、エラーメッセージではなく「リソースが見つかりません」と表示します。つまり、RBACが有効になっているということですか?kuebctl describe cluster
は問題ではありません多分これは x-yの問題 であることを認識しています。インストールしようとしているhelmパッケージがRBACが有効になることを期待している可能性があるからです。それでも、有効/無効になっているかどうかを確認する方法を知りたいです。
これを確認するには、コマンドkubectl api-versions
;を実行します。 RBACが有効になっている場合、APIバージョン.rbac.authorization.k8s.io/v1
が表示されます。
AKSでの最善の方法は、 resources.Azure.com でクラスターのリソースの詳細を確認することです。 "enableRBAC": true
を見つけることができる場合、クラスターでRBACが有効になっています。既存の非RBAC対応AKSクラスターは、現在RBAC用に更新できないことに注意してください。 (説明をありがとう@DennisAmeling)
もっと良い方法があればいいのですが、私が使用しているのは:
$ kubectl cluster-info dump | grep authorization-mode
実行できる場合は、RBAC
がリストされているかどうかが表示され、実行する権限がない場合は、RBACが有効になっている可能性があります。
Azure(AKS)の場合、これはもう少し注意が必要です。 kubectl api-versions
コマンドは実際にrbac.authorization.k8s.io/v1
を返しますが、kubectl get clusterroles
コマンドはデフォルトのsystem:
プレフィックス付きロールを返しません。
AKSを確認する最善の方法は、クラスターのリソースの詳細を確認することです。 resources.Azure.com で。 "enableRBAC": true
の場合、クラスターでRBACが有効になっています。既存の非RBAC対応AKSクラスター 現在は更新できません RBAC用。そのため、AKSでRBACを有効にするには、新しいクラスターを作成する必要があります。
オプション#1:マスターノードにアクセスできる場合は、ログインして以下を確認してください
ps -aef | grep -i apiserver
The options should have --authorization-mode=RBAC otherwise RBAC not enabled.
オプション#2:
kubectl get clusterroles | grep -i rbac
お役に立てれば
Rgds Sudhakar
Azure(AKS)の場合、Azure CLIはうまく機能すると思います。
az resource show -g <resource group name> -n <cluster name> --resource-type Microsoft.ContainerService/ManagedClusters --query properties.enableRBAC
基本的には resources.Azure.com を使用するのと同じですが、 Azure CLI を使用する方が速いことがわかります
ps -aef | grep -i apiserver
を見つけるのが最も簡単な方法です。