Usare manutenzione pianificata per pianificare e controllare gli aggiornamenti per il cluster del servizio Azure Kubernetes
Questo articolo illustra come usare la manutenzione pianificata per pianificare e controllare gli aggiornamenti delle immagini del cluster e dei nodi in servizio Azure Kubernetes (servizio Azure Kubernetes).
Il cluster del servizio Azure Kubernetes ha una manutenzione regolare eseguita automaticamente. Esistono due tipi di operazioni di manutenzione: servizio Azure Kubernetes avviato e avviato dall'utente. La manutenzione avviata dal servizio Azure Kubernetes prevede le versioni settimanali eseguite dal servizio Azure Kubernetes per mantenere aggiornato il cluster con le funzionalità e le correzioni più recenti. La manutenzione avviata dall'utente include aggiornamenti automatici del cluster e aggiornamenti automatici del sistema operativo del nodo. La funzionalità Manutenzione pianificata consente di eseguire entrambi i tipi di manutenzione in una cadenza di propria scelta, riducendo al minimo l'impatto del carico di lavoro.
Operazioni preliminari
- Questo articolo presuppone che si disponga di un cluster del servizio Azure Kubernetes esistente. Se non si ha un cluster del servizio Azure Kubernetes, vedere Creare un cluster del servizio Azure Kubernetes.
- Se si usa l'interfaccia della riga di comando di Azure, assicurarsi di eseguire l'aggiornamento alla versione più recente usando il
az upgrade
comando .
Considerazioni
Quando si usa manutenzione pianificata, si applicano le considerazioni seguenti:
- Il servizio Azure Kubernetes si riserva il diritto di interrompere le finestre di manutenzione pianificata per operazioni di manutenzione non pianificate e reattive urgenti o critiche. Queste operazioni di manutenzione possono essere eseguite anche durante i
notAllowedTime
periodi onotAllowedDates
definiti nella configurazione. - L'esecuzione di operazioni di manutenzione viene considerata solo un'operazione con massimo impegno e non è garantito che si verifichi all'interno di una finestra specificata.
Configurazioni della pianificazione della manutenzione pianificata
Sono disponibili tre tipi di configurazione della pianificazione della manutenzione: default
, aksManagedAutoUpgradeSchedule
e aksManagedNodeOSUpgradeSchedule
.
default
è una configurazione di base usata per controllare le versioni del servizio Azure Kubernetes. Le versioni possono richiedere fino a due settimane per l'implementazione in tutte le aree dal momento iniziale della spedizione a causa di Procedure di distribuzione di Azure Cassaforte( SDP). Sceglieredefault
di pianificare questi aggiornamenti in modo che sia meno problematico per l'utente. È possibile monitorare lo stato di una versione continuativa del servizio Azure Kubernetes in base all'area con lo strumento di rilevamento delle versioni settimanali.aksManagedAutoUpgradeSchedule
controlla quando eseguire gli aggiornamenti del cluster pianificati dal canale di aggiornamento automatico designato. È possibile configurare impostazioni di frequenza e ricorrenza più controllate con questa configurazione rispetto alladefault
configurazione. Per altre informazioni sull'aggiornamento automatico del cluster, vedere Aggiornare automaticamente un cluster del servizio Azure Kubernetes.aksManagedNodeOSUpgradeSchedule
controlla quando eseguire l'applicazione di patch di sicurezza del sistema operativo del nodo pianificata dal canale di aggiornamento automatico del sistema operativo del nodo. È possibile configurare impostazioni di frequenza e ricorrenza più controllate con questa configurazione rispetto alladefault
configurazione. Per altre informazioni sul canale di aggiornamento automatico del sistema operativo del nodo, vedere Applicare automaticamente patch e aggiornare le immagini dei nodi del cluster del servizio Azure Kubernetes
È consigliabile usare aksManagedAutoUpgradeSchedule
per tutti gli scenari di aggiornamento del cluster e aksManagedNodeOSUpgradeSchedule
per tutti gli scenari di applicazione di patch alla sicurezza del sistema operativo del nodo. L'opzione default
è destinata esclusivamente alle versioni settimanali del servizio Azure Kubernetes. È possibile impostare la configurazione default
sulle configurazioni aksManagedAutoUpgradeSchedule
o aksManagedNodeOSUpgradeSchedule
usando il comando az aks maintenanceconfiguration update
.
Creazione di una finestra di manutenzione
Nota
Quando si usa l'aggiornamento automatico, per garantire una funzionalità appropriata, usare una finestra di manutenzione con una durata di quattro ore o più.
Le finestre di manutenzione pianificata sono specificate nell'ora UTC (Coordinated Universal Time).
Una finestra di manutenzione default
presenta le proprietà seguenti:
Nome | Descrizione | Default value |
---|---|---|
timeInWeek |
In una configurazione default questa proprietà contiene i valori day e hourSlots che definiscono una finestra di manutenzione |
N/D |
timeInWeek.day |
Giorno della settimana per eseguire la manutenzione in una configurazione di default |
N/D |
timeInWeek.hourSlots |
Elenco di intervalli di tempo a lungo termine per eseguire la manutenzione in un determinato giorno in una configurazione di default |
N/D |
notAllowedTime |
Specifica un intervallo di date in cui la manutenzione non può essere eseguita, determinata dalle proprietà figlio start e end . Applicabile solo quando si crea la finestra di manutenzione usando un file di configurazione |
N/D |
Una finestra di manutenzione aksManagedAutoUpgradeSchedule
o aksManagedNodeOSUpgradeSchedule
presenta le proprietà seguenti:
Nome | Descrizione | Default value |
---|---|---|
utcOffset |
Usato per determinare il fuso orario per la manutenzione del cluster | +00:00 |
startDate |
Data di attivazione della finestra di manutenzione | Data corrente in fase di creazione |
startTime |
Ora di inizio della manutenzione, in base al fuso orario determinato da utcOffset |
N/D |
schedule |
Utilizzato per determinare la frequenza. Sono disponibili tre tipi: Weekly , AbsoluteMonthly e RelativeMonthly |
N/D |
intervalDays |
Intervallo in giorni per le esecuzioni di manutenzione. Applicabile solo a aksManagedNodeOSUpgradeSchedule |
N/D |
intervalWeeks |
Intervallo di settimane per le esecuzioni di manutenzione | N/D |
intervalMonths |
Intervallo in mesi per le esecuzioni di manutenzione | N/D |
dayOfWeek |
Giorno specificato della settimana per l'inizio della manutenzione | N/D |
durationHours |
Durata della finestra per l'esecuzione della manutenzione | N/D |
notAllowedDates |
Specifica un intervallo di date che la manutenzione non può essere eseguita, determinata dalle proprietà figlio start e end . Applicabile solo quando si crea la finestra di manutenzione usando un file di configurazione |
N/D |
Informazioni sui tipi di pianificazione
Sono disponibili quattro tipi di pianificazione: Daily
, Weekly
, AbsoluteMonthly
e RelativeMonthly
. Questi tipi di pianificazione sono applicabili solo alle configurazioni di aksManagedClusterAutoUpgradeSchedule
e aksManagedNodeOSUpgradeSchedule
. Daily
pianificazioni sono applicabili solo ai tipi di aksManagedNodeOSUpgradeSchedule
.
Nota
Tutti i campi visualizzati per ogni rispettivo tipo di pianificazione sono obbligatori.
Pianificazione giornaliera
Nota
Le pianificazioni giornaliere sono applicabili solo ai tipi di configurazione aksManagedNodeOSUpgradeSchedule
.
Una pianificazione Daily
può essere simile a "ogni tre giorni":
"schedule": {
"daily": {
"intervalDays": 3
}
}
Pianificazione settimanale
Una pianificazione Weekly
potrebbe essere simile a "ogni due settimane il venerdì":
"schedule": {
"weekly": {
"intervalWeeks": 2,
"dayOfWeek": "Friday"
}
}
Pianificazione di AbsoluteMonthly
Una pianificazione AbsoluteMonthly
può essere simile a "ogni tre mesi, il primo giorno del mese":
"schedule": {
"absoluteMonthly": {
"intervalMonths": 3,
"dayOfMonth": 1
}
}
Pianificazione relativeMonthly
Una pianificazione RelativeMonthly
può essere simile a "ogni due mesi, l'ultimo lunedì":
"schedule": {
"relativeMonthly": {
"intervalMonths": 2,
"dayOfWeek": "Monday",
"weekIndex": "Last"
}
}
I valori validi per weekIndex
includono First
, Second
Third
, Fourth
, e Last
.
Aggiungere una configurazione della finestra di manutenzione
Aggiungere una configurazione della finestra di manutenzione a un cluster del servizio Azure Kubernetes usando il
az aks maintenanceconfiguration add
comando .Il primo esempio aggiunge una nuova
default
configurazione che pianifica l'esecuzione della manutenzione dalle 13:00 alle 2:00 ogni lunedì. Il secondo esempio aggiunge una nuovaaksManagedAutoUpgradeSchedule
configurazione che pianifica la manutenzione per l'esecuzione ogni terzo venerdì tra le 12:00 e le 8:00 nelUTC+5:30
fuso orario.# 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
Quando si usa un
default
tipo di configurazione, è possibile omettere il--start-time
parametro per consentire la manutenzione in qualsiasi momento durante un giorno.
Aggiornare una finestra di manutenzione esistente
Aggiornare una configurazione di manutenzione esistente usando il
az aks maintenanceconfiguration update
comando .L'esempio seguente aggiorna la configurazione per pianificare l'esecuzione
default
della manutenzione dalle 2:00 alle 3:00 ogni lunedì.az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2
Elencare tutte le finestre di manutenzione in un cluster esistente
Elencare le finestre di configurazione di manutenzione correnti nel cluster del servizio Azure Kubernetes usando il az aks maintenanceconfiguration list
comando .
az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster
Visualizzare una finestra di configurazione di manutenzione specifica in un cluster esistente
Visualizzare una finestra di configurazione di manutenzione specifica nel cluster del servizio Azure Kubernetes usando il az aks maintenanceconfiguration show
comando con il --name
parametro .
az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule
L'output di esempio seguente mostra la finestra di manutenzione per 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
}
Eliminare una finestra di configurazione della manutenzione in un cluster esistente
Eliminare una finestra di configurazione di manutenzione nel cluster del servizio Azure Kubernetes usando il
az aks maintenanceconfiguration delete
comando .Nell'esempio seguente viene eliminata la configurazione di
autoUpgradeSchedule
manutenzione.az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule
Domande frequenti
Come è possibile controllare le configurazioni di manutenzione esistenti nel cluster?
Usare il comando
az aks maintenanceconfiguration show
.La manutenzione reattiva e non pianificata può verificarsi anche durante i periodi
notAllowedTime
onotAllowedDates
?Sì, il servizio Azure Kubernetes si riserva il diritto di interrompere queste finestre per operazioni di manutenzione non pianificate e reattive urgenti o critiche.
Come è possibile stabilire se si è verificato un evento di manutenzione?
Per le versioni, controllare l'area del cluster e cercare le informazioni sulla versione in versioni settimanali e verificare se corrisponde o meno alla pianificazione della manutenzione. Per visualizzare lo stato degli aggiornamenti automatici, cercare i log attività nel cluster. È anche possibile cercare eventi correlati all'aggiornamento specifici come indicato in Aggiornare un cluster del servizio Azure Kubernetes. Il servizio Azure Kubernetes genera anche eventi di Griglia di eventi correlati all'aggiornamento. Per altre informazioni, vedere servizio Azure Kubernetes come origine di Griglia di eventi.
È possibile usare più configurazioni di manutenzione contemporaneamente?
Sì, è possibile eseguire tutte e tre le configurazioni, ad esempio
default
,aksManagedAutoUpgradeSchedule
,aksManagedNodeOSUpgradeSchedule
contemporaneamente. Nel caso in cui le finestre si sovrappongano, il servizio Azure Kubernetes decide l'ordine di esecuzione.È stata configurata una finestra di manutenzione, ma l'aggiornamento non è stato eseguito, perché?
L'aggiornamento automatico del servizio Azure Kubernetes richiede una certa quantità di tempo per prendere in considerazione la finestra di manutenzione. È consigliabile far trascorrere almeno 24 ore tra la creazione o l'aggiornamento di una configurazione di manutenzione e l'ora di inizio pianificata.
Assicurarsi anche che il cluster venga avviato all'avvio della finestra di manutenzione pianificata. Se il cluster viene arrestato, il relativo piano di controllo viene deallocato e non è possibile eseguire alcuna operazione.
L'aggiornamento automatico del servizio Azure Kubernetes non ha aggiornato tutti i pool di agenti o uno dei pool è stato aggiornato all'esterno della finestra di manutenzione?
Se un pool di agenti non riesce ad eseguire l'aggiornamento(ad esempio, a causa di budget di interruzione pod che impediscono l'aggiornamento) o si trova in uno stato non riuscito, potrebbe essere aggiornato in un secondo momento all'esterno della finestra di manutenzione. Questo scenario è denominato "aggiornamento di recupero" ed evita di consentire ai pool di agenti con una versione diversa rispetto al piano di controllo del servizio Azure Kubernetes.
Esistono procedure consigliate per le configurazioni di manutenzione?
È consigliabile impostare la pianificazione degli aggiornamenti della sicurezza del sistema operativo del nodo su una cadenza settimanale se si usa il canale
NodeImage
, perché viene fornita una nuova immagine del nodo ogni settimana e ogni giorno se si sceglie di ricevere aggiornamenti giornalieri della sicurezza del canaleSecurityPatch
. Impostare la pianificazione dell’aggiornamento automatico su una cadenza mensile per rimanere al di sopra dei criteri di supporto di Kbernetes N-2. Per una descrizione dettagliata delle procedure consigliate per l'aggiornamento e altre considerazioni, vedi Linee guida per l'aggiornamento e le patch del servizio Azure Kubernetes.
Passaggi successivi
- Per iniziare a aggiornare il cluster del servizio Azure Kubernetes, vedere Aggiornare un cluster del servizio Azure Kubernetes