Plánování a řízení upgradů clusteru Azure Kubernetes Service pomocí plánované údržby
V tomto článku se dozvíte, jak pomocí plánované údržby naplánovat a řídit upgrady imagí clusteru a uzlů ve službě Azure Kubernetes Service (AKS).
V clusteru AKS se provádí pravidelná údržba automaticky. Existují dva typy operací údržby:
- Údržba iniciovaná službou AKS zahrnuje týdenní vydání, které AKS provádí, aby byl cluster aktuální s nejnovějšími funkcemi a opravami.
- Údržba iniciovaná uživatelem zahrnuje automatické upgrady clusteru a automatické aktualizace zabezpečení operačního systému uzlu.
Pokud používáte funkci plánované údržby v AKS, můžete spustit oba typy údržby ve zvoleném tempu, abyste minimalizovali dopad úloh. Plánovanou údržbu můžete použít k naplánování načasování automatických upgradů, ale povolení nebo zakázání plánované údržby nepovolí nebo zakáže automatické upgrady.
Než začnete
- Tento článek předpokládá, že máte existující cluster AKS. Pokud cluster AKS nemáte, přečtěte si téma Vytvoření clusteru AKS.
- Pokud používáte Azure CLI, pomocí příkazu upgradujte na nejnovější verzi
az upgrade
.
Důležité informace
Při použití plánované údržby platí následující aspekty:
- AKS si vyhrazuje právo přerušit časové intervaly plánované údržby pro neplánované, reaktivní operace údržby, které jsou naléhavé nebo kritické. Tyto operace údržby můžou běžet i během
notAllowedTime
obdobínotAllowedDates
definovaných v konfiguraci. - Operace údržby se považují pouze za nejlepší úsilí a nejsou zaručeny, že se v zadaném okně objeví.
Plánování typů konfigurace pro plánovanou údržbu
Pro plánovanou údržbu jsou k dispozici tři typy konfigurace plánu:
default
je základní konfigurace pro řízení verzí AKS. Uvedení verzí do všech oblastí v počátečním čase expedice může trvat až dva týdny, a to z důvodu postupů bezpečného nasazení Azure.Zvolte
default
, že chcete tyto aktualizace naplánovat způsobem, který je pro vás nejméně rušivý. Stav probíhající verze AKS můžete monitorovat podle oblastí pomocí týdenního sledování vydaných verzí.aksManagedAutoUpgradeSchedule
určuje, kdy provést upgrady clusteru naplánované určeným kanálem automatického upgradu. Pomocí této konfigurace můžete v porovnánídefault
s konfigurací nakonfigurovat jemněji řízená nastavení četnosti a opakování. Další informace o automatickém upgradu clusteru najdete v tématu Automatické upgrade clusteru Azure Kubernetes Service.aksManagedNodeOSUpgradeSchedule
určuje, kdy provést opravy zabezpečení operačního systému uzlu naplánované kanálem automatického upgradu operačního systému uzlu. Pomocí této konfigurace můžete v porovnánídefault
s konfigurací nakonfigurovat jemněji řízená nastavení četnosti a opakování. Další informace o kanálech automatického upgradu operačního systému uzlu najdete v tématu Automatické opravy a aktualizace imagí uzlů clusteru AKS.
Doporučujeme použít aksManagedAutoUpgradeSchedule
pro všechny scénáře upgradu clusteru a aksManagedNodeOSUpgradeSchedule
pro všechny scénáře oprav zabezpečení operačního systému uzlu.
Tato default
možnost je určená výhradně pro týdenní verze AKS. Konfiguraci můžete přepnout default
na aksManagedAutoUpgradeSchedule
konfiguraci pomocí aksManagedNodeOSUpgradeSchedule
az aks maintenanceconfiguration update
příkazu.
Vytvoření časového období údržby
Poznámka:
Pokud používáte automatický upgrade, abyste zajistili správné funkce, použijte časové období údržby s dobou trvání čtyř hodin nebo více.
Časové intervaly plánované údržby jsou uvedeny ve standardu UTC (Coordinated Universal Time).
default
Časové období údržby má následující starší vlastnosti (už se nedoporučuje):
Název | Popis | Default value |
---|---|---|
timeInWeek |
default V konfiguraci tato vlastnost obsahuje day hodnotyhourSlots , které definují časové období údržby. |
Nelze použít |
timeInWeek.day |
Den v týdnu, kdy se má provést údržba v default konfiguraci. |
Nelze použít |
timeInWeek.hourSlots |
Seznam hodinových časových úseků pro provádění údržby v konkrétní den v default konfiguraci. |
Nelze použít |
notAllowedTime |
Rozsah dat, která údržba nemůže spustit, určená vlastnostmi a end podřízenými vlastnostmistart . Tato vlastnost se vztahuje pouze při vytváření časového období údržby pomocí konfiguračního souboru. |
Nelze použít |
Poznámka:
Od verze rozhraní API z 5. 5. 2023 dále použijte následující vlastnosti pro default
konfiguraci.
Verze aksManagedAutoUpgradeSchedule
rozhraní API 2023-05-01 nebo aksManagedNodeOSUpgradeSchedule
časové období default
údržby a konfigurace mají následující vlastnosti:
Název | Popis | Default value |
---|---|---|
utcOffset |
Časové pásmo pro údržbu clusteru. | +00:00 |
startDate |
Datum, kdy se časové období údržby začne projevit. | Aktuální datum v době vytvoření |
startTime |
Čas zahájení údržby na základě časového pásma určeného utcOffset . |
Nelze použít |
schedule |
Frekvence upgradu. K dispozici jsou tři typy: Weekly , AbsoluteMonthly a RelativeMonthly . |
Nelze použít |
intervalDays |
Interval ve dnech spuštění údržby. Platí pouze pro aksManagedNodeOSUpgradeSchedule . |
Nelze použít |
intervalWeeks |
Interval v týdnech pro běhy údržby. | Nelze použít |
intervalMonths |
Interval v měsících pro běhy údržby. | Nelze použít |
dayOfWeek |
Zadaný den v týdnu pro zahájení údržby. | Nelze použít |
durationHours |
Doba trvání časového období pro spuštění údržby. | Nelze použít |
notAllowedDates |
Rozsah dat, která údržba nemůže spustit, určená vlastnostmi a end podřízenými vlastnostmistart . Dá se použít jenom v případě, že vytváříte časové období údržby pomocí konfiguračního souboru. |
Nelze použít |
Typy plánů
K dispozici jsou čtyři dostupné typy plánů: Daily
, Weekly
, AbsoluteMonthly
a RelativeMonthly
.
Weekly
, AbsoluteMonthly
a RelativeMonthly
typy plánů se vztahují pouze na aksManagedClusterAutoUpgradeSchedule
a aksManagedNodeOSUpgradeSchedule
konfigurace. Daily
plány se vztahují pouze na aksManagedNodeOSUpgradeSchedule
konfigurace.
Všechna pole zobrazená pro každý typ plánu jsou povinná.
Plán Daily
může vypadat takto: "každých tři dny":
"schedule": {
"daily": {
"intervalDays": 3
}
}
Plán Weekly
může vypadat jako "každý dva týdny v pátek":
"schedule": {
"weekly": {
"intervalWeeks": 2,
"dayOfWeek": "Friday"
}
}
Plán AbsoluteMonthly
může vypadat takto: "každý tři měsíce v prvním dni v měsíci":
"schedule": {
"absoluteMonthly": {
"intervalMonths": 3,
"dayOfMonth": 1
}
}
Plán RelativeMonthly
může vypadat takto: "Každý dva měsíce v posledním pondělí":
"schedule": {
"relativeMonthly": {
"intervalMonths": 2,
"dayOfWeek": "Monday",
"weekIndex": "Last"
}
}
Platné hodnoty pro weekIndex
zahrnutí First
, , Third
Second
, Fourth
, a Last
.
Přidání konfigurace časového období údržby
Přidejte konfiguraci časového období údržby do clusteru AKS pomocí az aks maintenanceconfiguration add
příkazu.
První příklad přidá novou default
konfiguraci, která plánuje spuštění údržby od 1:00 do 2:00 do každou pondělí. Druhý příklad přidá novou aksManagedAutoUpgradeSchedule
konfiguraci, která plánuje spuštění údržby každý třetí pátek od 12:00 do 8:00 v časovém pásmu 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
Poznámka:
Pokud používáte default
typ konfigurace, můžete parametr vynechat --start-time
, aby umožňoval údržbu kdykoli během dne.
Aktualizace existujícího časového období údržby
Pomocí příkazu aktualizujte existující konfiguraci údržby az aks maintenanceconfiguration update
.
Následující příklad aktualizuje default
konfiguraci tak, aby plánoval údržbu tak, aby se spustila od 2:00 do 3:00 do každou pondělí:
az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2
Výpis všech časových období údržby v existujícím clusteru
Pomocí příkazu zobrazte seznam aktuálních časových intervalů konfigurace údržby v clusteru az aks maintenanceconfiguration list
AKS:
az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster
Zobrazení určitého časového období konfigurace údržby v existujícím clusteru
Pomocí příkazu s --name
parametrem az aks maintenanceconfiguration show
zobrazte v clusteru AKS konkrétní okno konfigurace údržby:
az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule
Následující příklad výstupu ukazuje časové období údržby pro 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
}
Odstranění časového období konfigurace údržby v existujícím clusteru
Pomocí příkazu odstraňte okno konfigurace údržby v clusteru az aks maintenanceconfiguration delete
AKS.
Následující příklad odstraní konfiguraci údržby autoUpgradeSchedule
:
az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule
Často kladené dotazy
Jak můžu zkontrolovat stávající konfigurace údržby v clusteru?
Použijte příkaz
az aks maintenanceconfiguration show
.Může k neplánované údržbě dojít i během
notAllowedTime
období nebonotAllowedDates
období?Ano. AKS si vyhrazuje právo přerušit tato okna pro neplánované a reaktivní operace údržby, které jsou naléhavé nebo kritické.
Jak zjistím, jestli došlo k události údržby?
V případě vydaných verzí zkontrolujte oblast clusteru a vyhledejte informace v týdenních verzích , abyste zjistili, jestli odpovídá vašemu plánu údržby. Pokud chcete zobrazit stav automatických upgradů, vyhledejte v clusteru protokoly aktivit. Můžete také vyhledat konkrétní události související s upgradem, jak je uvedeno v upgradu clusteru AKS.
AKS také generuje události azure Event Gridu související s upgradem. Další informace najdete v AKS jako zdroj Event Gridu.
Můžu současně použít více než jednu konfiguraci údržby?
Ano, můžete spustit všechny tři konfigurace současně:
default
,aksManagedAutoUpgradeSchedule
aaksManagedNodeOSUpgradeSchedule
. Pokud se okna překrývají, AKS rozhodne o spuštěném pořadí.Nakonfiguroval(a) jsem časové období údržby, ale upgrade se nestal. Proč?
Automatický upgrade AKS vyžaduje určitou dobu, obvykle ne více než 15 minut, aby bylo potřeba vzít v úvahu časové období údržby. Doporučujeme alespoň 15 minut mezi vytvořením nebo aktualizací konfigurace údržby a naplánovaným časem spuštění.
Ujistěte se také, že se cluster spustí při spuštění časového období plánované údržby. Pokud je cluster zastavený, jeho řídicí rovina se uvolní a není možné provádět žádné operace.
Proč se jeden z fondů agentů upgradoval mimo časové období údržby?
Pokud se fond agentů neupgraduje (například kvůli tomu, že mu zabránilo rozpočty přerušení podů), může se upgradovat později mimo časové období údržby. Tento scénář se nazývá "dohoněný upgrade". Zabraňuje tomu, aby se fondy agentů upgradovaly s jinou verzí než řídicí rovinou AKS.
Dalším důvodem, proč může být fond agentů neočekávaně upgradován, je, když není definovaná konfigurace údržby nebo pokud byl odstraněn. V takovém případě se cluster s automatickým upgradem , ale bez konfigurace údržby bude upgradován náhodně (záložní plán), což může být nechtěný časový rámec.
Existují nějaké osvědčené postupy pro konfigurace údržby?
Pokud používáte
NodeImage
kanál, doporučujeme nastavit plán aktualizací zabezpečení operačního systému uzlu na týdenní frekvenci, protože se každý týden odešle nová image uzlu. Můžete se také rozhodnout,SecurityPatch
že kanál bude dostávat denní aktualizace zabezpečení.Nastavte plán automatického upgradu na měsíční tempo, abyste zůstali aktuální se zásadami podpory Kubernetes N-2.
Podrobné informace o osvědčených postupech upgradu a dalších aspektech najdete v pokynech k opravám a upgradu AKS.
Můžu nakonfigurovat všechny clustery v jednom předplatném tak, aby používaly stejnou konfiguraci údržby?
Nedoporučujeme používat stejnou konfiguraci údržby pro více clusterů v jednom předplatném, protože to může vést k chybám omezování ARM, které způsobují selhání upgradů clusteru. Místo toho doporučujeme pro každý cluster vytvořit intervaly údržby, abyste se těmto chybám vyhnuli.
Další kroky
- Pokud chcete začít s upgradem clusteru AKS, přečtěte si téma Možnosti upgradu pro clustery AKS.
Azure Kubernetes Service