Compartilhar via


Atualizações de imagem de nó para provisionamento automático de nós (NAP) no AKS (Serviço de Kubernetes do Azure)

Este artigo fornece uma visão geral das atualizações de imagem de nó para NAP (provisionamento automático de nós) no AKS (Serviço de Kubernetes do Azure), incluindo como ele funciona, janelas de manutenção recomendadas e exemplos para começar.

Como as atualizações de imagem do nó funcionam para nós de provisionamento automático de nó?

Por padrão, as VMs (máquinas virtuais) do pool de nós NAP são atualizadas automaticamente quando uma nova versão da imagem está disponível. Você pode configurar uma janela de manutenção programada de atualizações do sistema operacional (SO) gerenciado pelo AKS para controlar quando novas imagens são atualizadas e aplicadas aos nós NAP, ou usar Orçamentos de Interrupção de Nós e Pods do Karpenter para controlar como e quando ocorre a interrupção durante as atualizações.

Observação

Se a versão existente da imagem do nó estiver com mais de 90 dias, o NAP garante que a versão mais recente da imagem seja selecionada. Isso ignora qualquer janela de manutenção existente.

Janelas de manutenção de atualização do sistema operacional do nó para NAP

Você pode usar o recurso de manutenção planejada do AKS com um canal de atualização automática do sistema operacional de nós para configurar uma aksManagedNodeOSUpgradeSchedule janela de manutenção que controle quando serão aplicados os patches de segurança do sistema operacional dos nós, conforme o agendamento definido pelo seu canal de atualização automática.

Considerações e comportamento da janela de manutenção para atualização do sistema operacional do nó

Tenha as seguintes informações em mente ao configurar uma janela de manutenção de atualização do sistema operacional do nó para NAP:

  • A aksManagedNodeOSUpgradeSchedule configuração de manutenção determina a janela durante a qual o NAP seleciona uma nova imagem. Essa configuração não determina necessariamente quando os nós existentes são interrompidos.
  • O mecanismo de upgrade e os critérios de decisão são específicos para NAP/Karpenter e são avaliados pela lógica de desvio do NAP. O NAP respeita os Orçamentos de Interrupção de Nó Karpenter e os Orçamentos de Interrupção de Pod. Para obter mais informações sobre descompasso, consulte a documentação de descompasso do Karpenter.
  • Essas decisões de atualização de NAP são separadas do cluster NodeImage e dos canais SecurityPatch. No entanto, a configuração de manutenção aksManagedNodeOSUpgradeSchedule também as aplica.
  • É recomendável usar uma janela de manutenção de quatro horas ou mais para uma operação confiável.
  • Se nenhuma configuração de manutenção existir, o AKS poderá usar um agendamento de fallback para coletar novas imagens, o que pode fazer com que as imagens sejam coletadas em momentos inesperados. Você pode evitar o momento inesperado de novas imagens e atualizações definindo um parâmetro explícito aksManagedNodeOSUpgradeSchedule.
  • Permita pelo menos 30 minutos entre criar ou atualizar uma configuração de manutenção e a hora de início agendada para garantir que o AKS tenha tempo para reconciliar a nova configuração.

Recomendamos o seguinte padrão de agendamento para nós gerenciados por NAP:

  • Cadência semanal: recomendada para distribuições de imagem de nó de rotina (por exemplo, Toda semana no domingo).

Criar um exemplo de agendamento de manutenção do sistema operacional do nó

As seções a seguir mostram como criar uma janela de manutenção semanal para nós gerenciados por NAP usando a CLI do Azure e um arquivo de configuração JSON e como atualizar, exibir, listar e excluir a configuração de manutenção.

Criar uma configuração de manutenção

  1. Crie um arquivo JSON nomeado nodeosMaintenance.json com uma janela de manutenção semanal (por exemplo: domingo às 01:00 UTC por 4 horas).

    {
      "properties": {
        "maintenanceWindow": {
          "durationHours": 4,
          "schedule": {
            "weekly": {
              "intervalWeeks": 1,
              "dayOfWeek": "Sunday"
            }
          },
          "startDate": "2025-01-01",
          "startTime": "01:00",
          "utcOffset": "+00:00"
        }
      }
    }
    
  2. Adicione a configuração de manutenção ao cluster usando o az aks maintenanceconfiguration add comando.

    az aks maintenanceconfiguration add \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule \
      --config-file ./nodeosMaintenance.json
    

Atualizar, exibir, listar ou excluir uma configuração de manutenção

Você pode usar os seguintes comandos para atualizar, exibir, listar ou excluir uma configuração de manutenção para nós gerenciados por NAP:

  • Atualize uma configuração de manutenção modificando o arquivo JSON e executando o az aks maintenanceconfiguration update comando.

    az aks maintenanceconfiguration update \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule \
      --config-file ./nodeosMaintenance.json
    
  • Exiba os detalhes de uma configuração de manutenção usando o az aks maintenanceconfiguration show comando.

    az aks maintenanceconfiguration show \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule
    
  • Liste todas as configurações de manutenção para o cluster usando o az aks maintenanceconfiguration list comando.

    az aks maintenanceconfiguration list \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME
    
  • Exclua uma configuração de manutenção usando o az aks maintenanceconfiguration delete comando.

    az aks maintenanceconfiguration delete \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule
    

Para obter detalhes completos, exemplos e cenários avançados, consulte Usar a Manutenção Planejada para agendar janelas de manutenção para o cluster do AKS.

Orçamentos de Interrupção do Nó Karpenter e Orçamentos de Interrupção do Pod para NAP

Para obter mais informações sobre como configurar Orçamentos de Interrupção de Nó Karpenter e Orçamentos de Interrupção de Pod para NAP, consulte os seguintes recursos da documentação oficial do Karpenter:

Próximas etapas

Para obter mais informações sobre o provisionamento automático de nós no AKS, consulte os seguintes artigos: