Escalado: agregar más proyectos
En una configuración multiinquilino, agregar nuevos proyectos con recursos de almacenamiento requiere una configuración adicional para garantizar que no se viole la multiinquilino. Para agregar más proyectos en un clúster multiinquilino, complete los siguientes pasos:
-
Inicie sesión en el clúster NetApp ONTAP como administrador de almacenamiento.
-
Navegar a
Storage → Storage VMs
y haga clicAdd
. Cree una nueva SVM dedicada al proyecto 3. También cree una cuenta vsadmin para administrar el SVM y sus recursos.
-
Inicie sesión en el clúster Red Hat OpenShift como administrador del clúster.
-
Crear un nuevo proyecto.
oc create ns project-3
-
Asegúrese de que el grupo de usuarios del proyecto 3 esté creado en IdP y sincronizado con el clúster OpenShift.
oc get groups
-
Crear el rol de desarrollador para el proyecto 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 definición de rol proporcionada en esta sección es sólo un ejemplo. El rol de desarrollador debe definirse en función de los requisitos del usuario final. |
-
Cree un RoleBinding para los desarrolladores en el proyecto 3 que vincule el rol de desarrollador-proyecto-3 al grupo correspondiente (ocp-proyecto-3) en el proyecto-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
-
Inicie sesión en el clúster Red Hat OpenShift como administrador de almacenamiento
-
Cree un backend Trident y asígnelo al SVM dedicado al proyecto 3. NetApp recomienda utilizar la cuenta vsadmin de SVM para conectar el backend a SVM en lugar de utilizar el administrador de clúster de 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
|
Estamos utilizando el controlador ontap-nas para este ejemplo. Utilice el controlador apropiado para crear el backend según el caso de uso. |
|
Suponemos que Trident está instalado en el proyecto trident. |
-
Cree la clase de almacenamiento para el proyecto 3 y configúrela para utilizar los grupos de almacenamiento del backend dedicados al proyecto 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
-
Cree una ResourceQuota para restringir los recursos en el proyecto 3 que solicitan almacenamiento de clases de almacenamiento dedicadas a otros proyectos.
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
-
Parchee ResourceQuotas en otros proyectos para restringir que los recursos en esos proyectos accedan al almacenamiento desde la clase de almacenamiento dedicada al proyecto 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}}}'