Fazendo Rollback de Nós Gerenciados para uma Versão Anterior do Kubernetes

Descubra como fazer rollback da versão do Kubernetes em execução nos nós gerenciados em um pool de nós existente usando o Kubernetes Engine (OKE).

Observação

Esta seção se aplica somente a nós gerenciados. Você pode fazer rollback de nós gerenciados em clusters aprimorados e clusters básicos.

Não é possível usar este procedimento para fazer rollback da versão do Kubernetes em execução nos nós de plano de controle ou nos nós virtuais.

Você pode fazer rollback da versão do Kubernetes em execução nos nós gerenciados em um pool de nós especificando uma versão do Kubernetes disponível anteriormente para o pool de nós existente e, em seguida, substituindo os nós gerenciados existentes.

A versão do Kubernetes especificada deve estar disponível para o pool de nós gerenciados e compatível com a versão que está em execução nos nós de plano de controle. As versões do Kubernetes disponíveis para um pool de nós gerenciados podem variar por tenancy. Para ver as versões disponíveis, exiba a lista Versão ao editar o pool de nós na Console, use o comando oci ce node-pool-options get ou use a operação GetNodePoolOptions.

Importante

A alteração da versão do Kubernetes configurada para um pool de nós gerenciados não altera a versão do Kubernetes em execução nos nós gerenciados existentes. Para concluir o rollback, substitua os nós gerenciados existentes.

Se você usar o ciclo de nós, reinicie todo o pool de nós gerenciados. O ciclo de um nó gerenciado individual não altera a versão do Kubernetes em execução no nó.

Para obter mais informações sobre seleção e compatibilidade de versões do Kubernetes, consulte Versões do Kubernetes e Kubernetes Engine (OKE).

Usando a Console

Para reverter nós gerenciados em um cluster aprimorado

Em um cluster aprimorado, você pode fazer rollback dos nós gerenciados especificando uma versão anterior disponível do Kubernetes para o pool de nós existente e, em seguida, reiniciar todos os nós do pool de nós. Você pode reiniciar os nós substituindo seus volumes de inicialização ou encerrando e substituindo os nós.

  1. Na página de lista Clusters, selecione o nome do cluster no qual você deseja fazer rollback da versão do Kubernetes em execução nos nós gerenciados. Se precisar de ajuda para localizar a página de lista ou o cluster, consulte Listando Clusters.
  2. Selecione a guia Pools de nós e selecione o nome do pool de nós no qual você deseja fazer rollback da versão do Kubernetes em execução nos nós gerenciados.

  3. Na página de detalhes do pool de nós, selecione Editar no menu Ações.

  4. No campo Versão da caixa de diálogo Editar pool de nós, selecione a versão anterior necessária do Kubernetes para nós gerenciados.

    A versão do Kubernetes especificada deve ser compatível com a versão que está sendo executada nos nós de plano de controle.

    Observe que a lista de versões do Kubernetes inclui versões de visualização fornecidas apenas para fins de teste e validação de acesso antecipado. Estas versões de pré-visualização têm ".0" como o número de versão do patch (por exemplo, 1.34.0). As versões de visualização não se destinam a cargas de trabalho de produção e podem conter problemas sem soluções alternativas conhecidas. Não recomendamos o uso de versões de visualização para cargas de trabalho de produção.

  5. Selecione Atualizar para salvar a alteração.

    Agora você reinicia todos os nós no pool de nós para aplicar a versão do Kubernetes especificada.

  6. No menu Ações, selecione Nós do ciclo.

    Recomendado: Aproveite os orçamentos para interrupção de pods conforme apropriado para seu aplicativo para garantir que haja um número suficiente para réplicas de pods em execução durante toda a operação. Para obter mais informações, consulte Especificando um Orçamento de Interrupção para seu Aplicativo na documentação do Kubernetes.

  7. Na caixa de diálogo Nós de ciclo, selecione uma das seguintes opções na lista Opções de ciclo:

    • Substituir volume de inicialização: Especifique o número máximo ou a porcentagem de nós que podem estar indisponíveis durante a operação e selecione Nós do ciclo.

    • Substituir nós: Especifique o número máximo ou a porcentagem de nós adicionais e nós indisponíveis a serem permitidos durante a operação e selecione Nós do ciclo.

    Observação

    Não reinicie um nó gerenciado individual para aplicar o rollback. O ciclo de um nó gerenciado individual não altera a versão do Kubernetes em execução no nó.
  8. Monitore o andamento da operação exibindo o status da solicitação de serviço associada na guia Solicitações de serviço (consulte Obtendo Detalhes de uma Solicitação de Serviço).

Para fazer rollback de nós gerenciados em um cluster básico

O ciclo do nó não está disponível em clusters básicos. Para fazer rollback dos nós gerenciados em um cluster básico, especifique a versão anterior do Kubernetes para o pool de nós existente e, em seguida, exclua e substitua manualmente cada nó gerenciado existente.

  1. Na página de lista Clusters, selecione o nome do cluster no qual você deseja fazer rollback da versão do Kubernetes em execução nos nós gerenciados. Se precisar de ajuda para localizar a página de lista ou o cluster, consulte Listando Clusters.
  2. Selecione a guia Pools de nós e selecione o nome do pool de nós no qual você deseja fazer rollback da versão do Kubernetes em execução nos nós gerenciados.

  3. Na página de detalhes do pool de nós, selecione Editar no menu Ações.

  4. No campo Versão da caixa de diálogo Editar pool de nós, selecione a versão anterior necessária do Kubernetes para nós gerenciados.

    A versão do Kubernetes especificada deve ser compatível com a versão que está sendo executada nos nós de plano de controle.

    Observe que a lista de versões do Kubernetes inclui versões de visualização fornecidas apenas para fins de teste e validação de acesso antecipado. Estas versões de pré-visualização têm ".0" como o número de versão do patch (por exemplo, 1.34.0). As versões de visualização não se destinam a cargas de trabalho de produção e podem conter problemas sem soluções alternativas conhecidas. Não recomendamos o uso de versões de visualização para cargas de trabalho de produção.

  5. Selecione Atualizar para salvar a alteração.

    Agora você precisa excluir nós gerenciados existentes para que novos nós gerenciados sejam iniciados, executando a versão do Kubernetes especificada.

  6. Para o primeiro nó gerenciado no pool:

    1. Na página de detalhes do pool de nós, selecione a guia Nós e, em seguida, selecione Excluir nó no menu Ações ao lado do nó que deseja excluir.
    2. Especifique quando e como conectar e drenar o nó gerenciado antes de encerrá-lo. Não selecione Diminuir tamanho do pool de nós para que um novo nó gerenciado seja iniciado em vez do pool de nós que está sendo reduzido.
    3. Selecione Excluir para excluir o nó gerenciado.

    O nó gerenciado é excluído e um novo nó gerenciado é iniciado, executando a versão do Kubernetes especificada.

  7. Repita a etapa anterior para cada nó gerenciado restante no pool de nó, até todos os nós gerenciados no pool de nó estarem executando a versão do Kubernetes especificada.

Usando a CLI

Para obter informações sobre como usar a CLI, consulte Interface de Linha de Comando (CLI). Para obter uma lista completa de flags e opções disponíveis para comandos da CLI, consulte a Referência da Linha de Comando.

Para obter as versões do Kubernetes disponíveis para um pool de nós gerenciados

Use o comando oci ce node-pool-options get --node-pool-option-id all para obter as versões do Kubernetes disponíveis para o pool de nós gerenciados.

Para fazer rollback de nós gerenciados em um cluster aprimorado, substituindo volumes de inicialização

Use o comando oci ce node-pool update para especificar uma versão anterior do Kubernetes para o pool de nós e para reiniciar todos os nós para substituir seus volumes de inicialização.

oci ce node-pool update --node-pool-id <node-pool-ocid> --node-pool-cycling-details "{\"isNodeCyclingEnabled\":true,\"cycleModes\":[\"BOOT_VOLUME_REPLACE\"],\"maximumUnavailable\":<value>}" --kubernetes-version <k8s-version>

Monitore o andamento da operação exibindo o status da solicitação de serviço associada:

oci ce work-request list --compartment-id <compartment-ocid> --resource-id <node-pool-ocid>
oci ce work-request get --work-request-id <work-request-ocid>

Para fazer rollback de nós gerenciados em um cluster aprimorado, encerrando e substituindo nós

Use o comando oci ce node-pool update para especificar uma versão anterior do Kubernetes para o pool de nós e para reiniciar todos os nós para encerrá-los e substituí-los. Especifique o OCID de uma imagem que corresponde à versão do Kubernetes.

oci ce node-pool update --node-pool-id <node-pool-ocid> --node-pool-cycling-details "{\"isNodeCyclingEnabled\":true,\"cycleModes\":[\"INSTANCE_REPLACE\"],\"maximumUnavailable\":<value>,\"maximumSurge\":<value>}" --kubernetes-version <k8s-version> --node-source-details "{\"imageId\":\"<image-ocid>\",\"sourceType\":\"IMAGE\"}"

Monitore o andamento da operação exibindo o status da solicitação de serviço associada:

oci ce work-request list --compartment-id <compartment-ocid> --resource-id <node-pool-ocid>
oci ce work-request get --work-request-id <work-request-ocid>

Para fazer rollback de nós gerenciados em um cluster básico excluindo e substituindo nós manualmente

Primeiro, use o comando oci ce node-pool update para especificar a versão anterior do Kubernetes para o pool de nós e o OCID da imagem correspondente:

oci ce node-pool update --node-pool-id <node-pool-ocid> --kubernetes-version <k8s-version> --node-image-id <image-ocid>

Em seguida, exclua cada nó gerenciado no pool de nós, especificando que você deseja iniciar um novo nó gerenciado para substituir o nó gerenciado que você excluiu:

oci ce node-pool delete-node --node-pool-id <node-pool-ocid> --node-id <node-ocid> --is-decrement-size false

Usando a API

Para obter informações sobre como usar a API e assinar solicitações, consulte a documentação da API REST e Credenciais de Segurança. Para obter informações sobre SDKs, consulte SDKs e a CLI.

Use a operação GetNodePoolOptions para obter as versões do Kubernetes disponíveis para um pool de nós gerenciados.

Use a operação UpdateNodePool para especificar uma versão anterior do Kubernetes para o pool de nós existente. Para um cluster aprimorado, você também pode especificar detalhes de ciclos de nós na mesma operação para substituir volumes de inicialização ou para encerrar e substituir nós.