Skip to main content
NetApp container solutions
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Escalonamento: Adicionando mais projetos

Colaboradores banum-netapp kevin-hoke

Em uma configuração multilocatário, adicionar novos projetos com recursos de armazenamento requer configuração adicional para garantir que a multilocação não seja violada. Para adicionar mais projetos em um cluster multilocatário, conclua as seguintes etapas:

  1. Efetue login no cluster NetApp ONTAP como administrador de armazenamento.

  2. Navegar para Storage → Storage VMs e clique Add . Crie um novo SVM dedicado ao projeto-3. Crie também uma conta vsadmin para gerenciar o SVM e seus recursos.

Criar SVM para dimensionamento
  1. Efetue login no cluster do Red Hat OpenShift como administrador do cluster.

  2. Crie um novo projeto.

oc create ns project-3
  1. Certifique-se de que o grupo de usuários do projeto-3 seja criado no IdP e sincronizado com o cluster OpenShift.

oc get groups
  1. Crie a função de desenvolvedor para o projeto-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
Observação A definição de função fornecida nesta seção é apenas um exemplo. A função do desenvolvedor deve ser definida com base nos requisitos do usuário final.
  1. Crie RoleBinding para desenvolvedores no projeto-3 vinculando a função developer-project-3 ao grupo correspondente (ocp-project-3) no projeto-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
  1. Efetue login no cluster Red Hat OpenShift como administrador de armazenamento

  2. Crie um backend Trident e mapeie-o para o SVM dedicado ao projeto-3. A NetApp recomenda usar a conta vsadmin do SVM para conectar o backend ao SVM em vez de usar o administrador do 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
Observação Estamos usando o driver ontap-nas para este exemplo. Use o driver apropriado para criar o backend com base no caso de uso.
Observação Assumimos que o Trident está instalado no projeto Trident.
  1. Crie a classe de armazenamento para o projeto-3 e configure-a para usar os pools de armazenamento do backend dedicados ao projeto-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
  1. Crie um ResourceQuota para restringir recursos no projeto-3 solicitando armazenamento de classes de armazenamento dedicadas a outros projetos.

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
  1. Aplique patch no ResourceQuotas em outros projetos para restringir o acesso de recursos nesses projetos ao armazenamento da classe de armazenamento dedicada ao projeto-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}}}'