Como administrador do vSphere, você pode criar um Namespace de Supervisor, definir limites de CPU, memória e armazenamento para o namespace, atribuir permissões e ativar o serviço de namespace em um cluster como um modelo. Como resultado, os engenheiros de DevOps podem criar um Namespace de Supervisor de maneira de autoatendimento e implantar cargas de trabalho nele.

Fluxo de trabalho de criação e configuração de namespace de autoatendimento

Como administrador do vSphere, você pode criar um Namespace de Supervisor, definir limites de CPU, memória e armazenamento para o namespace, atribuir permissões e provisionar ou ativar o serviço de namespace em um cluster como um modelo.
Figura 1. Fluxo de trabalho de provisionamento do modelo de namespace de autoatendimento
""
Como engenheiro de DevOps, você pode criar um Namespace de Supervisor de maneira autoatendimento e implantar cargas de trabalho nele. Você pode compartilhá-lo com outros engenheiros de DevOps ou excluí-lo quando não for mais necessário. Para compartilhar o namespace com outros engenheiros de DevOps, entre em contato com o administrador do vSphere.
Figura 2. Fluxo de trabalho de criação de namespace de autoatendimento
""

Criar e configurar um modelo de namespace de autoatendimento

Como administrador do vSphere, você pode criar e configurar um Namespace de Supervisor como um modelo de namespace de autoatendimento. Os engenheiros de DevOps podem então criar e excluir Namespaces de Supervisor usando a linha de comando kubectl.

Pré-requisitos

Configure um cluster com vSphere with Tanzu.

Procedimento

  1. No vSphere Client, navegue até o Supervisor.
  2. Clique na guia Configurar (Configure) e selecione Geral (General) em Supervisor.
  3. Selecione Serviço de namespace (Namespace Service).
  4. Alterne a chave Status para ativar o recurso.
    A página Criar modelo de namespace (Create Namespace Template) é exibida.
  5. No painel Configuração (Configuration), configure os recursos para o namespace.
    Opção Descrição
    CPU A quantidade de recursos de CPU a serem reservados para o namespace.
    Memória A quantidade de memória a ser reservada para o namespace.
    Armazenamento A quantidade total de espaço de armazenamento a ser reservada para o namespace.
    Política de armazenamento Políticas de armazenamento a serem usadas com cargas de trabalho que exigem armazenamento persistente.
    Rede No menu suspenso Rede (Network), selecione uma rede para o namespace.
    Classes de VM Classes de VM para implantar VMs autônomas.
    Bibliotecas de conteúdo Bibliotecas de conteúdo com imagens de VM a serem usadas para implantações de VM.
  6. Clique em Avançar (Next).
  7. No painel Permissões (Permissions), adicione engenheiros e grupos de DevOps para capacitá-los a usar o modelo para criar namespaces.
    Selecione uma fonte de identidade e um usuário ou grupo e clique em Avançar (Next).
  8. No painel Revisar e confirmar (Review and Confirm), as propriedades que você configura são exibidas.
    Revise as propriedades e clique em Concluído (Done).

Resultados

Um modelo de namespace está configurado e está no estado Ativo. Como administrador do vSphere, você pode editar o modelo. Os engenheiros de DevOps podem usar o modelo para criar namespaces.

Desativar um namespace de autoatendimento

Como administrador do vSphere, você pode desativar um namespace de autoatendimento no cluster.

Quando você desativa um modelo de namespace de autoatendimento, os engenheiros de DevOps não podem usar o modelo para criar novos namespaces no cluster. Eles podem excluir os namespaces que já criaram.

Procedimento

  1. No vSphere Client, navegue até o Supervisor.
  2. Clique na guia Configurar (Configure) e selecione Geral (General) em Supervisor.
  3. No painel Serviço de namespace (Namespace Service), alterne a chave Status para desativar o modelo.
  4. Para ativar o modelo novamente, alterne a chave Status.
    Você pode criar outro namespace de autoatendimento ou usar o existente.

Criar um namespace de autoatendimento

Como engenheiro de DevOps, você pode criar um namespace de autoatendimento e executar cargas de trabalho nele. Depois de criar o namespace, você poderá compartilhá-lo com outros engenheiros de DevOps ou excluí-lo quando não for mais necessário.

Pré-requisitos

  • Verifique se um administrador vSphere criou e ativou um modelo de namespace de autoatendimento no cluster. Consulte Criar e configurar um modelo de namespace de autoatendimento.
  • Verifique se você foi adicionado à lista de permissões no modelo de namespace de autoatendimento individualmente ou como membro de um grupo .
  • Obtenha o endereço IP do plano de controle Supervisor.

Procedimento

  1. Usando o vSphere Plugin for kubectl, autentique com o Supervisor. Consulte Conectar-se ao Supervisor como um usuário do vCenter Single Sign-On.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. Alterne o contexto para o Supervisor.
    kubectl config use-context SUPERVISOR-CLUSTER-IP
  3. Crie um namespace de autoatendimento no cluster.
    kubectl create namespace NAMESPACE NAME
    Por exemplo
    kubectl create namespace test-ns
    Observação: As permissões de proprietário estão disponíveis para engenheiros de DevOps depois que você habilita vSphere with Tanzu e faz upgrade do cluster. Se você tiver atualizado apenas vCenter Server e não o cluster, os Engenheiros Devops só terão permissões de edição nos namespaces.
    O namespace que você cria aparece no cluster. Para compartilhar o namespace com outros engenheiros de DevOps, entre em contato com o administrador do vSphere.

Criar um namespace de autoatendimento com anotações e rótulos

Os engenheiros de DevOps podem criar namespaces de autoatendimento com anotações e rótulos usando a linha de comando do kubectl.

Os engenheiros de DevOps podem usar um manifesto YAML com anotações e rótulos definidos pelo usuário.

Procedimento

  1. Faça login no Supervisor.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Crie um arquivo de manifesto YAML de namespace com anotações e rótulos.
    kubectl create -f ns-create.yaml
    Por exemplo, crie o seguinte arquivo ns-create.yaml:
    apiVersion: v1
    kind: Namespace
    metadata:
      name: test-ns-yaml
      labels:
        my-label: "my-label-val-yaml"
      annotations:
        my-ann-yaml: "my-ann-val-yaml"
  3. Aplique o manifesto YAML.
    kubectl create -f ns-create.yaml

    Ou

    kubectl apply -f ns-create.yaml
  4. Descreva o namespace que você criou para ver as alterações.
    root@localhost [ /tmp ]# kubectl describe ns test-ns-yaml
    Name:         test-ns-yaml
    Labels:       my-label=my-label-val-yaml
                  vSphereClusterID=domain-c50
    Annotations:  my-ann-yaml: my-ann-val-yaml
                  vmware-system-namespace-owner-count: 1
                  vmware-system-resource-pool: resgroup-171
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v172
    Status:       Active
     
    Resource Quotas
     Name:             test-ns-yaml
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     Name:                                                                           test-ns-yaml-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
     
    No LimitRange resource.

Atualizar um namespace de autoatendimento usando a anotação kubectl e o rótulo kubectl

Como engenheiro de DevOps, você pode atualizar ou excluir anotações e rótulos de namespace de autoatendimento usando os comandos kubectl annotate e kubectl label.

Pré-requisitos

Verifique se você tem permissões de proprietário no namespace que deseja atualizar.

Procedimento

  1. Faça login no Supervisor.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Descreva o namespace que você deseja atualizar.
    root@localhost [ /tmp ]# kubectl describe ns testns
    Name:         testns
    Labels:       my-label=test-label-2
                  vSphereClusterID=domain-c50
    Annotations:  my-ann: test-ann-2
                  vmware-system-namespace-owner-count: 2
                  vmware-system-resource-pool: resgroup-153
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v154
    Status:       Active
     
     
    Resource Quotas
     Name:             testns
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     
     Name:                                                                           testns-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
  3. Atualize as anotações usando o comando kubectl annotate.
    Por exemplo, kubectl annotate --overwrite ns testns my-ann="test-ann-3"
    Para excluir uma anotação, execute o comando kubectl annotate --overwrite ns testns my-ann-
  4. Atualize os rótulos usando o comando kubectl label.
    Por exemplo, kubectl label --overwrite ns testns my-label="test-label-3"
    Para excluir um rótulo, execute o comando kubectl label --overwrite ns testns my-label-
  5. Descreva o namespace para ver as atualizações.
    root@localhost [ /tmp ]# kubectl describe ns testns
    Name:         testns
    Labels:       my-label=test-label-3
                  vSphereClusterID=domain-c50
    Annotations:  my-ann: test-ann-3
                  vmware-system-namespace-owner-count: 2
                  vmware-system-resource-pool: resgroup-153
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v154
    Status:       Active
     
     
    Resource Quotas
     Name:             testns
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     
     Name:                                                                           testns-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
     
     
    No LimitRange resource.

Atualizar um namespace de autoatendimento usando o kubectl edit

Como engenheiro de DevOps, você pode atualizar namespaces de autoatendimento usando o comando kubectl edit.

Pré-requisitos

Verifique se você tem permissões de proprietário no namespace que deseja atualizar.

Procedimento

  1. Faça login no Supervisor.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Descreva o namespace que você deseja atualizar.
    kubectl describe ns testns-1
    Name:         testns
    Labels:       vSphereClusterID=domain-c50
    Annotations:  my-ann: test-ann-2
                  vmware-system-namespace-owner-count: 2
                  vmware-system-resource-pool: resgroup-153
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v154
    Status:       Active
     
     
    Resource Quotas
     Name:             testns-1
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     
     Name:                                                                           testns-1-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
  3. Edite o namespace usando o comando kubectl edit.
    Por exemplo, kubectl edit ns testns-1
    O comando kubectl edit abre o manifesto do namespace no editor de texto definido pela variável de ambiente KUBE_EDITOR ou EDITOR.
  4. Atualize os rótulos.
    Por exemplo, my-label=test-label
  5. Atualize as anotações.
    Por exemplo, my-ann: test-ann
  6. Descreva o namespace para ver as atualizações.
    root@localhost [ /tmp ]# kubectl describe ns testns-1
    Name:         testns-1
    Labels:       my-label=test-label
                  vSphereClusterID=domain-c50
    Annotations:  my-ann: test-ann
                  vmware-system-namespace-owner-count: 1
                  vmware-system-resource-pool: resgroup-173
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v174
    Status:       Active
     
     
    Resource Quotas
     Name:             testns-1
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     
     Name:                                                                           testns-1-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
     
     
    No LimitRange resource.
    

Excluir um namespace de autoatendimento

Como engenheiro de DevOps, você pode excluir um namespace de autoatendimento criado por você.

Pré-requisitos

Verifique se você criou um namespace de autoatendimento usando o vSphere Plugin for kubectl.

Procedimento

  1. Usando o vSphere Plugin for kubectl, autentique com o Supervisor. Consulte Conectar-se ao Supervisor como um usuário do vCenter Single Sign-On.
  2. Exclua o namespace de autoatendimento do cluster.
    kubectl delete namespace NAMESPACE NAME
    Por exemplo:
    kubectl delete namespace test-ns