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

구성: 클러스터 관리 작업

Red Hat OpenShift cluster-admin은 다음과 같은 작업을 수행합니다.

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

  2. 서로 다른 프로젝트에 해당하는 두 개의 프로젝트를 작성합니다.

    oc create namespace project-1
    oc create namespace project-2
  3. 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. 마찬가지로 project-2에 대한 개발자 역할을 만듭니다.

  2. 모든 OpenShift 및 NetApp 스토리지 리소스는 일반적으로 스토리지 관리자가 관리합니다. 스토리지 관리자를 위한 액세스는 Trident가 설치될 때 생성되는 덴트 운영자 역할에 의해 제어됩니다. 또한 스토리지 관리자는 리소스 할당량에 대한 액세스 권한이 있어야 스토리지 소비 방식을 제어할 수 있습니다.

  3. 클러스터의 모든 프로젝트에서 리소스 할당량을 관리하는 역할을 생성하여 스토리지 관리자에게 연결합니다.

    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
  4. 클러스터가 조직의 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
참고 스토리지 관리자의 경우 세 가지 역할, 즉 세 가지 운영자 및 리소스 할당량이 바인딩되어야 합니다.
  1. Developer-project-1 역할을 project-1의 해당 그룹(OCP-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
  2. 마찬가지로 개발자 역할을 프로젝트 2의 해당 사용자 그룹에 바인딩하는 개발자를 위한 RoleBindings 를 만듭니다.