Configurar a Política de Disrupção de Nós no Azure Kubernetes Service (AKS) (Pré-visualização)

Este artigo mostra-lhe como configurar e gerir a Política de Interrupção de Nós para controlar quando são permitidas, no seu cluster do Azure Kubernetes Service (AKS), operações que requerem a reimagem dos nós e desencadeiam a reimplementação dos nós.

Pré-requisitos

Importante

As funcionalidades de pré-visualização do AKS estão disponíveis num regime de autosserviço e de adesão voluntária. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões de pré-visualização do AKS são apenas parcialmente abrangidas pelo suporte ao cliente, na medida do possível. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

Instala a extensão aks-preview CLI do Azure

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

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

    az extension update --name aks-preview
    

Registar a funcionalidade de pré-visualização Node Disruption Policy

Registe a funcionalidade de pré-visualização da Política de Interrupção de Nós usando o az feature register comando.

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

Leva alguns minutos para que o status apareça como Registrado.

Configurar a Política de Interrupção de Nós num novo cluster

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

Permitir operações disruptivas a qualquer momento (por defeito)

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

Permitir operações disruptivas apenas durante as janelas de manutenção

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

Importante

Quando usar AllowDuringMaintenanceWindow, certifique-se de configurar uma aksManagedNodeOSUpgradeSchedule janela de manutenção. Caso contrário, operações disruptivas são permitidas indefinidamente. Para mais informações, consulte Utilizar a manutenção planeada para agendar e controlar atualizações para o seu cluster Azure Kubernetes Service.

Bloqueie 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 dos Nós num cluster existente

Atualize a Política de Interrupção de Nós num cluster AKS existente usando o comando az aks update com o parâmetro --node-disruption-policy definido para uma das seguintes configurações de política: Allow (predefiniçã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 disruptivas

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

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

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

Verificar a configuração da Política de Interrupção de Node

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

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

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

Lidar com operações bloqueadas

Quando a Política de Disrupção dos Nós bloqueia uma operação disruptiva, pode aguardar a janela de manutenção ou alterar temporariamente a política.

Espera pela janela de manutenção

Se estiver a usar AllowDuringMaintenanceWindow, agende a operação para ocorrer na próxima janela de manutenção. Pode visualizar as suas 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 utilizando 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. Realiza a tua operação disruptiva. O exemplo seguinte atualiza os certificados CA 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 seguinte restaura --node-disruption-policy para Block:

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

Operações que requerem a 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 quaisquer alterações de configuração. Estas operações incluem:

  • Alterações na configuração do SSH, como alterar métodos de acesso ao SSH ou atualizar chaves públicas do SSH.
  • Alterações nas restrições do IMDS, como ativar ou desativar a restrição do IMDS.
  • Alterações ao nome ACR do perfil de bootstrap para clusters com isolamento de rede.
  • Alterações ao tipo de saída, como a alteração do encaminhamento do tráfego de saída do cluster.

Para estas operações, deve executar manualmente o az aks nodepool upgrade comando após 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 mais informações sobre operações abrangidas pela Política de Disrupção de Nós, consulte a Visão Geral da Política de Disrupção de Nós.

Resolver problemas da Política de Disrupção de Node

Operação bloqueada inesperadamente

Se uma operação for bloqueada inesperadamente, utilize os seguintes passos para resolver o problema:

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

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
        --output tsv
    
  2. Se estiveres a usar AllowDuringMaintenanceWindow, verifica 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 o tempo atual se enquadra na janela de manutenção.

Nenhuma janela de manutenção configurada

Se definires a política para AllowDuringMaintenanceWindow mas não configurares uma janela de manutenção, todas as operações disruptivas sã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