Usar a manutenção planejada para agendar e controlar atualizações para seu cluster do Serviço Kubernetes do Azure
Este artigo mostra como usar a manutenção planejada para agendar e controlar atualizações de imagem de cluster e nó no Serviço Kubernetes do Azure (AKS).
A manutenção regular é executada no seu cluster AKS automaticamente. Existem dois tipos de operações de manutenção:
- A manutenção iniciada pelo AKS envolve as versões semanais que o AKS realiza 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 de segurança automáticas 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. 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 habilitará ou desabilitará as atualizações automáticas.
Antes de começar
- Este artigo pressupõe que você tenha um cluster AKS existente. Se você não tiver um cluster AKS, consulte Criar um cluster AKS.
- Se você estiver usando a CLI do Azure, atualize para a versão mais recente usando o
az upgrade
comando.
Considerações
Quando você usa a manutenção planejada, as seguintes considerações se aplicam:
- A AKS reserva-se o direito de quebrar as janelas de manutenção planeada para operações de manutenção reativas não planeadas que sejam urgentes ou críticas. Essas operações de manutenção podem até ser executadas durante os
notAllowedTime
períodos definidosnotAllowedDates
na sua configuração. - As operações de manutenção são consideradas apenas o melhor esforço e não é garantido que ocorram dentro de uma janela especificada.
Programar tipos de configuração para manutenção planejada
Três tipos de configuração programada estão disponíveis para manutenção planejada:
default
é uma configuração básica para controlar as versões do AKS. As versões podem levar até duas semanas para serem implantadas em todas as regiões desde o momento inicial do envio, devido às práticas de implantação segura do Azure.Escolha
default
agendar essas atualizações de uma maneira que seja menos perturbadora para você. Você pode monitorar o status de uma liberação do AKS em andamento por região com o rastreador de lançamento semanal.aksManagedAutoUpgradeSchedule
Controla quando executar atualizações de cluster agendadas pelo canal de atualização automática designado. Você pode definir configurações de cadência e recorrência mais finamente controladas com essa configuração em comparação com adefault
configuração. Para obter mais informações sobre a atualização automática do cluster, consulte Atualizar automaticamente um cluster do Serviço Kubernetes do Azure.aksManagedNodeOSUpgradeSchedule
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ó. Você pode definir configurações de cadência e recorrência mais finamente controladas com essa configuração em comparação com adefault
configuração. Para obter mais informações sobre os canais de atualização automática do sistema operacional do nó, consulte Corrigir e atualizar automaticamente as imagens do nó do cluster AKS.
Recomendamos o uso aksManagedAutoUpgradeSchedule
para todos os cenários de atualização de cluster e aksManagedNodeOSUpgradeSchedule
para todos os cenários de patch de segurança do sistema operacional do nó.
A default
opção destina-se exclusivamente aos lançamentos semanais do AKS. Você pode alternar a default
configuração para a aksManagedAutoUpgradeSchedule
configuração ou aksManagedNodeOSUpgradeSchedule
usando o az aks maintenanceconfiguration update
comando.
Criar uma janela de manutenção
Nota
Quando estiver a utilizar a atualização automática, para garantir a funcionalidade adequada, utilize uma janela de manutenção com uma duração igual ou superior a quatro horas.
As janelas de manutenção planejada são especificadas em Tempo Universal Coordenado (UTC).
Uma default
janela de manutenção tem as seguintes propriedades herdadas (não mais recomendadas):
Nome | Descrição | Default value |
---|---|---|
timeInWeek |
Em uma default configuração, essa propriedade contém os day valores e hourSlots que definem uma janela de manutenção. |
Não aplicável |
timeInWeek.day |
O dia da semana para realizar a manutenção em uma default configuração. |
Não aplicável |
timeInWeek.hourSlots |
Uma lista de intervalos de tempo de uma hora para realizar manutenção em um dia específico em uma default configuração. |
Não aplicável |
notAllowedTime |
Um intervalo de datas que a manutenção não pode executar, determinado por start e end propriedades do filho. Essa propriedade é aplicável somente quando você está criando a janela de manutenção usando um arquivo de configuração. |
Não aplicável |
Nota
A partir da versão da API 2023-05-01, use as propriedades abaixo para default
configuração.
Uma aksManagedAutoUpgradeSchedule
janela de manutenção ou aksManagedNodeOSUpgradeSchedule
default
e configuração a partir da versão 2023-05-01 da API tem as seguintes propriedades:
Nome | Descrição | Default value |
---|---|---|
utcOffset |
O fuso horário para manutenção de cluster. | +00:00 |
startDate |
A data em que a janela de manutenção começa a produzir efeitos. | A data atual no momento 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 dias para manutenção é executado. É aplicável apenas a aksManagedNodeOSUpgradeSchedule . |
Não aplicável |
intervalWeeks |
O intervalo em semanas para a manutenção é executado. | Não aplicável |
intervalMonths |
O intervalo em meses para a manutenção é executado. | 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 execução da manutenção. | Não aplicável |
notAllowedDates |
Um intervalo de datas que a manutenção não pode executar, determinado por start e end propriedades do filho. É aplicável somente quando você está criando a janela de manutenção usando um arquivo de configuração. |
Não aplicável |
Tipos de agenda
Quatro tipos de horários disponíveis estão disponíveis: Daily
, Weekly
, AbsoluteMonthly
, e RelativeMonthly
.
Weekly
, AbsoluteMonthly
e RelativeMonthly
os tipos de agenda são aplicáveis apenas a aksManagedClusterAutoUpgradeSchedule
e aksManagedNodeOSUpgradeSchedule
configurações. Daily
As agendas são aplicáveis apenas às aksManagedNodeOSUpgradeSchedule
configurações.
Todos os campos mostrados para cada tipo de horário são obrigatórios.
Um Daily
horário pode parecer "a cada três dias":
"schedule": {
"daily": {
"intervalDays": 3
}
}
Um Weekly
horário pode parecer "a cada duas semanas na sexta-feira":
"schedule": {
"weekly": {
"intervalWeeks": 2,
"dayOfWeek": "Friday"
}
}
Um AbsoluteMonthly
cronograma pode parecer "a cada três meses no primeiro dia do mês":
"schedule": {
"absoluteMonthly": {
"intervalMonths": 3,
"dayOfMonth": 1
}
}
Um RelativeMonthly
horário pode parecer "a cada dois meses na última segunda-feira":
"schedule": {
"relativeMonthly": {
"intervalMonths": 2,
"dayOfWeek": "Monday",
"weekIndex": "Last"
}
}
Valores válidos para weekIndex
incluir First
, Second
, , Fourth
Third
, e Last
.
Adicionar uma configuração de janela de manutenção
Adicione uma configuração de janela de manutenção a um cluster AKS usando o az aks maintenanceconfiguration add
comando.
O primeiro exemplo adiciona uma nova default
configuração que agenda a manutenção para ser executada de 1h00 às 2h00 todas as segundas-feiras. O segundo exemplo adiciona uma nova aksManagedAutoUpgradeSchedule
configuração que agenda a manutenção para ser executada toda terceira sexta-feira entre 12h00 e 8h00 no fuso UTC+5:30
horário.
# Add a new default configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 1
# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
Nota
Ao usar um default
tipo de configuração, você pode omitir o parâmetro para permitir a --start-time
manutenção a qualquer momento durante um dia.
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 configuração para agendar a default
manutenção para ser executada das 2h00 às 3h00 todas as segundas-feiras:
az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2
Listar todas as janelas de manutenção em um cluster existente
Liste as janelas de configuração de manutenção atuais no cluster AKS usando o az aks maintenanceconfiguration list
comando:
az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster
Mostrar uma janela de configuração de manutenção específica em um cluster existente
Visualize uma janela de configuração de manutenção específica no seu cluster AKS usando o az aks maintenanceconfiguration show
comando com o --name
parâmetro:
az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule
O exemplo de saída a seguir mostra a janela de manutenção para 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
}
Excluir uma janela de configuração de manutenção em um cluster existente
Exclua uma janela de configuração de manutenção no cluster AKS usando o az aks maintenanceconfiguration delete
comando.
O exemplo a seguir exclui a configuração de autoUpgradeSchedule
manutenção:
az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule
FAQ
Como posso verificar as configurações de manutenção existentes no meu cluster?
Utilize o comando
az aks maintenanceconfiguration show
.A manutenção reativa e
notAllowedDates
não planejada também pode acontecer durante osnotAllowedTime
períodos?Sim. A AKS reserva-se o direito de quebrar estas janelas para operações de manutenção reativas não planeadas que sejam urgentes ou críticas.
Como posso saber se ocorreu um evento de manutenção?
Para versões, verifique a região do cluster e procure informações em versões semanais para ver se elas correspondem à sua programação de manutenção. Para ver o estado das atualizações automáticas, procure registos de atividade no cluster. Você também pode procurar eventos específicos relacionados à atualização, conforme mencionado em Atualizar um cluster AKS.
O AKS também emite eventos da Grade de Eventos do Azure relacionados à atualização. Para saber mais, consulte AKS como uma fonte de grade de eventos.
Posso usar mais de uma configuração de manutenção ao mesmo tempo?
Sim, você pode executar as três configurações simultaneamente:
default
,aksManagedAutoUpgradeSchedule
eaksManagedNodeOSUpgradeSchedule
. Se as janelas se sobrepõem, o AKS decide a ordem de execução.Configurei uma janela de manutenção, mas a atualização não aconteceu. Porquê?
A atualização automática do AKS precisa de um certo tempo, geralmente não superior a 15 minutos, para levar em consideração a janela de manutenção. Recomendamos pelo menos 15 minutos entre a criação ou atualização de uma configuração de manutenção e a hora de início programada.
Além disso, certifique-se de que o cluster seja 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 do pod o impediram), ele poderá ser atualizado mais tarde, fora da janela de manutenção. Esse cenário é chamado de "atualização de recuperação". Isso evita permitir que os pools de agentes sejam atualizados com uma versão diferente do plano de controle AKS.
Outra razão pela qual um pool de agentes pode ser atualizado inesperadamente é quando não há uma 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, será atualizado em momentos aleatórios (cronograma de fallback), o que pode ser um período de tempo indesejado.
Existem práticas recomendadas para as configurações de manutenção?
Recomendamos definir a programação de atualizações de segurança do sistema operacional do nó para uma cadência semanal se você estiver usando o
NodeImage
canal, porque uma nova imagem de nó é enviada toda semana. Você também pode optar peloSecurityPatch
canal para receber atualizações de segurança diárias.Defina o cronograma 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 práticas recomendadas de atualização e outras considerações, consulte o patch do AKS e as diretrizes de atualização.
Posso configurar todos os meus clusters em uma única assinatura para usar a mesma configuração de manutenção?
Não recomendamos o uso da mesma configuração de manutenção para vários clusters em uma única assinatura, pois isso pode levar a erros de limitação de ARM, causando falhas nas atualizações de cluster. Em vez disso, recomendamos escalonar as janelas de manutenção de cada cluster para evitar esses erros.
Próximos passos
- Para começar a atualizar seu cluster AKS, consulte Opções de atualização para clusters AKS.
Azure Kubernetes Service