Skip to main content
NetApp Solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

擴充:新增更多專案

貢獻者

在多租戶組態中、新增含有儲存資源的專案需要額外的組態、以確保不違反多租戶共享。若要在多租戶叢集中新增更多專案、請完成下列步驟:

  1. 以儲存管理員身分登入NetApp ONTAP 解決方案叢集。

  2. 瀏覽至「儲存虛擬機器」、然後按一下「Add(新增)」。建立專案3專用的新SVM。也可建立vsadmin帳戶來管理SVM及其資源。

建立SVM以進行擴充

  1. 以叢集管理身分登入Red Hat OpenShift叢集。

  2. 建立新專案。

    oc create ns project-3
  3. 確認專案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. 在Project 3中為開發人員建立角色繫結、將開發人員專案3角色繫結至專案3中對應的群組(OCP專案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後端、並將其對應至專案3專用的SVM。NetApp建議使用SVM的vsadmin帳戶、將後端連線至SVM、而非ONTAP 使用叢集管理員。

    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安裝在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. 建立資源配額、以限制專案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. 修補其他專案中的資源配額、限制這些專案中的資源無法從專案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}}}'