Skip to main content
NetApp container solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Skalierung: Hinzufügen weiterer Projekte

Beitragende kevin-hoke

In einer Multitenant-Konfiguration erfordert das Hinzufügen neuer Projekte mit Speicherressourcen eine zusätzliche Konfiguration, um sicherzustellen, dass die Multitenant-Funktionalität nicht verletzt wird. Führen Sie die folgenden Schritte aus, um einem Multitenant-Cluster weitere Projekte hinzuzufügen:

  1. Melden Sie sich als Speicheradministrator beim NetApp ONTAP -Cluster an.

  2. Navigieren Sie zu Storage → Storage VMs und klicken Sie auf Add . Erstellen Sie eine neue SVM, die für Projekt 3 bestimmt ist. Erstellen Sie außerdem ein vsadmin-Konto, um die SVM und ihre Ressourcen zu verwalten.

SVM zur Skalierung erstellen

  1. Melden Sie sich als Clusteradministrator beim Red Hat OpenShift-Cluster an.

  2. Erstellen Sie ein neues Projekt.

    oc create ns project-3
  3. Stellen Sie sicher, dass die Benutzergruppe für Projekt 3 auf IdP erstellt und mit dem OpenShift-Cluster synchronisiert wird.

    oc get groups
  4. Erstellen Sie die Entwicklerrolle für Projekt 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
Hinweis Die in diesem Abschnitt bereitgestellte Rollendefinition ist nur ein Beispiel. Die Entwicklerrolle muss basierend auf den Anforderungen des Endbenutzers definiert werden.
  1. Erstellen Sie RoleBinding für Entwickler in Projekt 3, indem Sie die Rolle „Entwicklerprojekt 3“ an die entsprechende Gruppe (ocp-projekt 3) in Projekt 3 binden.

    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. Melden Sie sich als Speicheradministrator beim Red Hat OpenShift-Cluster an

  3. Erstellen Sie ein Trident -Backend und ordnen Sie es dem für Projekt 3 vorgesehenen SVM zu. NetApp empfiehlt, das vsadmin-Konto des SVM zu verwenden, um das Backend mit dem SVM zu verbinden, anstatt den ONTAP Clusteradministrator zu verwenden.

    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
Hinweis Für dieses Beispiel verwenden wir den ontap-nas-Treiber. Verwenden Sie den entsprechenden Treiber zum Erstellen des Backends basierend auf dem Anwendungsfall.
Hinweis Wir gehen davon aus, dass Trident im Trident-Projekt installiert ist.
  1. Erstellen Sie die Speicherklasse für Projekt 3 und konfigurieren Sie sie so, dass die für Projekt 3 vorgesehenen Speicherpools vom Backend verwendet werden.

    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. Erstellen Sie ein ResourceQuota, um Ressourcen in Projekt 3 einzuschränken, die Speicher von Speicherklassen anfordern, die anderen Projekten gewidmet sind.

    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. Patchen Sie die ResourceQuotas in anderen Projekten, um den Ressourcen in diesen Projekten den Zugriff auf Speicher aus der für Projekt 3 vorgesehenen Speicherklasse zu untersagen.

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