Você pode atualizar um cluster de carga de trabalho alterando a classe de máquina virtual usada para hospedar os nós de cluster.
Você pode iniciar uma atualização sem interrupção de um cluster TKG 2 alterando a definição VirtualMachineClass
. Novos nós com base na classe alterada serão implementados e os nós antigos serão descontinuados.
Pré-requisitos
Esta tarefa requer o uso do comando de edição kubectl. Esse comando 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. Para configurar um editor para o kubectl, consulte Configurar um editor de texto para Kubectl.
Procedimento
- Autentique com o Supervisor.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- Alterne o contexto para o vSphere Namespace em que o cluster TKG de destino é provisionado.
kubectl config use-context SUPERVISOR-NAMESPACE
- Descreva o cluster TKG de destino e verifique a classe da VM.
cluster v1alpha3:
kubectl describe tanzukubernetescluster CLUSTER-NAME
cluster v1beta1:
kubectl describe cluster CLUSTER-NAME
- Liste e descreva as classes de VM disponíveis no namespace.
kubectl get virtualmachineclassbindings
Observação: O
VirtualMachineClass
deve estar associado ao
vSphere Namespace em que o cluster TKG é provisionado.
- Execute o seguinte comando para editar o manifesto do cluster.
cluster v1alpha3:
kubectl edit tanzukubernetescluster/CLUSTER-NAME
cluster v1beta1:
kubectl edit cluster/CLUSTER-NAME
- Edite o manifesto alterando a cadeia de caracteres de classe da VM.
Por exemplo, se você estiver usando um cluster v1alpah3, altere o manifesto do cluster usando a classe de VM
guaranteed-medium
para nós de trabalhador:
topology:
controlPlane:
replicas: 3
storageClass: vwk-storage-policy
tkr:
reference:
name: v1.22.9---vmware.1-tkg.1.cc71bc8
vmClass: guaranteed-medium
nodePools:
- name: worker-nodepool-a1
replicas: 3
storageClass: vwk-storage-policy
tkr:
reference:
name: v1.22.9---vmware.1-tkg.1.cc71bc8
vmClass: guaranteed-medium
Para usar a classe de VM
guaranteed-large
para nós de trabalhador:
topology:
controlPlane:
replicas: 3
storageClass: vwk-storage-policy
tkr:
reference:
name: v1.22.9---vmware.1-tkg.1.cc71bc8
vmClass: guaranteed-medium
nodePools:
- name: worker-nodepool-a1
replicas: 3
storageClass: vwk-storage-policy
tkr:
reference:
name: v1.22.9---vmware.1-tkg.1.cc71bc8
vmClass: guaranteed-large
Da mesma forma, se você tiver provisionado um cluster v1beta1, atualize o valor de
variables.vmclass
para a classe de VM de destino.
- 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 controlador TKG provisiona as novas VMs de nó e desativa as antigas.
- Verifique se o kubectl relata 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 se o kubectl não relatar que o manifesto do cluster foi editado com êxito, verifique se você configurou corretamente o editor de texto padrão usando a variável de ambiente KUBE_EDITOR. Consulte
Configurar um editor de texto para Kubectl.
- Verifique se o cluster está atualizado.
cluster v1alpha3:
kubectl get tanzukubernetescluster
cluster v1beta1:
kubectl get cluster