Partilhar via


Atualizar automaticamente um cluster do Azure Kubernetes Service (AKS)

Parte do ciclo de vida do cluster AKS envolve a realização de atualizações periódicas para a versão mais recente do Kubernetes. É importante que aplique as últimas atualizações de segurança ou atualize para obter as funcionalidades mais recentes. Antes de aprenderes sobre upgrades automáticos, certifica-te de que compreendes os fundamentos das atualizações do AKS cluster.

Nota

Qualquer operação de atualização, seja ela executada manualmente ou automaticamente, atualiza a versão da imagem do nó se ela ainda não estiver na versão mais recente. A versão mais recente depende de uma versão completa do AKS e pode ser determinada visitando o rastreador de lançamento do AKS.

A atualização automática primeiro atualiza o plano de controlo e depois atualiza os pools de agentes um de cada vez.

Porquê usar a atualização automática do cluster

A atualização automática do cluster fornece um mecanismo configurar uma vez e esquecer que gera benefícios tangíveis em termos de tempo e custos operacionais. Você não precisa parar suas cargas de trabalho, reimplantar suas cargas de trabalho ou criar um novo cluster AKS. Ao ativar a atualização automática, pode garantir que os seus clusters estão atualizados e não perde as funcionalidades ou atualizações mais recentes do AKS e do Kubernetes a montante.

O AKS segue uma janela de controle de versão rigorosa de suporte. Com canais de atualização automática devidamente selecionados, pode evitar que clusters caiam numa versão não suportada. Para obter mais informações sobre a janela de suporte do AKS, consulte Versões secundárias do Alias.

Atualizações automáticas iniciadas pelo cliente versus iniciadas pelo AKS

Pode definir detalhes específicos da atualização automática do cluster usando as seguintes instruções. As atualizações ocorrem com base na cadência especificada e são recomendadas para permanecer nas versões suportadas do Kubernetes.

O AKS também inicia atualizações automáticas para clusters não suportados. Quando um cluster em uma versão n-3 (onde n é a versão secundária mais recente suportada do AKS GA) está prestes a cair para n-4, o AKS atualiza automaticamente o cluster para n-2 para permanecer em uma política de suporte do AKS. A atualização automática de um cluster suportado pela plataforma para uma versão suportada é ativada por padrão. Pools de nós parados são atualizados durante uma operação de atualização automática. A atualização se aplica aos nós quando o pool de nós é iniciado. Para minimizar interrupções, configure janelas de manutenção.

Limitações do autoupgrade do cluster

Se estiveres a usar o autoupgrade do cluster, já não podes atualizar primeiro o plano de controlo e depois os conjuntos de nós individualmente. O autoupgrade do cluster atualiza sempre o control plane e os pools de nós em conjunto. Não é possível atualizar apenas o plano de controle. Executar o az aks upgrade --control-plane-only comando gera o seguinte erro:

NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane.

Se usar o node-image canal de atualização automática do cluster (legado e não a usar) ou o NodeImage canal de atualização automática da imagem do nó, as atualizações não assistidas do Linux ficam desativadas por defeito.

Canais de atualização automática do cluster

As atualizações concluídas automaticamente são funcionalmente iguais às atualizações manuais. O canal de autoatualização selecionado determina o momento das atualizações. Ao fazer alterações ao autoupgrade, espere 24 horas para que as alterações entrem em vigor. A atualização automática de um cluster segue o mesmo processo que a atualização manual de um cluster. Para obter mais informações, veja Atualizar um cluster do AKS.

Os seguintes canais de atualização estão disponíveis:

Canal Ação Exemplo
none desativa as atualizações automáticas e mantém o cluster na versão atual do Kubernetes. Configuração padrão se mantida inalterada.
patch atualiza automaticamente o cluster para a versão de patch suportada mais recente quando ele estiver disponível, mantendo a versão secundária a mesma. Por exemplo, se um cluster executar a versão 1.17.7 e as versões 1.17.9, 1.18.4, 1.18.6 e 1.19.1 estiverem disponíveis, o cluster será atualizado para 1.17.9.
stable atualiza automaticamente o cluster para a versão de patch suportada mais recente na versão secundária N-1, onde N é a versão secundária suportada mais recente. Por exemplo, se um cluster executar a versão 1.17.7 e as versões 1.17.9, 1.18.4, 1.18.6 e 1.19.1 estiverem disponíveis, o cluster será atualizado para 1.18.6.
rapid atualiza automaticamente o cluster para a versão de patch suportada mais recente na versão secundária suportada mais recente. Nos casos em que a versão do Kubernetes do cluster é uma versão secundária N-2 , onde N é a versão secundária suportada mais recente, o cluster primeiro atualiza para a versão de patch suportada mais recente na versão secundária N-1 . Por exemplo, se um cluster executar a versão 1.17.7 e as versões 1.17.9, 1.18.4, 1.18.6 e 1.19.1 estiverem disponíveis, o cluster primeiro atualizará para 1.18.6 e, em seguida, atualizará para 1.19.1.
node-image(legado) atualiza automaticamente a imagem do nó para a versão mais recente disponível. Microsoft disponibiliza patches e novas imagens para nós de imagem com frequência, a cada semana, mas os nós que estão a ser executados não recebem as novas imagens a menos que seja feita uma atualização da imagem dos nós. Ativar o canal de imagem de nó atualiza automaticamente as imagens do nó sempre que uma nova versão está disponível. Se você usar esse canal, o Linux [atualizações autônomas] será desativado por padrão. As atualizações de imagem de nó funcionam em versões de patch que foram preteridas, desde que a versão secundária do Kubernetes ainda seja suportada. Este canal não é mais recomendado e está planejado para descontinuação no futuro. Para uma opção que possa atualizar automaticamente as imagens dos nós, veja o NodeImage canal na atualização automática da imagem do nó.

Nota

Tenha em mente as seguintes informações ao usar a atualização automática do cluster:

  • O autoupgrade do cluster só atualiza para as versões GA do Kubernetes e não atualiza para versões de pré-visualização.

  • Com o AKS, você pode criar um cluster sem especificar a versão exata do patch. Quando você cria um cluster sem designar um patch, o cluster executa o patch GA mais recente da versão secundária. Para saber mais, consulte a janela de suporte do AKS.

  • O autoupgrade exige que a versão Kubernetes do cluster esteja dentro da janela de suporte ao AKS, mesmo quando utiliza o canal node-image.

  • Se estiveres a usar a API de pré-visualização ou uma versão posterior e selecionares o canal de autoatualização do cluster , o canal de autoatualização de imagem do nó é automaticamente definido para .

  • Cada cluster só pode ser associado a um único canal de autoatualização. A razão é que o canal especificado determina a versão do Kubernetes que corre no cluster.

  • Se o teu cluster não tiver canal de atualização automática e o ativares para Suporte Long-Term (LTS), o cluster passa por defeito a um patch canal de atualização automática.

Use a atualização automática do cluster com um novo cluster AKS

Defina o canal de atualização automática ao criar um novo cluster usando o az aks create comando e o auto-upgrade-channel parâmetro.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER_NAME="myAKSCluster"
az aks create --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --auto-upgrade-channel stable --generate-ssh-keys

Use a atualização automática do cluster com um cluster AKS existente

Defina o canal de atualização automática num cluster existente usando o az aks update comando com o auto-upgrade-channel parâmetro.

az aks update --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --auto-upgrade-channel stable

Resultados:

{
  "id": "/subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e/resourceGroups/myResourceGroupabc123/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
  "properties": {
    "autoUpgradeChannel": "stable",
    "provisioningState": "Succeeded"
  }
}

Usar a atualização automática com Manutenção Planeada

Se usar Manutenção Planeada e atualização automática do cluster, a sua atualização começa durante a janela de manutenção especificada.

Nota

Para garantir a funcionalidade adequada, use uma janela de manutenção de quatro horas ou mais.

Para obter mais informações sobre como definir uma janela de manutenção com a Manutenção Planejada, consulte Usar a Manutenção Planejada para agendar janelas de manutenção para seu cluster do Serviço Kubernetes do Azure (AKS).

Boas práticas para a atualização automática do cluster

Use as seguintes boas práticas para maximizar o seu sucesso ao usar o autoupgrade:

  • Para garantir que o seu cluster está sempre numa versão suportada, por exemplo dentro da regra N-2, escolha um canal stable ou outro rapid .
  • Se você estiver interessado em obter os patches mais recentes o mais rápido possível, use o patch canal. O node-image canal é uma boa opção se você quiser que seus pools de agentes sempre executem as imagens de nó mais recentes.
  • Para atualizar automaticamente as imagens dos nós enquanto se utiliza um canal de atualização de cluster diferente, considere usar o canal de atualização automáticaNodeImage da imagem dos nós.
  • Siga as melhores práticas do Operador.
  • Siga as melhores práticas do PodDisruptionBudget (PDB).
  • Para obter informações sobre solução de problemas de atualização, consulte a documentação de solução de problemas do AKS.

Para obter uma discussão detalhada sobre as práticas recomendadas de atualização e outras considerações, consulte o patch do AKS e as diretrizes de atualização.