免責事項: これは英文の記事「vSphere Namespace Permissions for VKS」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
この記事は、下記の公式ドキュメントを補足するものです。
vSphere 名前空間の各権限が VKS クラスタにどのような影響を与えるかを説明します。
vCenter Single Sign-On ユーザーおよびグループに対する vSphere 名前空間の権限の構成
シナリオ例
vSphere Kubernetes Service
この権限により、スーパーバイザーコンテキストへの読み取り専用アクセスが許可されます。
スーパーバイザーレベル: ユーザーは、vSphere名前空間でクラスタAPIリソースなどを表示できます。
kubectl vsphere login -u [email protected] --server=https://${SUPERVISOR_VIP}
kubectl config use-context vsphere-ns-1
kubectl get cluster,ma,vm # OK
kubectl delete ma <ma_object> # NG
kubeatl edit cluster <cluster> # NG
VKSクラスタレベル: ユーザーはVKSクラスタの内部にアクセスできません。
kubectl config use-context <TARGET_VKS_CLUSTER>
kubectl get pods # NG
この権限により、ユーザーは対象のvSphere名前空間内でVKSクラスターを管理できます。
「編集可能」を有効にすると、対象ユーザーに以下の権限が付与されます。
VKSクラスタ内部で以下のコマンドを実行することで、この自動的なクラスターロールバインディングを確認できます。
kubectl config use-context <TARGET_VKS_CLUSTER>
kubectl get clusterrolebindings | grep cluster-admin
#> vmware-system-auth-sync-wcp:vsphere-ns-1:group:vsphere.local:administrators ClusterRole/cluster-admin
#> vmware-system-auth-sync-wcp:vsphere-ns-1:group:vsphere.local:test ClusterRole/cluster-admin
注意: 「開発者」アクセスの推奨事項
ユーザーにワークロードのデプロイは許可したいが、k8s クラスタ自体の削除はさせたくない場合、「編集可能」権限は過剰である場合があります。 名前空間の「編集可能」(クラスターライフサイクル管理)権限を与えずに、VKSクラスタへのアクセスのみを許可する必要がある場合は、以下のドキュメントを参照してください。
「編集可能」権限は、あくまで Supervisor に対する kubectl 操作のためのものです。vSphere Client で vSphere 名前空間の設定を変更する権限を付与するものではありません。
VKSクラスタの観点からは、「所有者」は「編集可能」と機能的に同一です。
「所有者」の追加機能は、Supervisorコンテキスト(kubectl)を介して新しいvSphere名前空間を作成できることです。
前提条件: 管理者が事前にvSphere Clientで「vSphere 名前空間セルフサービス(テンプレート)」を構成している必要があります。
kubectl を使用した vSphere 名前空間の作成の有効化
注意: 「所有者」権限であっても、vSphere Client経由でvSphere名前空間の構成を変更する権限は付与されません。名前空間自体の管理は、引き続きvSphere管理者に限定されます。