Använda planerat underhåll för att schemalägga och kontrollera uppgraderingar för ditt Azure Kubernetes Service-kluster
Den här artikeln visar hur du använder planerat underhåll för att schemalägga och kontrollera kluster- och nodavbildningsuppgraderingar i Azure Kubernetes Service (AKS).
Regelbundet underhåll utförs automatiskt på AKS-klustret. Det finns två typer av underhållsåtgärder:
- AKS-initierat underhåll omfattar de veckovisa versioner som AKS utför för att hålla klustret uppdaterat med de senaste funktionerna och korrigeringarna.
- Användarinitierat underhåll omfattar automatiska klusteruppgraderingar och automatiska säkerhetsuppdateringar för nodoperativsystem (OS).
När du använder funktionen för planerat underhåll i AKS kan du köra båda typerna av underhåll i en takt som du väljer för att minimera påverkan på arbetsbelastningen. Du kan använda planerat underhåll för att schemalägga tidpunkten för automatiska uppgraderingar, men om du aktiverar eller inaktiverar planerat underhåll aktiveras eller inaktiveras inte automatiska uppgraderingar.
- Den här artikeln förutsätter att du har ett befintligt AKS-kluster. Om du inte har något AKS-kluster kan du läsa Skapa ett AKS-kluster.
- Om du använder Azure CLI uppgraderar du till den senaste versionen med hjälp
az upgrade
av kommandot .
När du använder planerat underhåll gäller följande överväganden:
- AKS förbehåller sig rätten att bryta planerade underhållsperioder för oplanerade, reaktiva underhållsåtgärder som är brådskande eller kritiska. Dessa underhållsåtgärder kan till och med köras under de
notAllowedTime
perioder ellernotAllowedDates
perioder som definierats i konfigurationen. - Underhållsåtgärder anses endast vara bästa möjliga och är inte garanterade att utföras inom ett angivet fönster.
Det finns tre schemakonfigurationstyper för planerat underhåll:
default
är en grundläggande konfiguration för att kontrollera AKS-versioner. Det kan ta upp till två veckor att distribuera versionerna till alla regioner från den första leveranstiden på grund av säkra distributionsmetoder i Azure.Välj
default
att schemalägga dessa uppdateringar på ett sätt som är minst störande för dig. Du kan övervaka statusen för en pågående AKS-version efter region med den veckovisa versionsspåraren.aksManagedAutoUpgradeSchedule
styr när du ska utföra klusteruppgraderingar som schemalagts av din avsedda kanal för automatisk uppgradering. Du kan konfigurera mer noggrant kontrollerade inställningar för kadens och upprepning med den här konfigurationen jämfört med konfigurationendefault
. Mer information om automatisk uppgradering av kluster finns i Uppgradera automatiskt ett Azure Kubernetes Service-kluster.aksManagedNodeOSUpgradeSchedule
styr när du ska utföra nod-operativsystemets säkerhetskorrigering som schemalagts av nodens kanal för automatisk uppgradering av operativsystemet. Du kan konfigurera mer noggrant kontrollerade inställningar för kadens och upprepning med den här konfigurationen jämfört med konfigurationendefault
. Mer information om automatiska uppgraderingskanaler för nodoperativsystem finns i Korrigera och uppdatera AKS-klusternodavbildningar automatiskt.
Vi rekommenderar att du använder aksManagedAutoUpgradeSchedule
för alla scenarier för klusteruppgradering och aksManagedNodeOSUpgradeSchedule
för alla scenarier för säkerhetskorrigering av nodoperativsystem.
Alternativet default
är endast avsett för veckoversioner av AKS. Du kan växla konfigurationen default
till konfigurationen aksManagedAutoUpgradeSchedule
eller aksManagedNodeOSUpgradeSchedule
med hjälp az aks maintenanceconfiguration update
av kommandot .
Anteckning
När du använder automatisk uppgradering använder du ett underhållsperiod med en varaktighet på fyra timmar eller mer för att säkerställa rätt funktioner.
Fönster för planerat underhåll anges i UTC (Coordinated Universal Time).
Ett default
underhållsperiod har följande äldre egenskaper (rekommenderas inte längre):
Name | Beskrivning | Standardvärde |
---|---|---|
timeInWeek |
I en default konfiguration innehåller den här egenskapen värdena day och hourSlots som definierar ett underhållsperiod. |
Inte tillämpligt |
timeInWeek.day |
Veckodagen för underhåll i en default konfiguration. |
Inte tillämpligt |
timeInWeek.hourSlots |
En lista över timslånga tidsintervall för underhåll en viss dag i en default konfiguration. |
Inte tillämpligt |
notAllowedTime |
Ett intervall med datum som underhåll inte kan köras, bestäms av start och end underordnade egenskaper. Den här egenskapen gäller endast när du skapar underhållsfönstret med hjälp av en konfigurationsfil. |
Inte tillämpligt |
Anteckning
Från API-versionen 2023-05-01 och senare använder du egenskaperna nedan för default
konfiguration.
En aksManagedAutoUpgradeSchedule
eller aksManagedNodeOSUpgradeSchedule
underhållsperiod och default
konfiguration från 2023-05-01 API-versionen och framåt har följande egenskaper:
Name | Beskrivning | Standardvärde |
---|---|---|
utcOffset |
Tidszonen för klusterunderhåll. | +00:00 |
startDate |
Det datum då underhållsperioden börjar gälla. | Aktuellt datum vid skapandetillfället |
startTime |
Tiden för underhåll att börja, baserat på tidszonen som bestäms av utcOffset . |
Inte tillämpligt |
schedule |
Uppgraderingsfrekvensen. Det finns tre typer: Weekly , AbsoluteMonthly och RelativeMonthly . |
Inte tillämpligt |
intervalDays |
Intervallet i dagar för underhåll körs. Det gäller endast för aksManagedNodeOSUpgradeSchedule . |
Inte tillämpligt |
intervalWeeks |
Intervallet i veckor för underhåll körs. | Inte tillämpligt |
intervalMonths |
Intervallet i månader för underhåll körs. | Inte tillämpligt |
dayOfWeek |
Den angivna veckodagen för att underhåll ska påbörjas. | Inte tillämpligt |
durationHours |
Varaktigheten för fönstret för underhåll som ska köras. | Inte tillämpligt |
notAllowedDates |
Ett intervall med datum som underhåll inte kan köras, bestäms av start och end underordnade egenskaper. Det gäller endast när du skapar underhållsfönstret med hjälp av en konfigurationsfil. |
Inte tillämpligt |
Det finns fyra tillgängliga schematyper: Daily
, Weekly
, AbsoluteMonthly
och RelativeMonthly
.
Weekly
, AbsoluteMonthly
, och RelativeMonthly
schematyper gäller endast för aksManagedClusterAutoUpgradeSchedule
och aksManagedNodeOSUpgradeSchedule
konfigurationer. Daily
scheman gäller endast för aksManagedNodeOSUpgradeSchedule
konfigurationer.
Alla fält som visas för varje schematyp krävs.
Ett Daily
schema kan se ut som "var tredje dag":
"schedule": {
"daily": {
"intervalDays": 3
}
}
Ett Weekly
schema kan se ut som "varannan vecka på fredag":
"schedule": {
"weekly": {
"intervalWeeks": 2,
"dayOfWeek": "Friday"
}
}
Ett AbsoluteMonthly
schema kan se ut som "var tredje månad den första dagen i månaden":
"schedule": {
"absoluteMonthly": {
"intervalMonths": 3,
"dayOfMonth": 1
}
}
Ett RelativeMonthly
schema kan se ut som "varannan månad den senaste måndagen":
"schedule": {
"relativeMonthly": {
"intervalMonths": 2,
"dayOfWeek": "Monday",
"weekIndex": "Last"
}
}
Giltiga värden för weekIndex
inkluderar First
, Second
, Third
, Fourth
och Last
.
Lägg till en underhållsfönsterkonfiguration i ett AKS-kluster med hjälp az aks maintenanceconfiguration add
av kommandot .
Det första exemplet lägger till en ny default
konfiguration som schemalägger underhåll så att det körs från 01:00 till 02:00 varje måndag. Det andra exemplet lägger till en ny aksManagedAutoUpgradeSchedule
konfiguration som schemalägger underhåll så att det körs var tredje fredag mellan 12:00 och 08:00 i tidszonen UTC+5:30
.
# 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
Anteckning
När du använder en default
konfigurationstyp kan du utelämna parametern --start-time
för att tillåta underhåll när som helst under en dag.
Uppdatera en befintlig underhållskonfiguration med hjälp az aks maintenanceconfiguration update
av kommandot .
I följande exempel uppdateras konfigurationen default
för att schemalägga underhåll som ska köras från 02:00 till 03:00 varje måndag:
az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2
Visa en lista över de aktuella underhållskonfigurationsfönstren az aks maintenanceconfiguration list
i AKS-klustret med hjälp av kommandot :
az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster
Visa ett specifikt underhållskonfigurationsfönster i AKS-klustret med hjälp az aks maintenanceconfiguration show
av kommandot med parametern --name
:
az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule
Följande exempelutdata visar underhållsfönstret för 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
}
Ta bort ett underhållskonfigurationsfönster i AKS-klustret med hjälp az aks maintenanceconfiguration delete
av kommandot .
I följande exempel tas underhållskonfigurationen autoUpgradeSchedule
bort:
az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule
Hur kan jag kontrollera de befintliga underhållskonfigurationerna i mitt kluster?
Använd kommandot
az aks maintenanceconfiguration show
.Kan reaktivt, oplanerat underhåll även ske under
notAllowedTime
perioder ellernotAllowedDates
under perioder?Ja. AKS förbehåller sig rätten att bryta dessa fönster för oplanerade, reaktiva underhållsåtgärder som är brådskande eller kritiska.
Hur vet jag om en underhållshändelse har inträffat?
För versioner kontrollerar du klustrets region och söker efter information i veckoversioner för att se om den matchar ditt underhållsschema. Om du vill visa status för dina automatiska uppgraderingar letar du upp aktivitetsloggar i klustret. Du kan också söka efter specifika uppgraderingsrelaterade händelser, som du nämnde i Uppgradera ett AKS-kluster.
AKS genererar även uppgraderingsrelaterade Azure Event Grid-händelser. Mer information finns i AKS som en Event Grid-källa.
Kan jag använda mer än en underhållskonfiguration samtidigt?
Ja, du kan köra alla tre konfigurationerna samtidigt:
default
,aksManagedAutoUpgradeSchedule
ochaksManagedNodeOSUpgradeSchedule
. Om fönstren överlappar bestämmer AKS körningsordningen.Jag har konfigurerat ett underhållsperiod, men uppgraderingen skedde inte. Varför?
Automatisk uppgradering av AKS behöver en viss tid, vanligtvis inte mer än 15 minuter, för att ta hänsyn till underhållsperioden. Vi rekommenderar minst 15 minuter mellan skapandet eller uppdateringen av en underhållskonfiguration och den schemalagda starttiden.
Kontrollera också att klustret startas när det planerade underhållsfönstret startar. Om klustret stoppas frigörs dess kontrollplan och inga åtgärder kan utföras.
Varför uppgraderades en av mina agentpooler utanför underhållsfönstret?
Om en agentpool inte uppgraderas (till exempel på grund av att budgeten för poddstörningar förhindrade den) kan den uppgraderas senare, utanför underhållsfönstret. Det här scenariot kallas för en "catch-up upgrade". Det förhindrar att agentpooler uppgraderas med en annan version än AKS-kontrollplanet.
En annan orsak till att en agentpool oväntat kan uppgraderas är när det inte finns någon definierad underhållskonfiguration eller om den har tagits bort. I så fall uppgraderas ett kluster med automatisk uppgradering men utan underhållskonfiguration vid slumpmässiga tidpunkter (återställningsschema), vilket kan vara en oönstrad tidsram.
Finns det några metodtips för underhållskonfigurationerna?
Vi rekommenderar att du ställer in schemat för nod-OS-säkerhetsuppdateringar till en veckovis takt om du använder
NodeImage
kanalen, eftersom en ny nodavbildning levereras varje vecka. Du kan också väljaSecurityPatch
att kanalen ska få dagliga säkerhetsuppdateringar.Ange schemat för automatisk uppgradering till en månatlig takt för att hålla dig uppdaterad med Kubernetes N-2-supportprincipen.
En detaljerad beskrivning av metodtips för uppgradering och andra överväganden finns i AKS-korrigerings- och uppgraderingsvägledning.
Kan jag konfigurera alla mina kluster i en enda prenumeration så att de använder samma underhållskonfiguration?
Vi rekommenderar inte att du använder samma underhållskonfiguration för flera kluster i en enda prenumeration, eftersom det kan leda till ARM-begränsningsfel som gör att klusteruppgraderingar misslyckas. I stället rekommenderar vi att du svindlar underhållsperioderna för varje kluster för att undvika dessa fel.
- Information om hur du kommer igång med att uppgradera AKS-klustret finns i Uppgraderingsalternativ för AKS-kluster.
Feedback om Azure Kubernetes Service
Azure Kubernetes Service är ett öppen källkod projekt. Välj en länk för att ge feedback: