O vSphere with Tanzu oferece suporte a atualizações contínuas para clusters Supervisor Clusters e Tanzu Kubernetes e para a infraestrutura que oferece suporte a esses clusters.

Como vSphere with Tanzu clusters são atualizados

vSphere with Tanzu usa um modelo de atualização contínua para clusters Supervisor Clusters e Tanzu Kubernetes. O modelo de atualização contínua garante que haja um tempo mínimo de inatividade para as cargas de trabalho do cluster durante o processo de atualização. As atualizações contínuas incluem o upgrade das versões de software do Kubernetes e da infraestrutura e dos serviços que oferecem suporte aos clusters do Kubernetes, como configurações e recursos da máquina virtual, serviços e namespaces do vSphere e recursos personalizados.

Para que a atualização seja bem-sucedida, sua configuração deve atender a vários requisitos de compatibilidade, portanto, o sistema impõe novas condições de verificação para garantir que os clusters estejam prontos para atualizações e ofereça suporte à reversão se a atualização do cluster não for bem-sucedida.
Observação: Uma atualização do vSphere with Tanzu envolve mais do que apenas um upgrade da versão do software Kubernetes. Usamos o termo "atualização" para descrever esse processo em vez do termo "atualização", que é uma forma limitada de atualização que incrementa a versão do software.

Dependência entre Supervisor Cluster atualizações e Tanzu Kubernetes atualizações de cluster

Você atualiza os clusters Supervisor Cluster e Tanzu Kubernetes separadamente. Observe, no entanto, que há dependências entre os dois.

Atualizar um Supervisor Cluster provavelmente acionará uma atualização contínua dos clusters Tanzu Kubernetes implantados lá. Consulte o Atualize o Supervisor Cluster realizando uma atualização de namespaces do vSphere.

Pode ser necessário atualizar um ou mais clusters do Tanzu Kubernetes antes de atualizar um Supervisor Cluster se o cluster do Tanzu Kubernetes não for compatível com a versão do Supervisor Cluster de destino. Consulte o Lista de Tanzu Kubernetes releases.

Sobre Supervisor Cluster atualizações

Quando você inicia uma atualização para um Supervisor Cluster, o sistema cria um novo nó de plano de controle e o associa ao plano de controle existente. O inventário do vSphere mostra quatro nós de plano de controle durante essa fase da atualização à medida que o sistema adiciona um novo nó atualizado e, em seguida, remove o nó desatualizado mais antigo. Os objetos são migrados de um dos nós do plano de controle antigo para o novo, e o nó do plano de controle antigo é removido. Esse processo se repete um por um até que todos os nós do plano de controle sejam atualizados. Depois que o plano de controle é atualizado, os nós de trabalho são atualizados de forma semelhante à atualização contínua. Os nós de trabalho são os hosts ESXi, e cada processo spherelet em cada host ESXi é atualizado um por um.

Você pode escolher entre as seguintes atualizações:
  • Atualize os Namespaces de Supervisor.
  • Atualize tudo, incluindo versões de VMware e versões do Kubernetes.
Use o fluxo de trabalho de atualização do vSphere Namespaces para atualizar a versão do Kubernetes que o Cluster de Supervisor está executando, como do Kubernetes 1.16.7 para o Kubernetes 1.17.4, e a infraestrutura que oferece suporte aos clusters do Kubernetes. Esse tipo de atualização é mais frequente e é usado para manter o ritmo com a cadência da versão do Kubernetes. Veja a seguir a sequência de atualização do vSphere Namespaces.
  1. Atualize o vCenter Server.
  2. Realize uma atualização de namespaces do vSphere (incluindo a atualização do Kubernetes).

Para realizar uma atualização do vSphere Namespaces, consulte Atualize o Supervisor Cluster realizando uma atualização de namespaces do vSphere.

Use o fluxo de trabalho atualizar tudo para atualizar todos os componentes do vSphere with Tanzu. Esse tipo de atualização é necessário quando você está atualizando versões principais, por exemplo, do NSX-T 3.0 para o 3.X e do vSphere 7.0 para o 7.X. Esse fluxo de trabalho de atualização não é frequente, dependendo de quando há novos VMware lançamentos de produtos. Esta é a sequência de atualização de tudo:
  1. Atualize o NSX-T Data Center.
  2. Atualize o vCenter Server.
  3. Atualizar o vSphere Distributed Switch.
  4. Atualize os hosts do ESXi.
  5. Atualizar Namespaces do vSphere (incluindo a atualização do Kubernetes).
  6. Atualize o Tanzu Kubernetes.
O diagrama ilustra o fluxo de trabalho geral para atualizações de vSphere with Tanzu.

Sobre Tanzu Kubernetes atualizações de cluster

Quando você atualiza um Supervisor Cluster, os componentes de infraestrutura que oferecem suporte aos clusters Tanzu Kubernetes implantados nesse Supervisor Cluster, como o Tanzu Kubernetes Grid Service, também são atualizados. Cada atualização de infraestrutura pode incluir atualizações para serviços que suportam o Tanzu Kubernetes Grid Service (CNI, CSI, CPI) e definições de configuração atualizadas para o plano de controle e os nós de trabalho que podem ser aplicados aos clusters Tanzu Kubernetes existentes. Para garantir que sua configuração atenda aos requisitos de compatibilidade, o vSphere with Tanzu realiza verificações prévias durante a atualização contínua e impõe a conformidade.

Para realizar uma atualização contínua de um cluster do Tanzu Kubernetes, normalmente você atualiza o manifesto do cluster. Consulte Atualizar Tanzu Kubernetes clusters. Observe, no entanto, que quando uma atualização do vSphere Namespaces é realizada, o sistema propaga imediatamente as configurações atualizadas para todos os clusters do Tanzu Kubernetes. Essas atualizações podem acionar automaticamente uma atualização contínua do plano de controle do Tanzu Kubernetes e dos nós de trabalho.

O processo de atualização contínua para substituir os nós do cluster é semelhante à atualização contínua de pods em uma implantação do Kubernetes. Existem dois controladores distintos responsáveis por realizar uma atualização contínua de Tanzu Kubernetes clusters: o controlador de complementos e o controlador TanzuKubernetesCluster. Dentro desses dois controladores, há três estágios principais para uma atualização contínua: atualização de complementos, atualização do plano de controle e atualização dos nós de trabalho. Esses estágios ocorrem em ordem, com verificações prévias que impedem o início de uma etapa até que a etapa anterior tenha progredido suficientemente. Essas etapas podem ser ignoradas se forem consideradas desnecessárias. Por exemplo, uma atualização pode afetar apenas os nós de trabalho e, portanto, não exigir atualizações de plano de controle ou complemento.

Durante o processo de atualização, o sistema adiciona um novo nó de cluster e aguarda que o nó fique online com a versão do Kubernetes de destino. Em seguida, o sistema marca o nó antigo para exclusão, move-se para o próximo nó e repete o processo. O nó antigo não é excluído até que todos os pods sejam removidos. Por exemplo, se um pod for definido com PodDisruptionBudgets que impeça que um nó seja totalmente drenado, o nó será isolado, mas não será removido até que esses pods possam ser despejados. O sistema atualiza todos os nós do plano de controle primeiro e, em seguida, os nós de trabalho. Durante uma atualização, o status do cluster Tanzu Kubernetes muda para "atualizando". Após a conclusão do processo de atualização contínua, o status do cluster do Tanzu Kubernetes muda para "em execução".

Os pods em execução em um cluster do Tanzu Kubernetes que não são regidos por um controlador de replicação serão excluídos durante uma atualização de versão do Kubernetes como parte da drenagem do nó do trabalhador durante a atualização do cluster do Tanzu Kubernetes. Isso será verdadeiro se a atualização do cluster for disparada manual ou automaticamente por uma atualização do vSphere Namespaces. Os pods não governados por um controlador de replicação incluem pods que não são criados como parte de uma especificação de implantação ou ReplicaSet. Consulte o tópico Ciclo de vida do pod: Vida útil do pod na documentação do Kubernetes para obter mais informações.