Kubernetes(k8s)クラスタでNamespaceとユーザーの権限を紐づけるには、RoleとRoleBindingを使用します。以下は、具体的な手順です。
Namespaceを作成する
まず、Namespaceを作成します。例えば、"test-namespace"という名前のNamespaceを作成する場合は、以下のコマンドを実行します。
$ kubectl create namespace test-namespace
Roleを作成する
次に、Namespaceに関する操作を定義するRoleを作成します。例えば、"test-role"という名前のRoleを作成する場合は、以下のようにコマンドを実行します。
$ kubectl create role test-role --verb=get,list,create --resource=pods -n test-namespace
このRoleは、test-namespaceのpodsリソースに対して、get、list、createのアクションを許可します。
RoleBindingを作成する
最後に、NamespaceのユーザにRoleを割り当てるRoleBindingを作成します。例えば、"test-user"という名前のユーザーをNamespaceに割り当てる場合は、以下のようにコマンドを実行します。
$ kubectl create rolebinding test-user-binding --role=test-role --user=test-user -n test-namespace
これにより、test-userはtest-namespace内のpodsリソースに対して、get、list、createのアクションを実行することができます。
--
以上が、KubernetesのNamespaceとユーザの権限を紐づけるための基本的な手順です。詳細な権限設定や、別のリソースに対するアクションを許可する場合は、RoleとRoleBindingの設定を調整する必要があります。