Automatické zastavení upgradů clusteru Azure Kubernetes Service (AKS) u zásadních změn rozhraní API
V tomto článku se dozvíte, jak zastavit automatické upgrady clusteru Azure Kubernetes Service (AKS) u zásadních změn rozhraní API.
Přehled
Pokud chcete zůstat v podporované verzi Kubernetes, musíte cluster upgradovat alespoň jednou za rok a připravit se na všechny možné přerušení. Mezi tyto přerušení patří ty, které způsobují zásadní změny rozhraní API, vyřazení a závislosti, jako je Helm a Rozhraní služby Container Storage Interface (CSI). Může být obtížné předvídat tyto přerušení a migrovat kritické úlohy, aniž by došlo k výpadkům.
Cluster AKS můžete nakonfigurovat tak, aby automaticky zastavil operace upgradu, které se skládají ze změny podverze, pomocí zastaralých rozhraní API a upozorňovaly vás na problém. Tato funkce vám pomůže vyhnout se neočekávaným přerušením a před pokračováním v upgradu můžete řešit zastaralá rozhraní API.
Než začnete
Než začnete, ujistěte se, že splňujete následující požadavky:
- Operace upgradu je změna podverze Kubernetes pro řídicí rovinu clusteru.
- Verze Kubernetes, na kterou upgradujete, je 1.26 nebo novější.
- K poslednímu použití zastaralých rozhraní API pro cílovou verzi, na kterou upgradujete, musí do 12 hodin před operací upgradu dojít. AKS zaznamenává využití každou hodinu, takže jakékoli využití zastaralých rozhraní API během jedné hodiny není zaručeno, že se v detekci objeví.
Zmírnění zastavených operací upgradu
Pokud splňujete požadavky, pokuste se o upgrade a zobrazí se chybová zpráva podobná následující ukázkové chybové zprávě:
Bad Request({
"code": "ValidationError",
"message": "Control Plane upgrade is blocked due to recent usage of a Kubernetes API deprecated in the specified version. Please refer to https://kubernetes.io/docs/reference/using-api/deprecation-guide to migrate the usage. To bypass this error, set enable-force-upgrade in upgradeSettings.overrideSettings. Bypassing this error without migrating usage will result in the deprecated Kubernetes API calls failing. Usage details: 1 error occurred:\n\t* usage has been detected on API flowcontrol.apiserver.k8s.io.prioritylevelconfigurations.v1beta1, and was recently seen at: 2023-03-23 20:57:18 +0000 UTC, which will be removed in 1.26\n\n",
"subcode": "UpgradeBlockedOnDeprecatedAPIUsage"
})
Máte dvě možnosti, jak tento problém zmírnit: můžete odebrat použití zastaralých rozhraní API (doporučeno) nebo obejít ověření a ignorovat změny rozhraní API.
Odebrání využití zastaralých rozhraní API (doporučeno)
Na webu Azure Portal přejděte k prostředku clusteru a vyberte Diagnostikovat a řešit problémy.
Vyberte Vytvoření, upgrade, odstranění a škálování>vyřazení rozhraní API Kubernetes.
Počkejte 12 hodin od doby, kdy se zobrazilo poslední zastaralé využití rozhraní API. Příkazy jen pro čtení jsou vyloučené z zastaralého použití rozhraní API, konkrétně Get/List/Watch.( Můžete také zkontrolovat minulé využití rozhraní API povolením přehledů kontejnerů a prozkoumáním protokolů auditu kube.)
Zkuste upgrade clusteru zopakovat.
Obejít ověření a ignorovat změny rozhraní API
Poznámka:
Tato metoda vyžaduje použití Azure CLI verze 2.57 nebo novější. Pokud máte nainstalované rozšíření rozhraní příkazového řádku preview, musíte ho aktualizovat na verzi 3.0.0b10
nebo novější. Tato metoda se nedoporučuje, protože zastaralá rozhraní API v cílové verzi Kubernetes nemusí fungovat dlouhodobě. Po dokončení upgradu doporučujeme je co nejdříve odebrat.
Obejít ověření, abyste ignorovali změny způsobující chyby rozhraní API a vyvolali upgrade.
enable-force-upgrade
Zadejte příznak a nastavteupgrade-override-until
vlastnost tak, aby definovala konec okna, během kterého se ověření vynechá. Pokud není nastavená žádná hodnota, nastaví se okno na tři dny od aktuálního času. Datum a čas, které zadáte, musí být v budoucnu.az aks upgrade --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --kubernetes-version $KUBERNETES_VERSION --enable-force-upgrade --upgrade-override-until 2023-10-01T13:00:00Z
Poznámka:
Z
je návrhátor zóny pro nulový posun UTC/GMT, označovaný také jako čas Zulu. Tento příklad nastaví konec okna na13:00:00
GMT. Další informace naleznete v tématu Kombinované vyjádření data a času.
Další kroky
Tento článek vám ukázal, jak automaticky zastavit upgrady clusteru AKS při zásadních změnách rozhraní API. Další informace o dalších možnostech upgradu pro clustery AKS najdete v tématu Možnosti upgradu pro clustery Azure Kubernetes Service (AKS).
Azure Kubernetes Service