Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
- Consulte a visão geral da Política de Interrupção de Nós para saber como funciona a Política de Disrupção de Nós e as operações abrangidas pela Política de Disrupção de Nó.
- CLI do Azure versão 2.76.0 ou posterior instalado e configurado. Para encontrar a sua versão da CLI, execute o
az --versioncomando. Se precisar de instalar ou atualizar, consulte Install CLI do Azure. - Um cluster do AKS existente, ou criar um novo com a política de interrupção dos nós configurada.
-
Instale a
aks-previewextensão da CLI do Azure e registe a funcionalidade de pré-visualização da Política de Interrupção de Nós.
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
Instale a
aks-previewextensão usando oaz extension addcomando.az extension add --name aks-previewAtualize para a versão mais recente da extensão usando o
az extension updatecomando.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
Atualize a política para
Allowutilizando o comandoaz aks updatecom--node-disruption-policydefinido comoAllow.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-disruption-policy AllowRealiza a tua operação disruptiva. O exemplo seguinte atualiza os certificados CA personalizados usando o
az aks updatecomando:az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --custom-ca-trust-certificates <path-to-certificate-file>Restaure a política original usando o
az aks updatecomando. O exemplo seguinte restaura--node-disruption-policyparaBlock: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:
Verifique a definição atual da política usando o
az aks showcomando.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query "nodeDisruptionProfile.nodeDisruptionPolicy" \ --output tsvSe estiveres a usar
AllowDuringMaintenanceWindow, verifica a configuração da janela de manutenção usando oaz aks maintenanceconfiguration showcomando.az aks maintenanceconfiguration show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name aksManagedNodeOSUpgradeScheduleVerifique 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