Você pode dimensionar um cluster do Tanzu Kubernetes horizontalmente alterando o número de nós ou verticalmente alterando a classe de máquina virtual que hospeda os nós.

Operações de dimensionamento compatíveis

A tabela lista as operações de dimensionamento com suporte para clusters Tanzu Kubernetes.
Tabela 1. Operações de dimensionamento com suporte para Tanzu Kubernetes clusters
Dimensionar horizontalmente horizontalmente Dimensionamento horizontal em Escala vertical
Camada de controle Sim Não Sim
Trabalhador Sim Sim Sim
Tenha em mente as seguintes considerações:
  • Durante o dimensionamento vertical de um nó de cluster, as cargas de trabalho podem não ser mais capazes de ser executadas no nó por falta de recursos disponíveis. Por esse motivo, o dimensionamento horizontal pode ser a abordagem preferida.
  • As classes de VM não são imutáveis. Se você dimensionar horizontalmente um cluster do Tanzu Kubernetes depois de editar uma classe de VM usada por esse cluster, novos nós de cluster usarão a definição de classe atualizada, mas os nós de cluster existentes continuarão a usar a definição de classe inicial, resultando em uma incompatibilidade. Consulte o Classes de máquina virtual para Tanzu Kubernetes clusters.

Pré-requisito de dimensionamento: configurar a edição do Kubectl

Para dimensionar um cluster do Tanzu Kubernetes, você atualiza o manifesto do cluster usando o comando kubectl edit tanzukubernetescluster/CLUSTER-NAME. O comando kubectl edit abre o manifesto do cluster no editor de texto definido pela variável de ambiente KUBE_EDITOR ou EDITOR. Para obter instruções sobre como configurar a variável de ambiente, consulte Especificar um editor de texto padrão para o Kubectl.

Quando você salva as alterações do manifesto, o kubectl relata que as edições foram registradas com êxito e o cluster é atualizado com as alterações.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
Para cancelar, basta fechar o editor sem salvar.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
Edit cancelled, no changes made.

Dimensionar horizontalmente o plano de controle

Você pode dimensionar horizontalmente um cluster do Tanzu Kubernetes aumentando o número de nós do plano de controle de 1 para 3. O número de nós do plano de controle deve ser ímpar. Não é possível dimensionar no plano de controle.
  1. Autentique-se com o Supervisor Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Alterne o contexto para o vSphere Namespace no qual o cluster do Tanzu Kubernetes está em execução.
    kubectl config use-context tkgs-cluster-ns
  3. Liste os clusters do Kubernetes que estão em execução no namespace.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Obtenha o número de nós em execução no cluster de destino.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Por exemplo, o cluster a seguir tem 1 nós de plano de controle e 3 nós de trabalhador.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     1               3        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    
  5. Carregue o manifesto do cluster para edição usando o comando kubectl edit.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    O manifesto do cluster é aberto no editor de texto definido por suas variáveis de ambiente KUBE_EDITOR ou EDITOR.

  6. Localize o parâmetro spec.topology.controlPlane.count e aumente o número de nós de 1 para 3.
    ...
    controlPlane:
        replicas: 1
    ...
    
    ...
    ControlPlane:
        replicas: 3
    ...
    
  7. Para aplicar as alterações, salve o arquivo no editor de texto. Para cancelar, feche o editor sem salvar.

    Quando você salva o arquivo, o kubectl aplica as alterações ao cluster. Em segundo plano, o Virtual Machine Service no Supervisor Cluster provisiona o novo nó de trabalhador.

  8. Verifique se os novos nós foram adicionados.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    O plano de controle dimensionado agora tem 3 nós.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               3        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    

Dimensionar horizontalmente os nós de trabalho

Você pode dimensionar horizontalmente um cluster do Tanzu Kubernetes aumentando o número de nós de trabalho usando kubectl.

  1. Autentique-se com o Supervisor Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Alterne o contexto para o vSphere Namespace no qual o cluster do Tanzu Kubernetes está em execução.
    kubectl config use-context tkgs-cluster-ns
  3. Liste os clusters do Kubernetes que estão em execução no namespace.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Obtenha o número de nós em execução no cluster de destino.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Por exemplo, o cluster a seguir tem 3 nós de plano de controle e 3 nós de trabalhador.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               3        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    
  5. Carregue o manifesto do cluster para edição usando o comando kubectl edit.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    O manifesto do cluster é aberto no editor de texto definido por suas variáveis de ambiente KUBE_EDITOR ou EDITOR.

  6. Localize o parâmetro spec.topology.workers.count e aumente o número de nós.
    ...
    workers:
        replicas: 3
    ...
    
    ...
    workers:
        replicas: 4
    ...
    
  7. Para aplicar as alterações, salve o arquivo no editor de texto. Para cancelar, feche o editor sem salvar.

    Quando você salva o arquivo, o kubectl aplica as alterações ao cluster. Em segundo plano, o Virtual Machine Service no Supervisor Cluster provisiona o novo nó de trabalhador.

  8. Verifique se o novo nó do trabalhador foi adicionado.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Após o dimensionamento horizontal, o cluster tem 4 nós de trabalho.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               4        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    

Dimensionar em nós de trabalho

Você pode dimensionar em um cluster do Tanzu Kubernetes diminuindo o número de nós de trabalho. Não há suporte para o dimensionamento no plano de controle.

  1. Autentique-se com o Supervisor Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Alterne o contexto para o vSphere Namespace no qual o cluster do Tanzu Kubernetes está em execução.
    kubectl config use-context tkgs-cluster-ns
  3. Liste os clusters do Kubernetes que estão em execução no namespace.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Obtenha o número de nós em execução no cluster de destino.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Por exemplo, o cluster a seguir tem 3 nós de plano de controle e 4 nós de trabalhador.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               4        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    
  5. Carregue o manifesto do cluster para edição usando o comando kubectl edit.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    O manifesto do cluster é aberto no editor de texto definido por suas variáveis de ambiente KUBE_EDITOR ou EDITOR.

  6. Localize o parâmetro spec.topology.workers.count e aumente o número de nós.
    ...
    workers:
        replicas: 4
    ...
    
    ...
    workers:
        replicas: 2
    ...
    
  7. Para aplicar as alterações, salve o arquivo no editor de texto. Para cancelar, feche o editor sem salvar.

    Quando você salva o arquivo, o kubectl aplica as alterações ao cluster. Em segundo plano, o Virtual Machine Service no Supervisor Cluster provisiona o novo nó de trabalhador.

  8. Verifique se os nós de trabalho foram removidos.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Após o dimensionamento, o cluster tem 2 nós de trabalho.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               2        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    

Dimensionar um cluster verticalmente

Você pode dimensionar verticalmente um cluster do Tanzu Kubernetes alterando a classe de máquina virtual usada para hospedar os nós do cluster. O dimensionamento vertical é compatível com o plano de controle e com os nós de trabalho.

O Tanzu Kubernetes Grid Service oferece suporte ao dimensionamento vertical de nós do cluster por meio do mecanismo de atualização contínua integrado ao serviço. Se você alterar a definição de VirtualMachineClass, o serviço implementará novos nós com essa nova classe e reduzirá os nós antigos. Consulte o Atualizar Tanzu Kubernetes clusters.

  1. Autentique-se com o Supervisor Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Alterne o contexto para o vSphere Namespace no qual o cluster do Tanzu Kubernetes está em execução.
    kubectl config use-context tkgs-cluster-ns
  3. Liste os clusters do Kubernetes que estão em execução no namespace.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Descreva o cluster Tanzu Kubernetes de destino e verifique a classe da VM.
    kubectl describe tanzukubernetescluster tkgs-cluster-2

    Por exemplo, o cluster a seguir está usando a classe de VM de melhor esforço.

    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-medium
          ...
        nodePool-a1:
          Class:          best-effort-medium
          ...
    
  5. Liste e descreva as classes de VM disponíveis.
    kubectl get virtualmachineclassbinding
    kubectl describe virtualmachineclassbinding
    Observação: A classe de VM que você deseja usar deve estar associada a vSphere Namespace. Consulte o Classes de máquina virtual para Tanzu Kubernetes clusters.
  6. Abra para editar o manifesto do cluster de destino.
    kubectl edit tanzukubernetescluster/tkgs-cluster-2

    O manifesto do cluster é aberto no editor de texto definido por suas variáveis de ambiente KUBE_EDITOR ou EDITOR.

  7. Edite o manifesto alterando a classe da VM.
    Por exemplo, edite o manifesto do cluster para usar a classe de VM guaranteed-large para o plano de controle e os nós de trabalho.
    spec:
      topology:
        controlPlane:
          class: guaranteed-large
          ...
        nodePool-a1:
          class: guaranteed-large
          ...
    
  8. Para aplicar as alterações, salve o arquivo no editor de texto. Para cancelar, feche o editor sem salvar.

    Quando você salva o arquivo, o kubectl aplica as alterações ao cluster. Em segundo plano, o Tanzu Kubernetes Grid Service provisiona os novos nós e exclui os antigos. Para obter uma descrição do processo de atualização contínua, consulte Sobre Tanzu Kubernetes atualizações de cluster.

  9. Verifique se o cluster está atualizado.
    kubectl get tanzukubernetescluster
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               3        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True