Runtime Fabric での承認済み名前空間の設定

承認済み名前空間を使用して、他のサービスと一緒に Runtime Fabric を Kubernetes クラスターにデプロイできます。クラスター内の権限を制限することで、Runtime Fabric に割り当てられた名前空間内のみのリソースへのアクセスを Runtime Fabric に許可できます。

承認済み名前空間を使用すれば、次の Runtime Fabric リソースの作成を制御できます。

  • 名前空間

  • RoleBindings

  • ServiceAccounts

承認済み名前空間の仕組み

インストール時に、名前空間、ServiceAccounts、ClusterRoles/Roles、RoleBindings で構成される設定ファイルを指定します。

Runtime Fabric により Runtime Fabric エージェント (rtf-agent) が Runtime Fabric 名前空間にインストールされ、承認済み名前空間リストで指定した追加の名前空間に Runtime Fabric がアクセスできるようになります。

次に、エージェントがクラスターのすべての名前空間のすべての cron ジョブを制御できる Runtime Fabric エージェントの ClusterRole の例を示します。

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: rtf:agent
rules:
- apiGroups:
 - batch
 resources:
 - cronjobs
 verbs:
 - create
 - delete
 - deletecollection
 - get
 - list
 - patch
 - update
 - watch

Runtime Fabric により、対応する ServiceAccount が 2 つの名前空間の cron ジョブでさまざまなアクション (動詞) を実行できるようにする ClusterRole rtf:agent を使用する必須の RoleBinding オブジェクトが作成されます。

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: rtf:agent-1
  namespace: namespace1
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: rtf:agent
subjects:
- kind: ServiceAccount
  name: rtf-agent-sa
  namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: rtf:agent-2
  namespace: namespace2
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: rtf:agent
subjects:
- kind: ServiceAccount
  name: rtf-agent-sa
  namespace: default

認証済み名前空間モードでクラスター化アプリケーションを使用するには、次の RoleBinding を作成する必要があります。

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: rtf-mule-clusterip-service
  namespace: <app_namespace>
subjects:
- kind: ServiceAccount
  name: mule-clusterip-service
  namespace: <rtf_namespace>
roleRef:
  kind: ClusterRole
  name: rtf:mule-clusterip-service
  apiGroup: rbac.authorization.k8s.io

承認済み名前空間の設定

承認済み名前空間は、Runtime Fabric をインストールするときに設定します。適切なインストール手順を参照してください。