Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

構成: クラスター管理タスク

共同作成者 banum-netapp kevin-hoke

Red Hat OpenShift クラスター管理者によって次のタスクが実行されます。

  1. Red Hat OpenShift クラスターに cluster-admin としてログインします。

  2. 異なるプロジェクトに対応する 2 つのプロジェクトを作成します。

oc create namespace project-1
oc create namespace project-2
  1. project-1 の開発者ロールを作成します。

cat << EOF | oc create -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: project-1
  name: developer-project-1
rules:
  - verbs:
      - '*'
    apiGroups:
      - apps
      - batch
      - autoscaling
      - extensions
      - networking.k8s.io
      - policy
      - apps.openshift.io
      - build.openshift.io
      - image.openshift.io
      - ingress.operator.openshift.io
      - route.openshift.io
      - snapshot.storage.k8s.io
      - template.openshift.io
    resources:
      - '*'
  - verbs:
      - '*'
    apiGroups:
      - ''
    resources:
      - bindings
      - configmaps
      - endpoints
      - events
      - persistentvolumeclaims
      - pods
      - pods/log
      - pods/attach
      - podtemplates
      - replicationcontrollers
      - services
      - limitranges
      - namespaces
      - componentstatuses
      - nodes
  - verbs:
      - '*'
    apiGroups:
      - trident.netapp.io
    resources:
      - tridentsnapshots
EOF
メモ このセクションで提供されているロール定義は単なる例です。開発者の役割は、エンドユーザーの要件に基づいて定義する必要があります。
  1. 同様に、プロジェクト 2 の開発者ロールを作成します。

  2. すべての OpenShift およびNetAppストレージ リソースは通常、ストレージ管理者によって管理されます。ストレージ管理者のアクセスは、Tridentのインストール時に作成される Trident オペレーター ロールによって制御されます。これに加えて、ストレージ管理者は、ストレージの消費方法を制御するために ResourceQuotas へのアクセス権も必要とします。

  3. クラスター内のすべてのプロジェクトで ResourceQuotas を管理するためのロールを作成し、それをストレージ管理者にアタッチします。

cat << EOF | oc create -f -
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: resource-quotas-role
rules:
  - verbs:
      - '*'
    apiGroups:
      - ''
    resources:
      - resourcequotas
  - verbs:
      - '*'
    apiGroups:
      - quota.openshift.io
    resources:
      - '*'
EOF
  1. クラスターが組織の ID プロバイダーと統合され、ユーザー グループがクラスター グループと同期されていることを確認します。次の例は、アイデンティティ プロバイダーがクラスターと統合され、ユーザー グループと同期されていることを示しています。

$ oc get groups
NAME                        USERS
ocp-netapp-storage-admins   ocp-netapp-storage-admin
ocp-project-1               ocp-project-1-user
ocp-project-2               ocp-project-2-user
  1. ストレージ管理者の ClusterRoleBindings を構成します。

cat << EOF | oc create -f -
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: netapp-storage-admin-trident-operator
subjects:
  - kind: Group
    apiGroup: rbac.authorization.k8s.io
    name: ocp-netapp-storage-admins
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: trident-operator
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: netapp-storage-admin-resource-quotas-cr
subjects:
  - kind: Group
    apiGroup: rbac.authorization.k8s.io
    name: ocp-netapp-storage-admins
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: resource-quotas-role
EOF
メモ ストレージ管理者の場合、 trident-operator と resource-quotas の 2 つのロールをバインドする必要があります。
  1. 開発者用の RoleBinding を作成し、developer-project-1 ロールを project-1 内の対応するグループ (ocp-project-1) にバインドします。

cat << EOF | oc create -f -
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: project-1-developer
  namespace: project-1
subjects:
  - kind: Group
    apiGroup: rbac.authorization.k8s.io
    name: ocp-project-1
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: developer-project-1
EOF
  1. 同様に、開発者ロールをプロジェクト 2 の対応するユーザー グループにバインドする開発者用の RoleBinding を作成します。