Upgrade de Nós Autogerenciados para uma Versão Mais Recente do Kubernetes Substituindo um Nó Autogerenciado Existente

Descubra como fazer upgrade da versão do Kubernetes em execução em um nó autogerenciado em um cluster aprimorado criado com o Kubernetes Engine.

Observação

Esta seção se aplica somente a nós autogerenciados. Para obter informações sobre o upgrade de nós gerenciados, consulte Upgrade de Nós Gerenciados para uma Versão Mais Recente do Kubernetes.

Você pode 'fazer upgrade' da versão do Kubernetes em execução em um nó autogerenciado substituindo o nó autogerenciado original por um novo nó autogerenciado que executa a versão mais recente do Kubernetes. Depois de drenar o nó autogerenciado original para evitar que novos pods sejam iniciados e excluir pods existentes, você poderá encerrar a instância de computação que hospeda o nó autogerenciado original.

Observe que, ao criar o novo nó autogerenciado, é sua responsabilidade especificar uma imagem que contenha uma versão do Kubernetes que esteja em conformidade com a política de suporte de desvio de versão do Kubernetes descrita na documentação do Kubernetes. O Kubernetes Engine não verifica se a versão do Kubernetes na imagem especificada para o novo nó autogerenciado é compatível com a versão do Kubernetes em execução nos nós de plano de controle do cluster. Consulte Requisitos de Cluster.

Para 'fazer upgrade' da versão do Kubernetes em execução em um nó autogerenciado, substituindo o nó autogerenciado original por um novo nó autogerenciado:

  1. Crie uma nova instância de computação para hospedar o novo nó autogerenciado:
    1. Abra o menu de navegação e clique em Compute. Em Compute, clique em Instâncias.
    2. Siga as instruções na documentação do serviço Compute para criar uma nova instância de computação. Observe que devem existir políticas apropriadas para permitir que a nova instância de computação entre no cluster aprimorado. Consulte Criando um Grupo Dinâmico e uma Política para Nós Self-Managed.
    3. Na seção Imagem e Forma, clique em Alterar imagem.
    4. Clique em Minhas imagens, selecione a opção OCID da Imagem e digite o OCID da imagem do OKE Oracle Linux 7 (OL7) ou do Oracle Linux 8 (OL8) que está executando a versão mais recente do Kubernetes. Consulte Requisitos de Imagem.
    5. Clique em Mostrar opções avançadas e, na guia Gerenciamento, selecione a opção Colar script cloud-init.
    6. Copie e cole o script cloud-init que contém o ponto final privado da API do Kubernetes e o certificado da CA codificado em base64 no campo script cloud-init. Consulte Criando Scripts Cloud-init para Nós Self-managed.
    7. Clique em Criar para criar a instância de computação para hospedar o nó autogerenciado.

    Quando a instância de computação é criada, ela é adicionada como um nó autogerenciado ao cluster com o ponto final da API do Kubernetes especificado.

  2. Verifique se o nó autogerenciado foi adicionado ao cluster do Kubernetes e confirme o status de prontidão do nó digitando:
    kubectl get nodes

    Por exemplo:

    kubectl get nodes
    
    NAME           STATUS   ROLES    AGE   VERSION
    10.0.103.170   Ready    <none>   40m   v1.25.4
  3. Confirme se os labels foram adicionados ao nó e definidos conforme esperado digitando:
    kubectl get node <node-name> -o json | jq '.metadata.labels'

    Para

    kubectl get node 10.0.103.170 -o json | jq '.metadata.labels'
    
    {
    ...
    "displayName": "oke-self-managed-node",
    "oci.oraclecloud.com/node.info.byon": "true",
    ...
    }
  4. Se houver labels anexados ao nó autogerenciado original e esses labels forem usados por seletores (por exemplo, para determinar os nós nos quais os pods serão executados), use o comando kubectl label nodes para anexar os mesmos labels ao novo nó autogerenciado. Consulte Designando Pods a Nós na documentação do Kubernetes.
  5. Evite que novos pods sejam iniciados e exclua pods existentes no nó autogerenciado original, informando:

    kubectl drain <node_name>

    Para obter mais informações:

    Recomendado: Utilize orçamentos de interrupção, conforme apropriado, para o seu aplicativo, para garantir que haja um número suficiente de pods de réplica em execução durante a operação de drenagem.

  6. Quando você tiver drenado o nó e os pods autogerenciados originais estiverem em execução no novo nó autogerenciado, encerre a instância de computação que hospeda o nó autogerenciado original. Consulte Encerrando uma Instância.