Partilhar via


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

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

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

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

Observação

O NAP força a atualização para a versão mais recente da imagem se a versão atual da imagem do nó tiver mais de 90 dias. Isso ignora qualquer janela de manutenção existente.

Janela de manutenção para atualização do sistema operativo do nó para NAP

Você pode usar o recurso de manutenção planejada AKS com um canal de atualização automática do sistema operacional do nó para configurar uma aksManagedNodeOSUpgradeSchedule janela de manutenção que controla quando executar o patch de segurança do sistema operacional do nó agendado pelo canal de atualização automática do sistema operacional do nó designado.

Janela de manutenção para atualização do sistema operativo do nó: comportamento e considerações

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

  • A aksManagedNodeOSUpgradeSchedule configuração de manutenção determina a janela durante a qual a NAP capta uma nova imagem. Essa configuração não determina necessariamente quando os nós existentes são interrompidos.
  • O mecanismo de atualização e os critérios de decisão são específicos do NAP/Karpenter e são avaliados pela lógica de deriva do NAP. A NAP adere aos Orçamentos de Disrupção de Nó Karpenter e aos Orçamentos de Disrupção de Pod. Para obter mais informações sobre drift, consulte a documentação de drift 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 aplica-os também.
  • Recomendamos o uso de uma janela de manutenção de quatro horas ou mais para uma operação confiável.
  • Se não houver nenhuma configuração de manutenção, o AKS pode usar um cronograma de fallback para coletar novas imagens, o que pode fazer com que as imagens sejam captadas em momentos inesperados. Você pode evitar momentos inesperados de novas imagens e atualizações definindo um aksManagedNodeOSUpgradeSchedule explícito.
  • Aguarde pelo menos 30 minutos entre a criação ou atualização de uma configuração de manutenção e a hora de início programada 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 lançamentos de imagens de nó de rotina (por exemplo: Todas as semanas aos domingos).

Criar um exemplo de agenda de manutenção do Sistema Operacional (SO) de 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 seu 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 manutenção planejada para agendar janelas de manutenção para seu cluster 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 os Orçamentos de Interrupção de Nó do Karpenter e os Orçamentos de Interrupção de Pod para NAP, consulte os seguintes recursos da documentação oficial do Karpenter:

Próximos passos

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