Skip to main content
NetApp container solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

구성: 클러스터 관리 작업

기여자 banum-netapp kevin-hoke

다음 작업은 Red Hat OpenShift 클러스터 관리자가 수행합니다.

  1. cluster-admin으로 Red Hat OpenShift 클러스터에 로그인합니다.

  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 공급자와 통합되어 있는지, 사용자 그룹이 클러스터 그룹과 동기화되어 있는지 확인하세요. 다음 예에서는 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라는 두 가지 역할을 바인딩해야 합니다.
  1. project-1의 해당 그룹(ocp-project-1)에 developer-project-1 역할을 바인딩하는 개발자를 위한 RoleBindings를 생성합니다.

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. 마찬가지로, 개발자 역할을 project-2의 해당 사용자 그룹에 바인딩하는 개발자용 RoleBindings를 생성합니다.