Fazendo Upgrade de Nós Gerenciados para o Kubernetes versão 1.35 (ou posterior)
Descubra como fazer upgrade de nós gerenciados que atualmente usam uma imagem OL7 do OKE, uma imagem de plataforma OL7 ou uma imagem personalizada baseada em uma imagem OL7, para executar o Kubernetes versão 1.35 (ou posterior) e OL8, usando o Kubernetes Engine (OKE).
Esta seção se aplica somente a nós gerenciados. Para obter informações sobre como fazer upgrade de nós autogerenciados, consulte Fazendo Upgrade de Nós Autogerenciados para uma Versão Mais Nova do Kubernetes Substituindo um Nó Autogerenciado Existente.
A partir do Kubernetes versão 1.35, o Kubernetes requer cgroups v2 para gerenciamento de recursos de contêiner.
Grupos de Controle (cgroups) é uma funcionalidade do kernel do Linux que fornece um mecanismo para gerenciar e controlar a alocação de recursos para processos ou grupos de processos. Os grupos de controle versão 2 (cgroups v2) fornecem uma única hierarquia de grupo de controle na qual todos os controladores de recursos estão montados. Nesta hierarquia, você pode coordenar o uso de recursos entre diferentes controladores de recursos.
O Oracle Linux 7 (OL7) suporta cgroups v1, mas não suporta cgroups v2. O Oracle Linux 8 (OL8) e versões posteriores dão suporte a cgroups v1 e cgroups v2, mas cgroups v2 nem sempre são ativados por padrão na OL8.
Em resumo, o Kubernetes versão 1.35, portanto, requer OL8 (ou mais recente) com cgroups v2 ativados.
Por padrão, os Cgroups v2 são ativados em imagens OL8 do OKE que têm um número de build igual ou superior a 1367. No entanto, em imagens OL8 do OKE que têm um número de build menor que 1367 (e em imagens da plataforma OL8), os cgroups v1 são ativados por padrão.
Para nós de trabalho em clusters que executam o Kubernetes versão 1.35 (e posterior), o Kubernetes Engine suporta as seguintes imagens:
- Imagens do OKE OL8 e imagens personalizadas baseadas em imagens do OKE OL8, que têm um número de build igual ou superior a 1367.
- Imagens do OKE OL8 e imagens personalizadas baseadas em imagens do OKE OL8, que têm um número de build inferior a 1367, mas somente se você ativar cgroups v2 (consulte Ativando Cgroups v2 em Nós de Trabalho OL8 Usando Imagens Personalizadas).
- Imagens personalizadas baseadas em imagens da plataforma OL8, mas somente se você ativar cgroups v2 (consulte Ativando Cgroups v2 em Nós de Trabalho OL8 Usando Imagens Personalizadas).
Observe que as seguintes imagens não são suportadas com o Kubernetes versão 1.35:
- Imagens do OKE OL7 não são suportadas.
- Não há suporte para imagens de plataforma (imagens de plataforma OL7 e imagens de plataforma OL8).
- Não há suporte para imagens personalizadas baseadas em imagens OL7 do OKE.
- Não há suporte para imagens personalizadas baseadas em imagens da plataforma OL7.
Ao fazer upgrade de nós gerenciados que atualmente usam uma imagem OL8 para o Kubernetes versão 1.35 (e posterior), observe o seguinte:
- Você pode fazer upgrade de nós gerenciados que atualmente usam uma imagem OL8 do OKE (ou uma imagem personalizada baseada em uma imagem OL8 do OKE) com um número de build inferior a 1367, executando um upgrade no local e especificando uma imagem OL8 do OKE com um número de build igual ou superior a 1367.
- Você pode fazer upgrade de nós gerenciados que atualmente usam uma imagem de plataforma OL8 executando um upgrade no local e especificando uma imagem OL8 do OKE com um número de build igual ou superior a 1367.
- Você pode executar upgrades no local de nós gerenciados que atualmente usam uma imagem OL8, independentemente de os kernels Linux das instâncias de computação que hospedam os nós já terem os cgroups v2 ativados.
- Para obter instruções sobre como executar upgrades no local, consulte Upgrading Managed Nodes to a Newer Kubernetes Version.
Para fazer upgrade de nós gerenciados que atualmente usam uma imagem do OKE OL7, uma imagem da plataforma OL7 ou uma imagem personalizada baseada em uma imagem do OL7, para executar o Kubernetes versão 1.35 (ou posterior), execute um upgrade fora do local para substituir o pool de nós existente por um novo pool de nós:
-
Identifique os pools de nós existentes que usam OL7, usando a Console ou a CLI da seguinte forma:
-
Usando a Console:
- Na página da lista Clusters, selecione o nome do cluster que contém os pools de nós que você deseja ver. Se precisar de ajuda para localizar a página de lista ou o cluster, consulte Listando Clusters.
- Selecione a guia Pools de nós.
- Use a coluna Nome da imagem para identificar pools de nós que usam imagens
Oracle-Linux-7.9.x.
-
Usando a CLI: Identifique pools de nós existentes que usam OL7 digitando um comando semelhante ao seguinte:
oci ce node-pool list --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --query 'data[*].{name:"name", image:"node-source"."image-id"}'
-
-
Crie um pool de nós de substituição que use uma imagem OL8, usando a Console ou a CLI da seguinte forma:
-
Usando a Console:
- Na guia Pools de nós, selecione Adicionar pool de nós e informe detalhes para o novo pool de nós.
- Selecione uma Imagem do Nó de Trabalho do OKE com base em uma imagem
Oracle Linux 8.x. - Configure o novo pool de nós com a mesma forma, tamanho e posicionamento do pool de nós OL7.
- Selecione Criar.
-
Usando a CLI: Crie um pool de nós de substituição que use uma imagem OL8 informando um comando semelhante ao seguinte:
oci ce node-pool create --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --name "nodepool-ol8-workers" --node-shape "VM.Standard.E4.Flex" --kubernetes-version "v1.35.0" --node-image-id <ol8-image-ocid> --size 3 --placement-configs '[{"availabilityDomain":"AD-1","subnetId":"<subnet-ocid>"}]'
-
-
Conecte os nós OL7:
-
Obtenha os nomes dos nós OL7 digitando:
kubectl get nodes -l node.kubernetes.io/os=ol7 -
Cordon cada nó inserindo:
kubectl cordon <node-name>
-
-
Escorra os nós OL7 para migrar cargas de trabalho normalmente:
- Escorra cada nó OL7 digitando:
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data --force - Verifique se as cargas de trabalho foram reprogramadas nos novos nós digitando:
kubectl get pods -A -o wide | grep <node-name>
- Escorra cada nó OL7 digitando:
-
Exclua o pool de nós OL7 usando a Console ou a CLI, da seguinte forma:
-
Usando a Console:
- Na guia Pools de nós, selecione Excluir pool de nós no menu Ações (três pontos) ao lado do pool de nós OL7.
- Clique em Excluir.
- Confirme se deseja excluir o pool de nós e selecione Excluir.
-
Usando a CLI: Exclua o pool de nós OL7:
oci ce node-pool delete --node-pool-id <ol7-nodepool-ocid>
-
-
Faça upgrade do cluster (por exemplo, para o Kubernetes versão 1.35):
oci ce cluster update --cluster-id <cluster-ocid> --kubernetes-version "v1.35.0"
Para obter mais informações, consulte Executando um Upgrade do Kubernetes do Nó Gerenciado Fora do Lugar Substituindo um Pool do Nó Existente por um Novo Pool do Nó.