Skip to main content
NetApp container solutions
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Mise à l'échelle : ajout de projets supplémentaires

Contributeurs kevin-hoke

Dans une configuration multilocataire, l'ajout de nouveaux projets avec des ressources de stockage nécessite une configuration supplémentaire pour garantir que la multilocation n'est pas violée. Pour ajouter davantage de projets dans un cluster multilocataire, procédez comme suit :

  1. Connectez-vous au cluster NetApp ONTAP en tant qu’administrateur de stockage.

  2. Accéder à Storage → Storage VMs et cliquez Add . Créez un nouveau SVM dédié au projet-3. Créez également un compte vsadmin pour gérer le SVM et ses ressources.

Créer un SVM pour la mise à l'échelle

  1. Connectez-vous au cluster Red Hat OpenShift en tant qu’administrateur de cluster.

  2. Créer un nouveau projet.

    oc create ns project-3
  3. Assurez-vous que le groupe d’utilisateurs pour le projet 3 est créé sur IdP et synchronisé avec le cluster OpenShift.

    oc get groups
  4. Créez le rôle de développeur pour le projet-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
Remarque La définition de rôle fournie dans cette section n’est qu’un exemple. Le rôle du développeur doit être défini en fonction des besoins de l’utilisateur final.
  1. Créez RoleBinding pour les développeurs dans le projet-3 en liant le rôle developer-project-3 au groupe correspondant (ocp-project-3) dans le projet-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. Connectez-vous au cluster Red Hat OpenShift en tant qu'administrateur de stockage

  3. Créez un backend Trident et mappez-le au SVM dédié au projet-3. NetApp recommande d'utiliser le compte vsadmin du SVM pour connecter le backend au SVM au lieu d'utiliser l'administrateur du cluster 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
Remarque Nous utilisons le pilote ontap-nas pour cet exemple. Utilisez le pilote approprié pour créer le backend en fonction du cas d’utilisation.
Remarque Nous supposons que Trident est installé dans le projet Trident.
  1. Créez la classe de stockage pour le projet-3 et configurez-la pour utiliser les pools de stockage du backend dédié au projet-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. Créez un ResourceQuota pour restreindre les ressources du projet 3 demandant du stockage à partir de classes de stockage dédiées à d'autres projets.

    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. Corrigez les ResourceQuotas dans d'autres projets pour empêcher les ressources de ces projets d'accéder au stockage à partir de la classe de stockage dédiée au projet-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}}}'