Az Azure Kubernetes Service-fürtök frissítési lehetőségei
Ez a cikk az AKS-fürtök különböző frissítési lehetőségeit ismerteti. Az alapszintű Kubernetes-verziófrissítés végrehajtásához lásd : AKS-fürt frissítése.
Több csomópontkészletet vagy Windows Server-csomópontot használó AKS-fürtök esetén lásd: Csomópontkészlet frissítése az AKS-ben. Ha kubernetes-fürtfrissítés nélkül szeretne frissíteni egy adott csomópontkészletet, tekintse meg egy adott csomópontkészlet frissítését.
Manuális frissítések végrehajtása
Manuális frissítésekkel szabályozhatja, hogy a fürt mikor frissít egy új Kubernetes-verzióra. A manuális frissítések akkor hasznosak, ha az éles fürt frissítése előtt tesztelni szeretné az új Kubernetes-verziót. Manuális frissítésekkel is frissítheti a fürtöt egy adott Kubernetes-verzióra, amely nem a legújabb elérhető verzió.
A manuális frissítések végrehajtásához tekintse meg a következő cikkeket:
- AKS-fürt frissítése
- A csomópont lemezképének frissítése
- Csomópontok túlfeszültség-frissítésének testreszabása
- Csomópont operációsrendszer-frissítésének feldolgozása
- Több AKS-fürt frissítése az Azure Kubernetes Fleet Managerrel
Automatikus frissítések konfigurálása
Az automatikus frissítésekkel automatikusan frissítheti a fürtöt a legújabb elérhető Kubernetes-verzióra. Az automatikus frissítések akkor hasznosak, ha meg szeretné győződni arról, hogy a fürt mindig a legújabb Kubernetes-verziót futtatja. Az automatikus frissítésekkel biztosíthatja, hogy a fürt mindig egy támogatott Kubernetes-verziót futtasson.
Az automatikus frissítések konfigurálásához tekintse meg az alábbi cikkeket:
- AKS-fürt automatikus frissítése
- Tervezett karbantartás használata az AKS-fürt frissítéseinek ütemezéséhez és szabályozásához
- Az AKS-fürt frissítéseinek automatikus leállítása api-kompatibilitástörő módosításokkor (előzetes verzió)
- Az AKS-fürtcsomópont operációs rendszer lemezképeinek automatikus frissítése
- Biztonsági frissítések alkalmazása automatikusan az AKS-csomópontokra a GitHub Actions használatával
A több rendelkezésre állási zónára kiterjedő csomópontkészletek különleges szempontjai
Az AKS a legjobb munkamennyiségű zónaelosztást használja csomópontcsoportokban. Frissítési túlfeszültség esetén a virtuálisgép-méretezési csoportokban lévő túlfeszültség-csomópontok zónái előre ismeretlenek, ami ideiglenesen kiegyensúlyozatlan zónakonfigurációt okozhat a frissítés során. Az AKS azonban törli a túlfeszültség-csomópontokat a frissítés befejezése után, és megőrzi az eredeti zónaegyenleget. Ha a frissítések során egyensúlyban szeretné tartani a zónákat, három csomópontból többre növelheti a túlfeszültséget, és a virtuálisgép-méretezési csoportok a rendelkezésre állási zónák között a legjobb munkamennyiségű zónaelosztással egyensúlyozzák a csomópontokat. A legjobb erőkifejtésű zónaegyenleggel a méretezési csoport az egyensúly fenntartása mellett megkísérli a vertikális fel- és kiskálázást. Ha azonban valamilyen okból ez nem lehetséges (például ha egy zóna lemegy, a méretezési csoport nem tud új virtuális gépet létrehozni az adott zónában), a méretezési csoport lehetővé teszi az ideiglenes egyensúlyhiány sikeres felskálázását vagy kiméretezését.
Az Azure helyileg redundáns tárolólemezei által támogatott állandó kötetjogcímek (PVC-k) egy adott zónához vannak kötve, és előfordulhat, hogy a túlfeszültség-csomópont nem felel meg a PVC zónájának. Ha a zónák nem egyeznek, az állásidőt okozhat az alkalmazásban, amikor a frissítési művelet továbbra is kiüríti a csomópontokat, de a virtuális gépek egy zónához vannak kötve. Az eset kezeléséhez és a magas rendelkezésre állás fenntartásához konfiguráljon egy podkimaradási költségvetést az alkalmazásban, hogy a Kubernetes betarthassa a rendelkezésre állási követelményeket a lefolyóművelet során.
Optimalizálás a nem módosítható csomópontok viselkedésére (előzetes verzió)
Konfigurálhatja a frissítési folyamat viselkedését a ürítési hibákhoz. Az alapértelmezett frissítési viselkedés az Schedule
, amely a frissítési művelet sikertelenségét okozó csomópontlefolyós hibából áll, így a nem megnyitott csomópontok schedulable állapotban maradnak. Másik lehetőségként kiválaszthatja a viselkedést, amely kihagyja a Cordon
nem üríthető csomópontokat karanténba helyezett állapotba helyezéssel, címkékkel kubernetes.azure.com/upgrade-status:Quarantined
, és a fennmaradó csomópontok frissítésével. Ez a viselkedés biztosítja, hogy az összes csomópont frissítve vagy karanténba helyezve legyenek. Ez a módszer lehetővé teszi a csatornahibák elhárítását és a karanténba helyezett csomópontok kecses kezelését.
Hogyan beállítani az új Cordon viselkedést?
Használja a CLI előzetes verzióját, és telepítse aks-preview
a 9.0.0b3-s vagy újabb bővítményt.
A bővítmény frissítéséhez vagy telepítéséhez aks-preview
az alábbi parancsokat használhatja:
az extension update --name aks-preview
az extension add --name aks-preview
Frissítse a csomópontkészlet nem módosítható csomóponti viselkedését a következőre Cordon
:
az aks nodepool update --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --resource-group $RESOURCE_GROUP --max-surge 1 --undrainable-node-behavior Cordon
Az alábbi példakimenet a nem frissíthető csomópont viselkedését mutatja be:
"upgradeSettings": {
"drainTimeoutInMinutes": null,
"maxSurge": "1",
"nodeSoakDurationInMinutes": null,
"undrainableNodeBehavior": "Cordon"
}
Ellenőrizze a címkét a letiltott csomópontokon. Ha a frissítés során csatornacsomópont-hiba lép fel a következő paranccsal:
kubectl get nodes --show-labels=true
A letiltott csomópontok nincsenek ütemezve a podokhoz, és címkével "kubernetes.azure.com/upgrade-status: Quarantined"
vannak megjelölve. A letiltható csomópontok maximális száma nem lehet nagyobb, mint az Max-Surge
érték.
Milyen műveletet végezhetek innen?
Először oldja meg a lefolyót okozó mögöttes problémát. Az alábbi példa eltávolítja a felelős PDB-t:
kubectl delete pdb nginx-pdb
poddisruptionbudget.policy "nginx-pdb" deleted.
Ha biztos abban, hogy a probléma megoldódott, akkor továbbléphet, és eltávolíthatja a nem módosítható csomópontokra helyezett címkét "kubernetes.azure.com/upgrade-status: Quarantined"
. Ez a következő módon hajtható végre:
kubectl label nodes <node-name> <label-key>-
Minden későbbi "PUT" művelet először megpróbálja összeegyeztetni a fürt "sikertelen kiépítési állapotát" a "sikeres" állapotra. A karanténba helyezett csomópontok nem tekinthetők későbbi üzembe helyezésnek vagy egyeztetésnek. A korábban említett címkéket explicit módon el kell távolítania, hogy a letiltott csomópontokat figyelembe lehessen venni.
A letiltott csomópontot az aks nodepool delete-machines
a paranccsal is törölheti. Ez a parancs akkor hasznos, ha csökkenteni szeretné a csomópontkészlet lábnyomát a régebbi verziókban hátrahagyott csomópontok eltávolításával.
az aks nodepool delete-machines --cluster-name MyCluster --machine-names aks-nodepool1-test123-vmss000000 --name nodepool1 --resource-group TestRG
A lépés elvégzése után egyeztetheti a fürt állapotát úgy, hogy bármilyen frissítési műveletet végrehajt az itt ismertetett választható mezők nélkül.
Példaparancs:
az aks update --resource-group TestRG --name MyCluster
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
: . A megadott 2
példában a frissített csomópontok teljes száma látható.
az aks nodepool scale --resource-group TestRG --cluster-name MyCluster --name nodepool1 --node-count 2
A frissítések optimalizálása a teljesítmény javítása és a fennakadások minimalizálása érdekében
A tervezett karbantartási időszak, a maximális túlfeszültség, a podkimaradás költségvetése, a csomópontok ürítési időtúllépése és a csomópontok áztatási ideje együttesen jelentősen növelheti annak valószínűségét, hogy a csomópontfrissítések sikeresen befejeződnek a karbantartási időszak végéig, ugyanakkor minimalizálja a fennakadásokat.
- A tervezett karbantartási időszak lehetővé teszi a szolgáltatáscsapatok számára az automatikus frissítés ütemezését egy előre meghatározott időszakban, általában alacsony forgalmú időszakban a számítási feladatok hatásának minimalizálása érdekében. Javasoljuk, hogy az ablak időtartama legalább négy óra.
- A csomópontkészlet maximális túlfeszültsége lehetővé teszi további kvóta kérését a frissítési folyamat során, és korlátozza a frissítésre kijelölt csomópontok számát egyszerre. A nagyobb maximális túlfeszültség gyorsabb frissítési folyamatot eredményez. Nem javasoljuk, hogy 100%-os értékre állítsa, mivel egyszerre frissíti az összes csomópontot, ami fennakadásokat okozhat az alkalmazások futtatásában. Az éles csomópontkészletekhez 33%-os maximális túlfeszültség-kvótát javasoljuk.
-
A podkimaradás költségvetése szolgáltatásalkalmazásokhoz van beállítva, és korlátozza az önkéntes megszakítások, például az AKS által vezérelt csomópontfrissítések során leállítható podok számát. Replikaként konfigurálható
minAvailable
, jelezve az aktívnakmaxUnavailable
vagy replikáknak minimálisan szükséges alkalmazás podok számát, jelezve a leállítható alkalmazás podok maximális számát, biztosítva az alkalmazás magas rendelkezésre állását. Tekintse meg a podkimaradási költségvetések (PDB-k) konfigurálásához megadott útmutatást. A PDB-értékeket ellenőrizni kell az adott szolgáltatáshoz leginkább megfelelő beállítások meghatározásához. - A csomópontlefolyó időtúllépése a csomópontkészleten lehetővé teszi a podok kiürítésének és a csomópontonkénti türelmes leállításnak a frissítés során történő várakozási időtartamának konfigurálását. Ez a beállítás akkor hasznos, ha hosszú ideig futó számítási feladatokat kezel. Ha a csomópont ürítési időtúllépése meg van adva (percekben), az AKS tiszteletben tartja a podkimaradási költségvetésekre való várakozást. Ha nincs megadva, az alapértelmezett időtúllépés 30 perc.
- A csomópontok áztatási ideje segít szabályozni a csomópontok frissítését, és minimalizálhatja az alkalmazás állásidejét a frissítés során. A csomópontfrissítések közötti alkalmazáskészség ellenőrzéséhez megadhatja a várakozási időt, lehetőleg a lehető legjobban közel 0 percet. Ha nincs megadva, az alapértelmezett érték 0 perc. A csomópontok áztatási ideje a csomópontkészletben elérhető maximális túlfeszültség- és csomópontlefolyó időtúllépési tulajdonságokkal együtt működik, így a frissítési sebesség és az alkalmazás rendelkezésre állása szempontjából a megfelelő eredmények érhetők el.
Következő lépések
Ez a cikk az AKS-fürtök különböző frissítési lehetőségeit sorolta fel. A frissítési ajánlott eljárások és egyéb szempontok részletes ismertetését az AKS-javítás és a frissítési útmutató ismerteti.
Azure Kubernetes Service