Skip to main content
NetApp Solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Escala: Agregar más proyectos

Colaboradores

En una configuración multitenant, agregar nuevos proyectos con recursos de almacenamiento requiere una configuración adicional para asegurarse de que no se infringe la multi-tenancy. Para agregar más proyectos en un clúster multitenant, realice los siguientes pasos:

  1. Inicie sesión en el clúster de ONTAP de NetApp como administrador de almacenamiento.

  2. Vaya a. Storage → Storage VMs y haga clic en Add. Cree una nueva SVM dedicada al proyecto-3. Además, cree una cuenta de vsadmin para gestionar la SVM y sus recursos.

Cree una SVM para el escalado

  1. Inicie sesión en el clúster de Red Hat OpenShift como administrador de clúster.

  2. Cree un proyecto nuevo.

    oc create ns project-3
  3. Asegúrese de que el grupo de usuarios para project-3 se crea en IDP y se sincroniza con el clúster OpenShift.

    oc get groups
  4. Cree 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
Nota La definición de rol proporcionada en esta sección es sólo un ejemplo. La función de desarrollador debe definirse en función de los requisitos del usuario final.
  1. Crear RoleBinding para desarrolladores en el proyecto-3 enlazar 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
  2. Inicie sesión en el clúster Red Hat OpenShift como administrador de almacenamiento

  3. Cree un back-end de Trident y asígnelo al SVM dedicado al proyecto-3. NetApp recomienda utilizar la cuenta vsadmin de la SVM para conectar el back-end a la SVM en lugar de utilizar el administrador del 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
Nota En este ejemplo, estamos usando el controlador ontap-nas. Utilice el controlador apropiado para crear el backend basado en el caso de uso.
Nota Asumimos que Trident se instala en el proyecto trident.
  1. Cree la clase de almacenamiento para el proyecto-3 y configúrela para que utilice los pools de almacenamiento desde back-end dedicado 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
  2. Cree un ResourceQuota para restringir los recursos del proyecto-3 solicitando almacenamiento de storagegrid dedicado 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
  3. Aplicar un parche a ResourceQuotas en otros proyectos para restringir el acceso de los recursos de dichos proyectos al almacenamiento desde storageeclass dedicado 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}}}'