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

확장: 더 많은 프로젝트 추가

기여자

멀티 테넌트 구성에서는 스토리지 리소스로 새 프로젝트를 추가하려면 멀티 테넌시가 위반되지 않도록 추가적인 구성이 필요합니다. 멀티 테넌트 클러스터에 프로젝트를 더 추가하려면 다음 단계를 완료하십시오.

  1. NetApp ONTAP 클러스터에 스토리지 관리자로 로그인합니다.

  2. 스토리지 → 스토리지 VM으로 이동한 후 추가 를 클릭합니다. PROJECT-3 전용 SVM을 새로 생성합니다. SVM 및 리소스를 관리하는 vsadmin 계정도 생성합니다.

확장을 위한 SVM 생성
  1. Red Hat OpenShift 클러스터에 클러스터 관리자로 로그인합니다.

  2. 새 프로젝트를 만듭니다.

    oc create ns project-3
  3. PROJECT-3의 사용자 그룹이 IDP에서 생성되고 OpenShift 클러스터와 동기화되었는지 확인합니다.

    oc get groups
  4. PROJECT-3의 개발자 역할을 만듭니다.

    cat << EOF | oc create -f -
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      namespace: project-3
      name: developer-project-3
    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. 개발자를 위한 RoleBinding 만들기 project-3에서 developer-project-3 역할을 프로젝트-3의 해당 그룹(OCP-PROJECT-3)에 바인딩합니다.

    cat << EOF | oc create -f -
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: project-3-developer
      namespace: project-3
    subjects:
      - kind: Group
        apiGroup: rbac.authorization.k8s.io
        name: ocp-project-3
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: developer-project-3
    EOF
  2. Red Hat OpenShift 클러스터에 스토리지 관리자로 로그인합니다

  3. Trident 백엔드를 생성하여 PROJECT-3 전용 SVM에 매핑합니다. ONTAP 클러스터 관리자를 사용하는 대신 SVM의 vsadmin 계정을 사용하여 백엔드를 SVM에 연결하는 것이 좋습니다.

    cat << EOF | tridentctl -n trident create backend -f
    {
        "version": 1,
        "storageDriverName": "ontap-nas",
        "backendName": "nfs_project_3",
        "managementLIF": "172.21.224.210",
        "dataLIF": "10.61.181.228",
        "svm": "project-3-svm",
        "username": "vsadmin",
        "password": "NetApp!23"
    }
    EOF
참고 이 예에서는 ONTAP-NAS 드라이버를 사용하고 있습니다. 사용 사례에 따라 백엔드를 생성하는 데 적합한 드라이버를 사용하십시오.
참고 트리덴트 프로젝트에 Trident가 설치되어 있다고 가정합니다.
  1. PROJECT-3의 스토리지 클래스를 생성하고 PROJECT-3 전용 백엔드에서 스토리지 풀을 사용하도록 구성합니다.

    cat << EOF | oc create -f -
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: project-3-sc
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: ontap-nas
      storagePools: "nfs_project_3:.*"
    EOF
  2. ResourceQuota를 생성하여 다른 프로젝트 전용 스토리지로부터 스토리지를 요청하는 Project-3의 리소스를 제한합니다.

    cat << EOF | oc create -f -
    kind: ResourceQuota
    apiVersion: v1
    metadata:
      name: project-3-sc-rq
      namespace: project-3
    spec:
      hard:
        project-1-sc.storageclass.storage.k8s.io/persistentvolumeclaims: 0
        project-2-sc.storageclass.storage.k8s.io/persistentvolumeclaims: 0
    EOF
  3. 다른 프로젝트의 ResourceQuotas를 패치하여 해당 프로젝트의 리소스가 project-3 전용 스토리지 클래스에서 스토리지에 액세스하는 것을 제한합니다.

    oc patch resourcequotas project-1-sc-rq -n project-1 --patch '{"spec":{"hard":{ "project-3-sc.storageclass.storage.k8s.io/persistentvolumeclaims": 0}}}'
    oc patch resourcequotas project-2-sc-rq -n project-2 --patch '{"spec":{"hard":{ "project-3-sc.storageclass.storage.k8s.io/persistentvolumeclaims": 0}}}'