Az Azure Kubernetes Service (AKS) fürtfrissítéseinek leállítása automatikusan api-kompatibilitástörő változások esetén
Ez a cikk bemutatja, hogyan állíthatja le automatikusan az Azure Kubernetes Service (AKS) fürtfrissítéseit az API kompatibilitástörő változásai esetén.
Áttekintés
Ha egy támogatott Kubernetes-verzióban szeretne maradni, évente legalább egyszer frissítenie kell a fürtöt, és fel kell készülnie az összes lehetséges fennakadásra. Ezek a fennakadások közé tartoznak az API-kompatibilitástörő változások, az elavulások és a függőségek, például a Helm és a Container Storage Interface (CSI) által okozott problémák. Nehéz lehet előre látni ezeket a fennakadásokat, és kritikus számítási feladatokat migrálni állásidő nélkül.
Az AKS-fürtöt úgy konfigurálhatja, hogy automatikusan leállítsák a frissítési műveleteket, amelyek egy kisebb verzióváltozásból állnak, elavult API-kkal, és figyelmeztetik a problémára. Ez a funkció segít elkerülni a váratlan fennakadásokat, és időt biztosít az elavult API-k kezelésére a frissítés megkezdése előtt.
Mielőtt elkezdené
Mielőtt hozzákezdene, győződjön meg arról, hogy megfelel a következő előfeltételeknek:
- A frissítési művelet a fürtvezérlő sík Kubernetes-alverziójának módosítása.
- A Kubernetes 1.26-os vagy újabb verziójára frissít.
- A frissített célverzió elavult API-jainak utoljára látott használatának a frissítési művelet előtt 12 órán belül kell történnie. Az AKS óránként rögzíti a használatot, így az elavult API-k egy órán belüli használata nem garantáltan megjelenik az észlelésben.
Leállított frissítési műveletek enyhítése
Ha megfelel az előfeltételeknek, próbálkozzon a frissítéssel, és az alábbi példa hibaüzenetéhez hasonló hibaüzenetet kapjon:
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"
})
A probléma megoldására két lehetősége van: eltávolíthatja az elavult API-k használatát (ajánlott), vagy megkerülheti az érvényesítést az API-módosítások figyelmen kívül hagyásához.
Elavult API-k használatának eltávolítása (ajánlott)
Az Azure Portalon keresse meg a fürterőforrást, és válassza a Problémák diagnosztizálása és megoldása lehetőséget
Válassza a Kubernetes API-elavulások létrehozását, frissítését, törlését és méretezését>.
Várjon 12 órát attól az időponttól kezdve, amikor az utolsó elavult API-használatot látták. A csak olvasható igék nem tartoznak az elavult API-használatba, nevezetesen a Get/List/Watch szolgáltatásba.( A korábbi API-használatot is ellenőrizheti a Container Insights engedélyezésével és a Kube auditnaplóinak feltárásával.)
Próbálkozzon újra a fürtfrissítéssel.
Az érvényesítés megkerülése az API-módosítások figyelmen kívül hagyásához
Feljegyzés
Ehhez a módszerhez az Azure CLI 2.57-es vagy újabb verzióját kell használnia. Ha telepítve van az előzetes verziójú CLI-bővítmény, frissítenie kell a verzióra vagy újabb verzióra 3.0.0b10
. Ez a módszer nem ajánlott, mivel előfordulhat, hogy a célzott Kubernetes-verzió elavult API-i nem működnek hosszú távon. Javasoljuk, hogy a frissítés befejeződése után a lehető leghamarabb távolítsa el őket.
Az érvényesítés megkerülésével figyelmen kívül hagyhatja az API kompatibilitástörő módosításait, és meghívhat egy frissítést. Adja meg a
enable-force-upgrade
jelölőt, és állítsa be aupgrade-override-until
tulajdonságot annak az ablaknak a végéhez, amely során az érvényesítést megkerüli. Ha nincs beállítva érték, az alapértelmezett érték az aktuális időponttól számított három nap. A megadott dátumnak és időnek a jövőben kell lennie.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
Feljegyzés
Z
a nulla UTC/GMT eltolás zónakijelölője, más néven "Zulu" idő. Ez a példa az ablak végét GMT értékre13:00:00
állítja. További információ: Kombinált dátum- és időábrázolások.
Következő lépések
Ez a cikk bemutatja, hogyan állíthatja le automatikusan az AKS-fürtfrissítéseket az API kompatibilitástörő változásaival kapcsolatban. Az AKS-fürtök frissítési lehetőségeiről az Azure Kubernetes Service-fürtök frissítési beállításai című témakörben olvashat bővebben.
Azure Kubernetes Service