Usar a manutenção planejada para agendar atualizações para membros da Rede de Aplicativos do Kubernetes do Azure (versão prévia)

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:

Este artigo mostra como usar a manutenção planejada para agendar atualizações de componentes para membros da Rede de Aplicativos kubernetes do Azure.

Visão geral da manutenção planejada para a Rede de Aplicativos

As operações de manutenção referem-se à atualização de componentes do plano de dados no cluster e aos componentes do plano de controle da Rede de Aplicativos que são executados fora do cluster, como o Istiod.

Dois dos principais componentes no cluster são os proxies de nó Ztunnel e agentes de nó CNI do Istio. Esses recursos são DaemonSets por nó, portanto, as atualizações afetam um nó inteiro de cada vez e podem causar interrupções em conexões TCP de longa duração. Para isolar as interrupções no nível do nó em uma janela comum, a Rede de Aplicativos usa o mesmo agendamento de manutenção do aksManagedNodeOSUpgradeSchedule que as atualizações automáticas do sistema operacional (SO) do nó do Serviço de Kubernetes do Azure (AKS), se configuradas.

Observe que, embora a janela de manutenção seja a mesma, atualizações de membro da Rede de Aplicativos e atualizações do sistema operacional do nó são eventos independentes dentro da janela que ocorrem para um ou ambos os componentes, dependendo da disponibilidade de atualizações. Nenhuma atualização afeta o tempo ou o processo do outro. Se ambos os componentes forem atualizados na mesma janela, poderá haver interrupções de conexão separadas para cada atualização dentro dessa janela.

Observação

Não é necessário aderir às atualizações automáticas do SO do nó para usar a manutenção planejada para a Rede de Aplicativos. Criar um aksManagedNodeOSUpgradeSchedule não habilita ou desabilita atualizações automáticas do SO do nó.

Pré-requisitos

Considerações

Tenha as seguintes considerações em mente ao usar a manutenção planejada para agendar atualizações da Rede de Aplicativos:

  • A Rede de Aplicativos reserva-se o direito de interromper janelas de manutenção planejadas para operações de manutenção reativa não planejadas que sejam urgentes ou críticas. Essas operações de manutenção podem até ser executadas durante os períodos notAllowedTime ou notAllowedDates definidos na sua configuração.
  • As operações de manutenção são consideradas apenas de melhor esforço e não tem garantia de ocorrer dentro de uma janela especificada.
  • Se uma tentativa de atualização não for concluída quando a janela se fechar, a atualização continuará tentando a reconciliação até que seja concluída.

Comportamento específico do modo

Você pode usar a manutenção planejada para agendar o tempo de atualizações totalmente gerenciadas e atualizações autogerenciadas, mas habilitar ou desabilitar a manutenção planejada não afeta o próprio modo de atualização. Janelas de manutenção exibem diferentes tipos de atualizações, dependendo do modo de atualização do cluster.

  • Modo totalmente gerenciado: janelas de manutenção controlam tanto as atualizações menores quanto as de correção. No entanto, se você iniciar uma alteração de canal de versão, a alteração de versão associada entrará em vigor imediatamente.
  • Modo autogerenciado: as janelas de manutenção se aplicam somente a atualizações de patch. Se você iniciar uma alteração de versão secundária, ela entrará em vigor imediatamente.

Adicionar uma janela de manutenção

  • Adicione uma configuração de janela de manutenção do aksManagedNodeOSUpgradeSchedule a um cluster do AKS usando o comando az aks maintenanceconfiguration add. O exemplo a seguir adiciona uma nova aksManagedNodeOSUpgradeSchedule configuração que agenda a manutenção a ser executada a cada terceira sexta-feira entre 00h e 8h no UTC+5:30 fuso horário:

    az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
    

Atualizar uma janela de manutenção existente

  • Atualize uma configuração de manutenção existente usando o az aks maintenanceconfiguration update comando. O exemplo a seguir atualiza a aksManagedNodeOSUpgradeSchedule configuração para agendar a manutenção a ser executada todas as sextas-feiras das 2h às 6h:

    az aks maintenanceconfiguration update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 02:00
    

Mostrar a configuração de manutenção de um cluster

  • Exiba uma janela de configuração de manutenção específica no cluster do AKS usando o az aks maintenanceconfiguration show comando com o --name parâmetro.

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

    O seguinte exemplo de saída mostra a janela de manutenção por aksManagedNodeOSUpgradeSchedule:

    {
      "id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedNodeOSUpgradeSchedule",
      "maintenanceWindow": {
        "durationHours": 4,
        "notAllowedDates": [
          {
            "end": "2024-01-05",
            "start": "2023-12-23"
          }
        ],
        "schedule": {
          "absoluteMonthly": {
            "dayOfMonth": 1,
            "intervalMonths": 3
          },
          "daily": null,
          "relativeMonthly": null,
          "weekly": null
        },
        "startDate": "2023-01-20",
        "startTime": "09:00",
        "utcOffset": "-08:00"
      },
      "name": "aksManagedNodeOSUpgradeSchedule",
      "notAllowedTime": null,
      "resourceGroup": "myResourceGroup",
      "systemData": null,
      "timeInWeek": null,
      "type": null
    }
    

Excluir uma configuração de manutenção para um cluster

  • Exclua uma janela de configuração de manutenção no cluster do AKS usando o az aks maintenanceconfiguration delete comando.

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

Para saber mais sobre a Rede de Aplicativos kubernetes do Azure, confira os seguintes artigos: