Configurar a política de interrupção do nó em AKS (Serviço de Kubernetes do Azure) (versão prévia)

Este artigo mostra como configurar e gerenciar a Política de Interrupção de Nó para controlar quando as operações que exigem a reimagem do nó e disparam a reimplantação de nós são permitidas em seu cluster AKS (Serviço de Kubernetes do Azure).

Pré-requisitos

Importante

As funcionalidades em versão preliminar do AKS estão disponíveis de forma optativa e por autoatendimento. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

Instalar a extensão aks-preview CLI do Azure

  1. Instale a extensão aks-preview usando o comando az extension add.

    az extension add --name aks-preview
    
  2. Atualize para a última versão da extensão usando o comando az extension update.

    az extension update --name aks-preview
    

Registrar o recurso de visualização da Política de Interrupção do Nó

Registre o recurso de versão prévia da Política de Interrupção do Nó usando o comando az feature register.

az feature register --namespace "Microsoft. ContainerService" --name "NodeDisruptionProfile"

Leva alguns minutos para que o status seja mostrado como Registrado.

Configurar a política de interrupção de nós em um cluster novo

Crie um novo cluster do AKS com a política de interrupção de nós configurada usando o comando az aks create com o parâmetro --node-disruption-policy definido como uma das seguintes configurações de política: Allow (padrão), AllowDuringMaintenanceWindow ou Block.

Permitir operações de interrupção a qualquer momento (padrão)

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 3 \
    --node-disruption-policy Allow \
    --generate-ssh-keys

Permitir operações de interrupção somente durante janelas de manutenção

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 3 \
    --node-disruption-policy AllowDuringMaintenanceWindow \
    --generate-ssh-keys

Importante

Ao usar AllowDuringMaintenanceWindow, certifique-se de configurar uma aksManagedNodeOSUpgradeSchedule janela de manutenção. Caso contrário, as operações de interrupção são permitidas indefinidamente. Para obter mais informações, consulte Usar a manutenção planejada para agendar e controlar atualizações para o cluster Serviço de Kubernetes do Azure.

Bloquear todas as operações disruptivas

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 3 \
    --node-disruption-policy Block \
    --generate-ssh-keys

Atualizar a Política de Interrupção de Nó em um cluster existente

Atualize a Política de Interrupção do Nó em um cluster AKS existente usando o comando az aks update com o parâmetro --node-disruption-policy definido com uma das seguintes configurações de política: Allow (padrão), AllowDuringMaintenanceWindow ou Block.

Alterar a política para permitir operações durante as janelas de manutenção

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-disruption-policy AllowDuringMaintenanceWindow

Alterar a política para bloquear todas as operações perturbadoras

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-disruption-policy Block

Alterar a política novamente para permitir operações a qualquer hora

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-disruption-policy Allow

Verificar a configuração da política de interrupção do nó

Verifique a configuração da Política de Interrupção do Nó usando o az aks show comando.

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
    --output tsv

A saída mostra a configuração de política atual, como Allow, AllowDuringMaintenanceWindowou Block.

Lidar com operações bloqueadas

Quando a Política de Interrupção do Nó bloqueia uma operação de interrupção, você pode aguardar a janela de manutenção ou alterar temporariamente a política.

Aguarde a janela de manutenção

Se você estiver usando AllowDuringMaintenanceWindow, agende a operação para ocorrer durante a próxima janela de manutenção. Você pode exibir as janelas de manutenção configuradas usando o az aks maintenanceconfiguration list comando.

az aks maintenanceconfiguration list \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster

Alterar temporariamente a política

  1. Atualize a política para Allow usando o comando az aks update com --node-disruption-policy definido como Allow.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-disruption-policy Allow
    
  2. Execute sua operação disruptiva. O exemplo a seguir atualiza os certificados de AC personalizados usando o az aks update comando:

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --custom-ca-trust-certificates <path-to-certificate-file>
    
  3. Restaure a política original usando o az aks update comando. O exemplo a seguir restaura --node-disruption-policy para Block:

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-disruption-policy Block
    

Operações que exigem atualização manual do pool de nós

Algumas operações que a Política de interrupção de nós não controla exigem uma atualização manual do pool de nós após alterações de configuração. Essas operações incluem:

  • Alterações na configuração do SSH, como alterar métodos de acesso SSH ou atualizar chaves públicas SSH.
  • Alterações de restrição do IMDS, como habilitar ou desabilitar a restrição do IMDS.
  • Mudanças no nome do ACR do perfil bootstrap para clusters com isolamento de rede.
  • Alterações de tipo de saída, como a alteração do roteamento de saída do cluster.

Para essas operações, você deve executar manualmente o az aks nodepool upgrade comando depois de fazer a alteração de configuração. Por exemplo:

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name <nodepool-name> \
    --node-image-only

Para obter mais informações sobre as operações cobertas pela Política de Interrupção do Nó, consulte a visão geral da Política de Interrupção do Nó.

Solucionar problemas da Política de Interrupção do Nó

Operação bloqueada inesperadamente

Se uma operação for bloqueada inesperadamente, use as seguintes etapas para solucionar o problema:

  1. Verifique a configuração de política atual usando o az aks show comando.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
        --output tsv
    
  2. Se você estiver usando AllowDuringMaintenanceWindow, verifique a configuração da janela de manutenção usando o az aks maintenanceconfiguration show comando.

    az aks maintenanceconfiguration show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name aksManagedNodeOSUpgradeSchedule
    
  3. Verifique se a hora atual está dentro da janela de manutenção.

Nenhuma janela de manutenção configurada

Se você definir a política como AllowDuringMaintenanceWindow , mas não configurar uma janela de manutenção, todas as operações de interrupção serão permitidas.

Configure uma janela de manutenção usando o az aks maintenanceconfiguration add comando.

az aks maintenanceconfiguration add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name aksManagedNodeOSUpgradeSchedule \
    --schedule-type Weekly \
    --day-of-week Sunday \
    --interval-weeks 1 \
    --duration 4 \
    --start-hour 2