Megosztás a következőn keresztül:


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.

  1. 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

  2. Válassza a Kubernetes API-elavulások létrehozását, frissítését, törlését és méretezését>.

    Képernyőkép az Azure Portalról a

  3. 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.)

  4. 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.

  1. 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 a upgrade-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ékre 13: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.