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

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

기여자 kevin-hoke

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

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

  2. 로 이동 Storage → Storage VMs 그리고 클릭하세요 Add . 프로젝트 3에 전념하는 새로운 SVM을 만듭니다. 또한 SVM과 해당 리소스를 관리하기 위해 vsadmin 계정을 만듭니다.

확장을 위한 SVM 생성

  1. 클러스터 관리자로 Red Hat OpenShift 클러스터에 로그인합니다.

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

    oc create ns project-3
  3. project-3의 사용자 그룹이 IdP에 생성되었고 OpenShift 클러스터와 동기화되었는지 확인하세요.

    oc get groups
  4. 프로젝트-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. 프로젝트 3의 개발자를 위한 RoleBinding을 생성하여 프로젝트 3의 해당 그룹(ocp-project-3)에 개발자-프로젝트-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에 매핑합니다. NetApp 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. 프로젝트 3에 대한 스토리지 클래스를 만들고 프로젝트 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. 다른 프로젝트에 전용된 스토리지 클래스에서 스토리지를 요청하는 project-3의 리소스를 제한하기 위해 ResourceQuota를 생성합니다.

    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}}}'