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
Nó | Dimensionar horizontalmente horizontalmente | Dimensionamento horizontal em | Escala vertical |
---|---|---|---|
Camada de controle | Sim | Não | Sim |
Trabalhador | Sim | Sim | Sim |
- 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.
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
kubectl edit tanzukubernetescluster/tkgs-cluster-1 Edit cancelled, no changes made.
Dimensionar horizontalmente o plano de controle
- Autentique-se com o Supervisor Cluster.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 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
- Liste os clusters do Kubernetes que estão em execução no namespace.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 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.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 1 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
- 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.
- Localize o parâmetro
spec.topology.controlPlane.count
e aumente o número de nós de 1 para 3.... controlPlane: count: 1 ...
... ControlPlane: count: 3 ...
- 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.
- Verifique se os novos nós foram adicionados.
kubectl get tanzukubernetescluster tkgs-cluster-1
O plano de controle dimensionado agora tem 3 nós.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
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.
- Autentique-se com o Supervisor Cluster.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 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
- Liste os clusters do Kubernetes que estão em execução no namespace.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 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.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
- 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.
- Localize o parâmetro
spec.topology.workers.count
e aumente o número de nós.... workers: count: 3 ...
... workers: count: 4 ...
- 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.
- 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.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
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.
- Autentique-se com o Supervisor Cluster.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 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
- Liste os clusters do Kubernetes que estão em execução no namespace.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 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.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
- 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.
- Localize o parâmetro
spec.topology.workers.count
e aumente o número de nós.... workers: count: 4 ...
... workers: count: 2 ...
- 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.
- 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.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 2 v1.18.5+vmware.1-tkg.1.886c781 1d running
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.
- Autentique-se com o Supervisor Cluster.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 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
- Liste os clusters do Kubernetes que estão em execução no namespace.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 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-small ... Workers: Class: best-effort-small ...
- 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. - 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.
- Edite o manifesto alterando a classe da VM.
Por exemplo, edite o manifesto do cluster para usar a classe de VM
guaranteed-xlarge
para o plano de controle e os nós de trabalho.spec: topology: controlPlane: class: guaranteed-xlarge ... workers: class: guaranteed-xlarge ...
- 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.
- Verifique se o cluster está sendo atualizado.
kubectl get tanzukubernetescluster NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.c40d30d 21h updating