Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo mostra como usar a manutenção planejada para agendar e controlar atualizações de imagem de nó e cluster no AKS (Serviço de Kubernetes do Azure).
A manutenção regular é executada no cluster do AKS automaticamente. Há dois tipos de operações de manutenção:
- A manutenção iniciada pelo AKS inclui as versões semanais executadas pelo AKS para manter seu cluster atualizado com os recursos e correções mais recentes.
- A manutenção iniciada pelo usuário inclui atualizações automáticas de cluster e atualizações automáticas de segurança do sistema operacional (SO) do nó.
Ao usar o recurso de manutenção planejada no AKS, você pode executar ambos os tipos de manutenção em uma cadência de sua escolha para minimizar o impacto da carga de trabalho.
Observação
Você pode usar a manutenção planejada para agendar o tempo das atualizações automáticas, mas habilitar ou desabilitar a manutenção planejada não habilita ou desabilitar atualizações automáticas.
Antes de começar
- Este artigo considera que já existe um cluster do AKS. Se você não tiver um cluster do AKS, confira Criar um cluster do AKS.
- Se você estiver usando a CLI do Azure, atualize para a versão mais recente usando o
az upgradecomando.
Considerações
Ao usar a manutenção planejada, as seguintes considerações se aplicam:
- O AKS se reserva o direito de dividir essas janelas de manutenção planejada para operações de manutenção não planejadas e reativas que são urgentes ou críticas. Essas operações de manutenção podem até ser executadas durante os períodos
notAllowedTimeounotAllowedDatesdefinidos 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.
Agendar tipos de configuração para manutenção planejada
Três tipos de configuração de agendamento estão disponíveis para manutenção planejada:
defaulté uma configuração básica para controlar as versões do AKS, que abrange os componentes do painel de controle e a atualização de complementos do sistema. As versões podem levar até duas semanas para serem distribuídas para todas as regiões desde o momento inicial do envio devido às práticas de implantação segura do Azure.Escolha
defaultpara agendar essas atualizações da forma menos inconveniente para você. Você pode monitorar o status de uma versão contínua do AKS por região com o rastreador de versões semanais.aksManagedAutoUpgradeSchedulecontrola quando executar as atualizações agendadas pelo canal de atualização automática designado. Você pode configurar definições de cadência e recorrência mais controladas com essa configuração em comparação com a configuraçãodefault. Para obter mais informações sobre a atualização automática do cluster, consulte Atualizar automaticamente um cluster do Serviço de Kubernetes do Azure.aksManagedNodeOSUpgradeSchedulecontrola quando executar o patch de segurança do SO do nó agendado pelo canal de atualização automática do sistema operacional do nó. Você pode configurar definições de cadência e recorrência mais controladas com essa configuração em comparação com a configuraçãodefault. Para obter mais informações sobre os canais de atualização automática do SO do nó, confira Corrigir e atualizar automaticamente imagens de nó de cluster do AKS.
É recomendável usar aksManagedAutoUpgradeSchedule para todos os cenários de atualização de versão do Kubernetes em clusters e aksManagedNodeOSUpgradeSchedule para todos os cenários de aplicação de patches de segurança no sistema operacional dos nós.
A opção default destina-se exclusivamente a versões semanais do AKS. Use default se quiser controlar o agendamento de atualização para componentes do plano de controle do AKS (como Servidor de API, ETCD etc.) e complementos (como CoreDNS, Metrics Server etc.).
Todos os três tipos de configurações podem coexistir.
Criar uma janela de manutenção
Observação
Quando você estiver usando a atualização automática, para garantir a funcionalidade adequada, use uma janela de manutenção com uma duração de quatro horas ou mais.
Observação
A partir da versão da API de 01-05-2023, use as propriedades na tabela a seguir para a configuração de default.
Uma janela de manutenção aksManagedAutoUpgradeSchedule ou aksManagedNodeOSUpgradeSchedule e configuração default da versão da API 2023-05-01 em diante tem as seguintes propriedades:
| Nome | Descrição | Valor padrão |
|---|---|---|
utcOffset |
O fuso horário para manutenção do cluster. | +00:00 |
startDate |
A data em que a janela de manutenção começa a entrar em vigor. | A data atual na hora da criação |
startTime |
A hora de início da manutenção com base no fuso horário determinado por utcOffset. |
Não aplicável |
schedule |
A frequência de atualização. Três tipos estão disponíveis: Weekly, AbsoluteMonthly e RelativeMonthly. |
Não aplicável |
intervalDays |
O intervalo em semanas para execuções de manutenção. É aplicável apenas a aksManagedNodeOSUpgradeSchedule. |
Não aplicável |
intervalWeeks |
O intervalo em semanas para execuções de manutenção. | Não aplicável |
intervalMonths |
O intervalo em meses para execuções de manutenção. | Não aplicável |
dayOfWeek |
O dia da semana especificado para o início da manutenção. | Não aplicável |
durationHours |
A duração da janela para a execução da manutenção. | Não aplicável |
notAllowedDates |
Um intervalo de datas em que a manutenção não pode ser executada, determinada pelas propriedades filho start e end. Ele é aplicável somente quando você está criando a janela de manutenção usando um arquivo de configuração. |
Não aplicável |
Propriedades obsoletas
Observação
Se você criar uma default configuração com as seguintes propriedades preteridas, ela migrará automaticamente para as novas propriedades mostradas na tabela anterior.
[Preterido] Uma default janela de manutenção tem as seguintes propriedades herdadas:
| Nome | Descrição | Valor padrão |
|---|---|---|
timeInWeek |
Em uma configuração default, essa propriedade contém os valores day e hourSlots que definem uma janela de manutenção. |
Não aplicável |
timeInWeek.day |
O dia da semana para executar a manutenção em uma configuração default. |
Não aplicável |
timeInWeek.hourSlots |
Uma lista de intervalos de tempo de uma hora para executar a manutenção em um dia específico em uma configuração default. |
Não aplicável |
notAllowedTime |
Um intervalo de datas em que a manutenção não pode ser executada, determinada pelas propriedades filho start e end. Essa propriedade é aplicável somente quando você está criando a janela de manutenção usando um arquivo de configuração. |
Não aplicável |
Tipos de agendamentos
Há suporte para quatro tipos de agendamento: Daily, , Weeklye AbsoluteMonthlyRelativeMonthly.
A tabela a seguir mostra quais tipos estão disponíveis para cada opção de configuração de manutenção:
| Tipo de agenda | default |
aksManagedClusterAutoUpgradeSchedule |
aksManagedNodeOSUpgradeSchedule |
|---|---|---|---|
| Diariamente | Sem suporte ❌ | Com suporte ✅ (após junho de 2025) | Com suporte ✅ |
| Weekly | Com suporte ✅ | Com suporte ✅ | Com suporte ✅ |
| AbsoluteMonthly | Sem suporte ❌ | Com suporte ✅ | Com suporte ✅ |
| RelativeMonthly | Sem suporte ❌ | Com suporte ✅ | Com suporte ✅ |
Todos os campos mostrados para cada tipo de agendamento são obrigatórios.
Um agendamento Daily pode ser semelhante a "a cada três dias":
"schedule": {
"daily": {
"intervalDays": 3
}
}
Um agendamento Weekly pode ser semelhante a "a cada duas semanas na sexta-feira":
"schedule": {
"weekly": {
"intervalWeeks": 2,
"dayOfWeek": "Friday"
}
}
Um agendamento AbsoluteMonthly pode ser semelhante a "a cada três meses, no primeiro dia do mês":
"schedule": {
"absoluteMonthly": {
"intervalMonths": 3,
"dayOfMonth": 1
}
}
Um agendamento RelativeMonthly pode ser semelhante a "a cada dois meses, na última segunda-feira":
"schedule": {
"relativeMonthly": {
"intervalMonths": 2,
"dayOfWeek": "Monday",
"weekIndex": "Last"
}
}
Os valores válidos para weekIndex incluem First, Second, Third, Fourth e Last.
Adicionar uma configuração de janela de manutenção
Adicione uma configuração de janela de manutenção a um cluster do AKS usando o az aks maintenanceconfiguration add comando.
O primeiro exemplo adiciona uma nova default configuração que agenda a manutenção a ser executada das 1h às 5h todas as segundas-feiras no UTC fuso horário. O segundo exemplo adiciona uma nova configuração aksManagedAutoUpgradeSchedule que agenda a manutenção a ser executada a cada três sextas-feiras entre 0h e 8h no fuso horário UTC+5:30.
# Add a new default configuration
az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --schedule-type Weekly --day-of-week Monday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 01:00
# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedAutoUpgradeSchedule --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 default configuração para agendar a manutenção a ser executada das 2h às 6h todas as sextas-feiras:
az aks maintenanceconfiguration update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --schedule-type Weekly --day-of-week Friday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 02:00
Listar todas as janelas de manutenção em um cluster existente
Liste as janelas de configuração de manutenção atuais no cluster do AKS usando o az aks maintenanceconfiguration list comando:
az aks maintenanceconfiguration list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME
Mostrar uma janela de configuração de manutenção específica em um cluster existente
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 aksManagedAutoUpgradeSchedule
O seguinte exemplo de saída mostra a janela de manutenção por aksManagedAutoUpgradeSchedule:
{
"id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedAutoUpgradeSchedule",
"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": "aksManagedAutoUpgradeSchedule",
"notAllowedTime": null,
"resourceGroup": "myResourceGroup",
"systemData": null,
"timeInWeek": null,
"type": null
}
Exclua uma janela de configuração de manutenção em um cluster existente
Exclua uma janela de configuração de manutenção no cluster do AKS usando o az aks maintenanceconfiguration delete comando.
O exemplo a seguir exclui a configuração de manutenção autoUpgradeSchedule:
az aks maintenanceconfiguration delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name autoUpgradeSchedule
Perguntas frequentes (FAQ)
Como posso verificar as configurações de manutenção existentes no meu cluster?
Use o comando az aks maintenanceconfiguration show.
A manutenção reativa e não planejada também pode ocorrer durante os períodos notAllowedDates?
Sim. A AKS reserva-se o direito de interromper essas janelas para operações de manutenção reativas não planejadas que sejam urgentes ou críticas.
Como é possível saber se ocorreu um evento de manutenção?
Para as versões, verifique a região do cluster e procure informações nas versões semanais para ver se correspondem ao seu agendamento de manutenção. Para exibir o status de suas atualizações automáticas, pesquise os logs de atividades no cluster. Você também pode pesquisar eventos específicos relacionados a atualizações, conforme mencionado em Atualizar um cluster do AKS.
O AKS também emite eventos da Grade de Eventos do Azure relacionados a atualizações. Para saber mais, confira AKS como uma fonte da Grade de Eventos.
É possível usar mais de uma configuração de manutenção ao mesmo tempo?
Sim, é possível executar todas as três configurações simultaneamente: default, aksManagedAutoUpgradeSchedule e aksManagedNodeOSUpgradeSchedule. Se as janelas se sobreponham, o AKS decidirá a ordem de execução.
Configurei uma janela de manutenção, mas a atualização não aconteceu. Por quê?
A atualização automática do AKS precisa de um determinado tempo, geralmente não mais do que 15 minutos, para levar em consideração a janela de manutenção. Recomendamos pelo menos 15 minutos entre a criação ou a atualização de uma configuração de manutenção e a hora de início agendada.
Além disso, o cluster deve estar iniciado quando a janela de manutenção planejada for iniciada. Se o cluster for interrompido, seu plano de controle será desalocado e nenhuma operação poderá ser executada.
Por que um dos meus pools de agentes foi atualizado fora da janela de manutenção?
Se um pool de agentes não for atualizado (por exemplo, porque os orçamentos de interrupção de pods o impediram), ele pode ser atualizado posteriormente, fora da janela de manutenção. Esse cenário é conhecido como uma atualização de recuperação. Ele evita permitir que os pools de agentes sejam atualizados com uma versão diferente do plano de controle do AKS.
Outro motivo pelo qual um pool de agentes pode ser atualizado inesperadamente é quando não há nenhuma configuração de manutenção definida ou se ele foi excluído. Nesse caso, um cluster com atualização automática, mas sem uma configuração de manutenção , é atualizado em horários aleatórios (agendamento de fallback), o que pode ser um período indesejado.
Há práticas recomendadas para as configurações de manutenção?
Recomendamos definir o agendamento de atualizações de segurança do sistema operacional do nó para uma cadência semanal se estiver usando o canal NodeImage, pois uma nova imagem de nó é enviada todas as semanas. Você também pode optar pelo canal SecurityPatch para receber atualizações de segurança diárias.
Você pode definir o agendamento de atualização automática para uma cadência mensal para se manter atualizado com a política de suporte do Kubernetes N-2.
Para obter uma discussão detalhada sobre as melhores práticas de atualização e outras considerações, veja Diretrizes de patch e atualização do AKS.
Posso configurar todos os meus clusters em uma única assinatura para usar a mesma configuração de manutenção?
Não recomendamos usar a mesma configuração de manutenção para vários clusters em uma assinatura única, pois isso pode levar a erros de limitação do ARM, fazendo com que as atualizações do cluster falhem. Em vez disso, recomendamos o escalonamento das janelas de manutenção de cada cluster para evitar esses erros.
Por que meus pools de nós foram atualizados duas vezes na mesma janela de manutenção?
Se uma versão mais recente da imagem do nó for disponibilizada na janela de manutenção, o AKS fará uma segunda atualização para garantir que os pools de nós executem a versão mais atual. Esse comportamento é normal e não indica um problema.
Conteúdo relacionado
Para começar a atualizar seu cluster do AKS, confira Opções de atualização para clusters do AKS.