Skip to main content
NetApp container 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.

Escalado: agregar más proyectos

Colaboradores kevin-hoke

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:

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

  2. Navegar a Storage → Storage VMs y haga clic Add . Cree una nueva SVM dedicada al proyecto 3. También cree una cuenta vsadmin para administrar el SVM y sus recursos.

Crear SVM para escalar

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

  2. Crear un nuevo proyecto.

    oc create ns project-3
  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
  4. 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
Nota 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.
  1. 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
  2. Inicie sesión en el clúster Red Hat OpenShift como administrador de almacenamiento

  3. 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
Nota Estamos utilizando el controlador ontap-nas para este ejemplo. Utilice el controlador apropiado para crear el backend según el caso de uso.
Nota Suponemos que Trident está instalado en el proyecto trident.
  1. 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
  2. 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
  3. 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}}}'