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, AbsoluteMonthlya 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, AbsoluteMonthlya RelativeMonthly.

Weekly, AbsoluteMonthlya 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, , ThirdSecond, 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í nebo notAllowedDates 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, aksManagedAutoUpgradeSchedulea aksManagedNodeOSUpgradeSchedule. 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