2.6.9 Kubernetesリソース取得用ロールおよびロールバインディングのKubernetesマニフェストの作成
次に示す要件を満たすように、Kubernetesリソース取得用ロールおよびロールバインディングのKubernetesマニフェストを作成してください。
このロールおよびロールバインディングを使用することで、対象コンテナがKubernetesリソース取得時に必要なKubernetesオブジェクトにアクセスできるようにします。
Kubernetesリソース取得用ロールおよびロールバインディングのKubernetesマニフェストの作成要領を次に示します。
<ロールの作成要領>
-
リソースの種類(.kindフィールド)は、ClusterRoleリソースを指定してください。
-
ロールの名称(.metadata.nameフィールド)に、ユーザ任意の名称を指定してください。
-
ロールのルール(.rulesフィールド)に、次のとおり指定してください。
-
APIグループ(apiGroups)
空(コアグループ)
-
リソース(resources)
services、endpoints、pods
-
アクセス許可(verbs)
get、list、watch
-
<ロールバインディングの作成要領>
-
リソースの種類(.kindフィールド)は、ClusterRoleBindingリソースを指定してください。
-
ロールバインディングの名称(.metadata.nameフィールド)に、ユーザ任意の名称を指定してください。
-
バインドするロール(.roleRefフィールド)は、次のとおり指定してください。
-
.roleRef.apiGroupフィールドに、「rbac.authorization.k8s.io」を指定してください。
-
.roleRef.kindフィールドに、「ClusterRole」を指定してください。
-
.roleRef.nameフィールドに、ロールで指定したロールの名称を指定してください。
-
-
バインドする対象物(.subjectsフィールド)は、次のとおり指定してください。
-
リストの要素数は、次に示すKubernetesリソースの取得を実施するKubernetesアプリケーションの中で、利用するKubernetesアプリケーション数と同じ数にします。
<Kubernetesリソースの取得を実施するKubernetesアプリケーション>
・Orchestrator-Service
・Relay-Service
・Entity-Service(SQL)
・Entity-Service(TCC)
・Orchestrator-Service(SQL)
・Alternate-Service
・Alternate-Service(SQL)
・TP1-Bridge
-
.subjects[].kindフィールドに、「ServiceAccount」を指定してください。
-
.subjects[].nameフィールドに、Kubernetesリソースの取得を実施するKubernetesアプリケーションのServiceAccountリソースの.metadata.nameフィールドに指定した名称を指定してください。
-
.subjects[].namespaceフィールドに、Kubernetesリソースの取得を実施するKubernetesアプリケーションのServiceAccountリソースの.metadata.namespaceフィールドに指定したNamespaceを指定してください。
-
Kubernetesリソース取得用ロールおよびロールバインディングのKubernetesマニフェストの記述例を次に示します。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: lb-role rules: - apiGroups: - "" resources: - pods - services - endpoints verbs: - get - list - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: lb-role-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: lb-role subjects: - kind: ServiceAccount name: orchestrator-service-account namespace: my-namespace - kind: ServiceAccount name: relay-service-service-account namespace: my-namespace - kind: ServiceAccount name: sql-participant-service-account namespace: my-namespace - kind: ServiceAccount name: tcc-participant-service-account namespace: my-namespace - kind: ServiceAccount name: orchestrator-sql-service-account namespace: my-namespace - kind: ServiceAccount name: alternate-service-service-account namespace: my-namespace - kind: ServiceAccount name: alternate-service-sql-service-account namespace: my-namespace - kind: ServiceAccount name: <tp1-bridgeのservice-account>※ namespace: my-namespace
- 注※
-
<tp1-bridgeのservice-account>は、「name: <リリース名>-service-account」で指定してください。
<リリース名>は、「(15) Kubernetesアプリケーションのデプロイ」でhelmコマンドに指定するリリース名を指定してください。
例:リリース名がtp1-bridge1の場合
name: tp1-bridge1-service-account