Az Azure Kubernetes Szolgáltatás (AKS) fürtjeinek frissítési lehetőségei és ajánlásai

Ez a cikk technikai alapot ad az Azure Kubernetes Service (AKS) fürtfrissítéseihez, bemutatva a frissítési lehetőségeket és a gyakori forgatókönyveket. Az igényeire szabott részletes útmutatásért használja a cikk végén található forgatókönyvalapú navigációs útvonalakat.

A cikk tartalma

Ez a technikai referencia átfogó AKS-frissítési alapismereteket nyújt a következőkkel kapcsolatban:

  • Manuális és automatikus frissítési lehetőségek, és mikor érdemes használni azokat.
  • Gyakori frissítési forgatókönyvek adott javaslatokkal.
  • Optimalizálási technikák a teljesítmény és a minimális fennakadás érdekében.
  • Hibaelhárítási útmutató a kapacitással, a ürítési hibákkal és az időzítési problémákkal kapcsolatban.
  • Érvényesítési folyamatok és frissítés előtti ellenőrzések.

Ez a központ a legjobb megoldás a frissítési mechanika megértéséhez, a problémák elhárításához, a frissítési beállítások optimalizálásához és a technikai megvalósítás megismeréséhez.

További információkért tekintse meg az alábbi kapcsolódó cikkeket:


Ha még nem ismerkedik az AKS-frissítésekkel, kezdje a frissítési forgatókönyvek központjával , amely irányított, forgatókönyvalapú segítséget nyújt.

Gyors navigáció

Az Ön helyzete Ajánlott elérési út
A gyártási klaszter frissítésre szorul. Gyártási verziófrissítési stratégiák
Adatbázis-/állapotalapú számítási feladatok Állapotalapú munkaterhelés mintái
Első alkalommal történő frissítés vagy alapszintű fürt Alapszintű AKS-fürtfrissítés
Több környezet vagy flotta Frissítési forgatókönyvek központja
Csomópontkészletek vagy Windows-csomópontok Csomópontkészlet frissítései
Csak adott csomópontkészlet Egy csomópont csoport frissítése

Frissítési beállítások

Manuális frissítések végrehajtása

A manuális frissítések lehetővé teszik, hogy Ön szabályozza, mikor frissíti a fürt az új Kubernetes-verzióra. Ezek a frissítések egy adott verzió teszteléséhez vagy célzásához hasznosak:

Automatikus frissítések konfigurálása

Az automatikus frissítések a fürtöt egy támogatott verzióban és naprakészen tartják. A következő frissítésekkel automatizálhatja a beállításokat:

A több rendelkezésre állási zónára kiterjedő csomópontkészletek különleges szempontjai

Az AKS a lehetőségek szerinti legjobb zónaelosztást alkalmazza csomópontcsoportokban. Frissítési hullám esetén a virtuálisgép-méretezési csoportokban lévő zónák túlfeszültség-csomópontjai előre nem ismertek, ami ideiglenesen kiegyensúlyozatlan zónakonfigurációt okozhat. Az AKS a frissítés után törli a túlfeszültség-csomópontokat, és visszaállítja az eredeti zónaegyenleget.

A zónák egyensúlyának megőrzéséhez állítsa a túlfeszültséget három csomópont többszörösére. Az Azure helyileg redundáns tárolólemezeit használó állandó kötetjogcímek zónahatároltak, és állásidőt okozhatnak, ha a túlfeszültség-csomópontok másik zónában vannak. Használjon podkimaradási költségvetést (PDB) a magas rendelkezésre állás fenntartásához a kiürítések során.

A frissítések optimalizálása a teljesítmény javítása és a fennakadások minimalizálása érdekében

Kombinálja a tervezett karbantartási időszakot, a maximális túlfeszültséget, a PDB-t, a csomópontok ürítési időtúllépését és a csomópontok beáztatási idejét a sikeres, alacsony megszakítású frissítések valószínűségének növelése érdekében:

Bővítési beállítások További csomópontok használata Várható viselkedés
maxSurge=5, maxUnavailable=0 5 túlfeszültség-csomópont Öt csomópontot kiválasztottak a frissítéshez.
maxSurge=5, maxUnavailable=0 0-4 túlfeszültség-csomópont A frissítés sikertelen, mert nincs elegendő túlfeszültség-csomópont.
maxSurge=0, maxUnavailable=5 N/A A rendszer öt meglévő csomópontot ürít le a frissítéshez.

Megjegyzés:

A frissítés előtt ellenőrizze az API kompatibilitástörő módosításait, és tekintse át az AKS kibocsátási megjegyzéseit a fennakadások elkerülése érdekében.

A frissítési folyamat során használt érvényesítések

Az AKS elvégzi a frissítés előtti validálásokat a klaszter egészségének biztosítása érdekében.

  • API-kompatibilitástörő változások: Elavult API-kat észlel.
  • A Kubernetes frissítési verziója: Érvényes frissítési útvonalat biztosít.
  • PDB-konfiguráció: Ellenőrzi a helytelenül konfigurált PDB-ket (például maxUnavailable=0).
  • Kvóta: A túlfeszültség-csomópontok számára elegendő kvótát biztosít.
  • Alhálózat: Ellenőrzi a megfelelő IP-címeket.
  • Tanúsítványok/szolgáltatásnevek: Lejárt hitelesítő adatokat észlel.
  • Felügyelt erőforrás zárolásának ellenőrzése: Ellenőrzi a felügyelt fürt erőforráscsoportra alkalmazott erőforrás-zárolásokat.

Ezek az ellenőrzések segítenek minimalizálni a frissítési hibákat, és korán áttekinteni a problémákat.

Gyakori frissítési forgatókönyvek és javaslatok

1. forgatókönyv: Kapacitáskorlátozások

Ha a fürtöt termékszint vagy regionális kapacitás korlátozza, a frissítések sikertelenek lehetnek, ha a túlfeszültség-csomópontok nem építhetők ki. Ez a helyzet gyakori a speciális termékszintek (például GPU-csomópontok) vagy a korlátozott erőforrásokkal rendelkező régiókban. Az olyan hibák, mint SKUNotAvailable, AllocationFailed vagy OverconstrainedAllocationRequest, előfordulhatnak, ha a maxSurge értéke túl magas a rendelkezésre álló kapacitáshoz.

Javaslatok a megelőzésre vagy a megoldásra

2. forgatókönyv: Csomópont karbantartási hibák és PDB-k.

A frissítésekhez a csomópontok ürítése szükséges (podok eltávolítása). A lefolyók meghiúsulhatnak, ha a podok lassan leállnak, vagy szigorú podkimaradási költségvetések (PDB-k) blokkolják a podok kiürítését.

Példahiba:

Code: UpgradeFailed
Message: Drain node ... failed when evicting pod ... Cannot evict pod as it would violate the pod's disruption budget.

1. lehetőség: Frissítés kényszerítése (PDB megkerülése)

Figyelmeztetés

A frissítés kényszerítése megkerüli a Pod Disruption Budget (PDB) korlátait, és szolgáltatáskimaradást okozhat az összes pod egyidejű lecsapolásával. A beállítás használata előtt először próbálja meg kijavítani a PDB helytelen konfigurációit (tekintse át a PDB minAvailable/maxUnavailable beállításait, győződjön meg a megfelelő podreplikákról, és ellenőrizze, hogy a PDB-k nem akadályozzák-e az összes kilakoltatást).

Csak akkor használjon kényszerítő frissítést, ha a PDF-fájlok megakadályozzák a kritikus frissítéseket, és nem oldhatók meg. Ez felülbírálja a PDB-védelmet, és teljes szolgáltatás elérhetetlenséget okozhat a frissítés során.

Követelmények: Azure CLI 2.79.0+ vagy AKS API 2025-09-01+ verzió

az aks upgrade \
  --name $CLUSTER_NAME \
  --resource-group $RESOURCE_GROUP_NAME \
  --kubernetes-version $KUBERNETES_VERSION \
  --enable-force-upgrade \
  --upgrade-override-until yyyy-mm-ddT13:00:00Z

Megjegyzés:

  • A upgrade-override-until paraméter meghatározza, hogy mikor fejeződik be az ellenőrzés megkerülése (jövőbeli dátumnak/időnek kell lennie)
  • Ha nincs megadva, az ablak alapértelmezés szerint három napig tart az aktuális időponttól
  • Az Z UTC/GMT időzónát jelzi

Figyelmeztetés

Ha a kényszerített frissítés engedélyezve van, elsőbbséget élvez az összes többi terhelési konfigurációval szemben. A nem módosítható csomópont viselkedési beállításai (2. lehetőség) nem lesznek alkalmazva, ha a kényszerített frissítés aktív.

2. lehetőség: Le nem ereszthető csomópontok kezelése (PDB tiszteletben tartása)

Ezzel a konzervatív megközelítéssel tisztelheti a PDF-fájlokat, és megelőzheti a frissítési hibákat.

Nem módosítható csomópont viselkedésének konfigurálása:

az aks nodepool update \
  --resource-group <resource-group-name> \
  --cluster-name <cluster-name> \
  --name <node-pool-name> \
  --undrainable-node-behavior Cordon \
  --max-blocked-nodes 2 \
  --drain-timeout 30

Viselkedési beállítások:

  • Ütemezés (alapértelmezett): Törli a letiltott csomópontot és a túlfeszültségek cseréjét
  • Kordon (ajánlott): A kordonok csomópontja és címkéje kubernetes.azure.com/upgrade-status=Quarantined

Letiltott csomópontok maximális száma (előzetes verzió):

  • Megadja, hogy hány csomópontot ne ürítsen ki a rendszer
  • A(z) undrainable-node-behavior beállítása szükséges
  • maxSurge Alapértelmezett érték (általában 10%) ha nincs megadva
A maximális blokkolt csomópontok előfeltételei
  • A letiltott csomópontok maximális használatához az Azure CLI aks-preview 18.0.0b9-es vagy újabb verziójára van szükség.

    # Install or update the aks-preview extension
    az extension add --name aks-preview
    az extension update --name aks-preview
    
Példakonfiguráció maximális blokkolt csomópontokkal
az aks nodepool update \
  --cluster-name jizenMC1 \
  --name nodepool1 \
  --resource-group jizenTestMaxBlockedNodesRG \
  --max-surge 1 \
  --undrainable-node-behavior Cordon \
  --max-blocked-nodes 2 \
  --drain-timeout 5

Javaslatok a csatornahibák megelőzésére

  • Állítsa be maxUnavailable a PDF-fájlokban, hogy legalább egy pod-kiürítés engedélyezve legyen
  • Podreplikák számának növelése a megszakítási költségvetés betartásához szükséges követelmények teljesítése érdekében
  • Hosszabbítsa meg a kifutási időt, ha a számítási feladatoknak több időre van szükségük. (Az alapértelmezett érték 30 perc.)
  • Tesztelje a PDF-fájlokat az előkészítésben, figyelje a frissítési eseményeket, és használjon kék-zöld üzembe helyezéseket a kritikus számítási feladatokhoz. További információ: Az AKS-fürtök kék-zöld üzembe helyezése.
Kimeríthetetlen csomópontok ellenőrzése
  • A letiltott csomópontok nincsenek ütemezve podokra, és "kubernetes.azure.com/upgrade-status: Quarantined" címkével vannak megjelölve.

  • Ha kiürítési csomópont-hiba történt a frissítés során, ellenőrizze a címkét a blokkolt csomópontokon.

    kubectl get nodes --show-labels=true
    
Le nem üríthető csomópontok feloldása
  1. Távolítsa el a felelős PDB-t:

    kubectl delete pdb <pdb-name>
    
  2. Távolítsa el a címkét kubernetes.azure.com/upgrade-status: Quarantined :

    kubectl label nodes <node-name> kubernetes.azure.com/upgrade-status-
    
  3. Ha szükséges, törölje a letiltott csomópontot:

    az aks nodepool delete-machines --cluster-name <cluster-name> --machine-names <machine-name> --name <node-pool-name> --resource-group <resource-group-name>
    
  4. A lépés befejezése után egyeztetheti a fürt állapotát úgy, hogy bármilyen frissítési műveletet végrehajt az az aks-ban ismertetett választható mezők nélkül. Másik lehetőségként a csomópontkészletet a frissített csomópontok számával megegyező számú csomópontra skálázhatja. Ez a művelet biztosítja, hogy a csomópontkészlet a kívánt eredeti méretre kerüljön. Az AKS rangsorolja a letiltott csomópontok eltávolítását. Ez a parancs a fürt kiépítési állapotát is visszaállítja a következőre Succeeded: . Az alábbi példában 2 a frissített csomópontok teljes száma látható.

    # Update the cluster to restore the provisioning status
    az aks update --resource-group <resource-group-name> --name <cluster-name>
    
    # Scale the node pool to restore the original size
    az aks nodepool scale --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --node-count 2
    

3. forgatókönyv: Lassú frissítések

A konzervatív beállítások vagy a csomópontszintű problémák késleltethetik a frissítéseket, ami hatással van a javítások és fejlesztések aktuális állapotának megtartására.

A lassú frissítések gyakori okai a következők:

  • Alacsony maxSurge vagy maxUnavailable érték (korlátozza a párhuzamosságot).
  • Magas áztatási idők (hosszú várakozások a csomópontfrissítések között).
  • Leeresztési hibák (lásd a csomópont ürítési hibáit).

Javaslatok a megelőzésre vagy a megoldásra

  • maxSurge=33%, maxUnavailable=1 használata a gyártáshoz.
  • maxSurge=50% A fejlesztéshez/teszteléshez maxUnavailable=2 használja.
  • Az operációs rendszer biztonsági javítása gyors, célzott javításokhoz használható (elkerüli a csomópontok teljes újrailledését).
  • Lehetővé teszi --undrainable-node-behavior a frissítési blokkolók elkerülését.

4. forgatókönyv: AZ IP-cím kimerülése

A túlfeszültség-csomópontok több IP-címet igényelnek. Ha az alhálózat közel van a kapacitáshoz, a csomópontok kiépítése meghiúsulhat (például Error: SubnetIsFull). Ez a forgatókönyv gyakori az Azure Container Networking Interface esetében, magas maxPodsvagy nagy csomópontszámmal.

Javaslatok a megelőzésre vagy a megoldásra

  • Győződjön meg arról, hogy az alhálózat minden csomóponthoz, túlfeszültség-csomóponthoz és podhoz elegendő IP-címekkel rendelkezik. A képlet a következő Total IPs = (Number of nodes + maxSurge) * (1 + maxPods): .

  • Vonja vissza a nem használt IP-címeket, vagy bontsa ki az alhálózatot (például /24-ről /22-re).

  • Csökkentse maxSurge, ha az alhálózat kiterjesztése nem lehetséges.

    az aks nodepool update \
      --resource-group <resource-group-name> \
      --cluster-name <cluster-name> \
      --name <node-pool-name> \
      --max-surge 10%
    
  • Az IP-használat monitorozása az Azure Monitorral vagy egyéni riasztásokkal.

  • Csökkentse maxPods csomópontonként, az árva terheléselosztó IP-címeket törölje, és tervezze meg az alhálózat méretezését nagy méretű fürtökhöz.


Gyakori kérdések

Használhatok nyílt forráskódú eszközöket az ellenőrzéshez?

Igen. Számos nyílt forráskódú eszköz jól integrálható az AKS frissítési folyamataival:

  • kube-no-trouble (kubent): A frissítések előtt megvizsgálja az elavult API-kat.
  • Trivy: Tárolólemezképek és Kubernetes-konfigurációk biztonsági vizsgálata.
  • Sonobuoy: Kubernetes-konformitási tesztelés és klaszter verifikáció.
  • kube-bench: Biztonsági teljesítményteszt a Központ az Internetbiztonság szabványai ellen.
  • Polaris: A Kubernetes ajánlott eljárásainak érvényesítése.
  • kubectl-neat: Kubernetes-jegyzékek törlése ellenőrzés céljából.

Hogyan érvényesíthetem az API kompatibilitását a frissítés előtt?

Futtassa az elavulási ellenőrzéseket az olyan eszközökkel, mint a kubent:

# Install and run API deprecation scanner
kubectl apply -f https://github.com/doitintl/kube-no-trouble/releases/latest/download/knt-full.yaml

# Check for deprecated APIs in your cluster
kubectl run knt --image=doitintl/knt:latest --rm -it --restart=Never -- \
  -c /kubeconfig -o json > api-deprecation-report.json

# Review findings
cat api-deprecation-report.json | jq '.[] | select(.deprecated==true)'

Mitől különböznek az AKS-frissítések a többi Kubernetes-platformtól?

Az AKS számos egyedi előnyt biztosít:

  • Natív Azure-integráció az Azure Traffic Managerrel, az Azure Load Balancerrel és a hálózatkezeléssel.
  • Az Azure Kubernetes Fleet Manager koordinált multicluster-frissítésekhez.
  • Automatikus csomópontrendszerkép-javítás manuális csomópontkezelés nélkül.
  • A kvóta, a hálózatkezelés és a hitelesítő adatok beépített érvényesítése.
  • Azure-támogatás frissítéssel kapcsolatos problémák esetén.

A frissítési útvonal kiválasztása

Ez a cikk technikai alapokat biztosított. Most válassza ki a forgatókönyvalapú elérési utat.

Készen áll a végrehajtásra?

Ha... Ezután lépjen...
Éles környezet Éles frissítési stratégiák: Csatatesztelt minták a nulla állásidős frissítésekhez
Adatbázisok vagy állapotalapú alkalmazások Állapotalapú számítási feladatok mintái: Biztonságos frissítési minták az adatmegőrzéshez
Több környezet Frissítési forgatókönyvek központja: Döntési fa összetett beállításokhoz
Alapfürt AKS-kiszolgálócsoport frissítése: Lépésenkénti fürtfrissítés

Még mindig dönt?

Használja a frissítési forgatókönyvek központot egy irányított döntési fához, amely a következőt veszi figyelembe:

  • Állásidő-tűrés
  • A környezet összetettsége
  • Kockázati profil
  • Idősor-korlátozások

Következő feladatok

  • A frissítés megkezdése előtt tekintse át az AKS javításaival és frissítési útmutatóval kapcsolatos ajánlott eljárásokat és tervezési tippeket.
  • Mindig ellenőrizze az API kompatibilitástörő módosításait , és ellenőrizze, hogy a számítási feladat kompatibilis-e a cél Kubernetes-verzióval.
  • Tesztelje a frissítési beállításokat (például maxSurge, maxUnavailable és PDB-ket) egy átmeneti környezetben az éles üzem kockázatának minimalizálása érdekében.
  • A folyamat alatt folyamatos figyelemmel kísérheti a frissítési eseményeket és a fürt állapotát.