Você pode atualizar um cluster do Tanzu Kubernetes alterando a classe da máquina virtual usada para hospedar os nós do cluster.
O
Tanzu Kubernetes Grid Service oferece suporte à atualização de um cluster alterando a definição de
VirtualMachineClass
. Se você fizer isso, o serviço implementará novos nós com essa nova classe e reduzirá os nós antigos. Consulte o
Sobre Tanzu Kubernetes atualizações de cluster.
Pré-requisitos
Essa tarefa usa o comando kubectl edit tanzukubernetescluster/CLUSTER-NAME
para atualizar o manifesto do cluster. O comando kubectl edit abre o manifesto do cluster no editor de texto definido pela variável de ambiente KUBE_EDITOR ou EDITOR. Quando você salva o arquivo, o cluster é atualizado com as alterações. Consulte o Especificar um editor de texto padrão para o Kubectl.
Procedimento
- Autentique-se com o Supervisor Cluster. Consulte o Conecte-se ao Supervisor Cluster como um usuário do vCenter Single Sign-On.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- Alterne o contexto para o vSphere Namespace onde o cluster Tanzu Kubernetes de destino está provisionado.
kubectl config use-context SUPERVISOR-NAMESPACE
- Descreva o cluster Tanzu Kubernetes de destino e verifique a classe da VM.
kubectl describe tanzukubernetescluster CLUSTER-NAME
Por exemplo, este cluster está usando a classe de VM de melhor esforço:
Spec:
...
Topology:
Control Plane:
Class: best-effort-medium
...
Workers:
Class: best-effort-medium
...
- Liste e descreva as classes de VM disponíveis no namespace.
kubectl get virtualmachineclassbindings
Observação: O comando
kubectl get virtualmachineclasses
lista todas as classes de VM presentes no
Supervisor Cluster. Como você deve associar classes de VM ao
vSphere Namespace, só pode usar as classes de VM que estão vinculadas ao namespace de destino.
- Execute o seguinte comando para editar o manifesto do cluster.
kubectl edit tanzukubernetescluster/CLUSTER-NAME
- Edite o manifesto alterando a cadeia de caracteres
version
e removendo ou anulando o fullVersion
para evitar uma possível incompatibilidade de versão durante a descoberta.
Por exemplo, altere o manifesto do cluster de usar a classe de VM
best-effort-medium
para o plano de controle e os nós de trabalho:
spec:
topology:
controlPlane:
class: best-effort-medium
...
workers:
class: best-effort-medium
...
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
...
workers:
class: guaranteed-large
...
- Salve as alterações feitas no arquivo de manifesto.
Quando você salva o arquivo, o kubectl aplica as alterações ao cluster. Em segundo plano, o
Tanzu Kubernetes Grid Service provisiona as novas VMs de nó e desacelera as antigas.
- Verifique se o kubectl informa que as edições do manifesto foram registradas com êxito.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
Observação: Se você receber um erro ou o kubectl não relatar que o manifesto do cluster foi editado com êxito, verifique se você configurou corretamente seu editor de texto padrão usando a variável de ambiente KUBE_EDITOR. Consulte o
Especificar um editor de texto padrão para o Kubectl.
- 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
- Verifique se o cluster está atualizado.
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.c40d30d 22h running