Mise à l'échelle : ajout de projets supplémentaires
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 :
-
Connectez-vous au cluster NetApp ONTAP en tant qu’administrateur de stockage.
-
Accéder à
Storage → Storage VMs
et cliquezAdd
. Créez un nouveau SVM dédié au projet-3. Créez également un compte vsadmin pour gérer le SVM et ses ressources.
-
Connectez-vous au cluster Red Hat OpenShift en tant qu’administrateur de cluster.
-
Créer un nouveau projet.
oc create ns project-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
-
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
|
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. |
-
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
-
Connectez-vous au cluster Red Hat OpenShift en tant qu'administrateur de stockage
-
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
|
Nous utilisons le pilote ontap-nas pour cet exemple. Utilisez le pilote approprié pour créer le backend en fonction du cas d’utilisation. |
|
Nous supposons que Trident est installé dans le projet Trident. |
-
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
-
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
-
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}}}'