Kubernetes-fürt frissítése AKS-motor használatával az Azure Stack Hubon
Az AKS-motor lehetővé teszi az eredetileg üzembe helyezett Kubernetes-fürt frissítését az Azure Stack Hubon található eszközzel. A fürtöket az AKS-motorral lehet karbantartani. A karbantartási feladatok hasonlóak minden IaaS-rendszerhez. Tisztában kell lennie az új frissítések rendelkezésre állásával, és az AKS-motorral kell alkalmaznia őket.
Fürt frissítése
A frissítési parancs frissíti a Kubernetes-verziót és az operációs rendszer alaprendszerképét. A frissítési parancs minden futtatásakor az AKS-motor a fürt minden csomópontjához létrehoz egy új virtuális gépet az aks-motor verziójához társított AKS-alaprendszerkép használatával.
Az AKS Engine 0.73.0-s és újabb verziói esetén a aks-engine upgrade
paranccsal fenntarthatja a fürt összes fő- és ügynökcsomópontjának pénznemét.
Az AKS Engine 0.75.3-as és újabb verziói esetén a aks-engine-azurestack upgrade
paranccsal fenntarthatja a fürt összes fő- és ügynökcsomópontjának pénznemét.
A Microsoft nem kezeli a fürtöt. A Microsoft azonban biztosítja a fürt kezeléséhez használható eszközt és virtuálisgép-lemezképet.
Üzembe helyezett fürtök esetén a frissítések a következőket fedik le:
- Kubernetes
- Azure Stack Hub Kubernetes-szolgáltató
- Alap operációs rendszer
Éles fürt frissítésekor vegye figyelembe a következő szempontokat:
- A célfürt megfelelő fürtspecifikációját (
apimodel.json
) és erőforráscsoportját használja? - Megbízható gépet használ az ügyfélszámítógéphez az AKS-motor futtatásához, és amelyről frissítési műveleteket hajt végre?
- Győződjön meg arról, hogy rendelkezik biztonsági mentési fürtel, és hogy működőképes.
- Ha lehetséges, futtassa a parancsot egy virtuális gépről az Azure Stack Hub-környezetben a hálózati ugrások és a lehetséges csatlakozási hibák csökkentése érdekében.
- Győződjön meg arról, hogy az előfizetése elegendő helyet biztosít a teljes folyamathoz. A folyamat új virtuális gépeket foglal le a folyamat során.
- Nincsenek rendszerfrissítések vagy ütemezett tevékenységek.
- Állítson be egy szakaszos frissítést egy olyan fürtön, amely pontosan úgy van konfigurálva, mint az éles fürt, és tesztelje ott a frissítést, mielőtt ezt az éles fürtben elvégezené
Az újabb Kubernetes-verzióra való frissítés lépései
Megjegyzés
Az AKS alaprendszerképe is frissül, ha az aks-motor újabb verzióját használja, és a rendszerkép elérhető a piactéren.
Az alábbi utasítások a frissítés végrehajtásához szükséges minimális lépéseket követik. Ha további részletekre van szüksége, tekintse meg a Kubernetes-fürtök frissítése című cikket.
Először meg kell határoznia, hogy mely verziókat célozhatja meg a frissítéshez. Ez a verzió attól függ, hogy melyik verzióval rendelkezik, majd ezt a verzióértéket használja a frissítés végrehajtásához. Az AKS-motor által támogatott Kubernetes-verziók a következő parancs futtatásával listázhatók:
Megjegyzés
Az AKSe 0.75.3-as és újabb verziói esetén az AKS-motor verzióinak lekérésére szolgáló parancs a .
aks-engine-azurestack get-versions
aks-engine get-versions --azure-env AzureStackCloud
Az AKS-motor, az AKS alaprendszerképe és a Kubernetes-verziók teljes leképezését lásd: Támogatott AKS-motorverziók.
Gyűjtse össze a parancs futtatásához
upgrade
szükséges adatokat. Aupgrade
parancs a következő paramétereket használja:Paraméter Példa Leírás azure-env AzureStackCloud Ha azt szeretné jelezni az AKS-motornak, hogy a célplatform az Azure Stack Hub, használja a következőt AzureStackCloud
: .location Helyi Az Azure Stack Hub régióneve. Az ASDK esetében a régió értéke local
.resource-group kube-rg Adja meg egy új erőforráscsoport nevét, vagy válasszon ki egy meglévő erőforráscsoportot. Az erőforrás nevének alfanumerikusnak és kisbetűsnek kell lennie. előfizetés-azonosító xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Adja meg az előfizetés azonosítóját. További információ: Feliratkozás ajánlatra api-model ./kubernetes-azurestack.json A fürtkonfigurációs fájl vagy AZ API-modell elérési útja. ügyfél-azonosító xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Adja meg a szolgáltatásnév GUID azonosítót. Az Ügyfélazonosító alkalmazásazonosítóként van azonosítva, amikor az Azure Stack Hub rendszergazdája létrehozta a szolgáltatásnevet. titkos ügyfélkód xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Adja meg a szolgáltatásnév titkos kódjának értékét. Ez a szolgáltatás létrehozásakor beállított ügyfélkód. identitásrendszer Adfs Választható. Adja meg az identitáskezelési megoldást, ha az Active Directory összevont szolgáltatásokat (AD FS) használja. Ha az értékek a helyén szerepelnek, futtassa a következő parancsot:
Megjegyzés
Az AKSe 0.75.3-as és újabb verziói esetében az AKS-motor frissítésének parancsa a következő
aks-engine-azurestack upgrade
: .aks-engine upgrade \ --azure-env AzureStackCloud \ --location <for an ASDK is local> \ --resource-group kube-rg \ --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --api-model kube-rg/apimodel.json \ --upgrade-version 1.18.15 \ --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --identity-system adfs # required if using AD FS
Ha a frissítési művelet bármilyen okból meghiúsul, a probléma megoldása után újrafuttathatja a
upgrade
parancsot. Az AKS-motor folytatja a műveletet, ahol az előző alkalommal meghiúsult.
Az operációsrendszer-lemezkép frissítésének lépései
- Tekintse át a támogatott kubernetes-versions táblát , és állapítsa meg, hogy rendelkezik-e az aks-engine és az AKS alaprendszerképnek a frissítésre tervezett verziójával. Ha az AKS Engine 0.73.0-s vagy újabb verzióját használja, tekintse meg az aks-engine futtatásának verzióját:
aks-engine version
. Ha az AKS Engine 0.75.3-as vagy újabb verzióját használja, tekintse meg az aks-engine futtatásának verzióját:aks-engine-azurestack version
. - Ennek megfelelően frissítse az AKS-motort abban a gépen, amelyen az aks-engine fut:
./get-akse.sh --version vx.xx.x
cserélje le az x.xx.x-et a célzott verzióra. - Kérje meg az Azure Stack Hub-operátort, hogy adja hozzá az AKS Alaprendszerkép szükséges verzióját a használni kívánt Azure Stack Hub Marketplace-en.
- Futtassa a
aks-engine upgrade
parancsot a Már használt Kubernetes-verzióval, de adja hozzá a parancsot--force
. A frissítés kényszerítése című témakörben láthat egy példát.
A fürt Ubuntu 20.04-es verzióra való frissítésének lépései
Az AKS-motor 0.75.3-as és újabb verziójával frissítheti a fürt virtuális gépeit az Ubuntu 18.04-ről 20.04-re. Kövesse az alábbi lépéseket:
- Keresse meg és szerkessze az
api-model.json
üzembe helyezés során létrehozott fájlt. Ennek a fájlnak meg kell egyeznie a következővel végzett frissítési vagy skálázási műveletekhezaks-engine
: . Az AKS Engine 0.75.3-as és újabb verzióiban használja a következőtaks-engine-azurestack
: . - Keresse meg a és a
masterProfile
szakaszokat az ezekben a szakaszokban, és módosítsa a értékét a értékredistro
aks-ubuntu-20.04
.agentPoolProfiles
- Mentse a
api-model.json
fájlt, és használja a fájlt aaks-engin upgrade
api-model.json
parancsban, ahogyan az egy újabb Kubernetes-verzióra való frissítés lépéseiben is szerepel
A fürt frissítésének lépései, ha tárolóköteteket használ az AKS Engine 0.70.0-s és újabb verziójával
Az Azure-beli felhőszolgáltató projekt (más néven cloud-controller-manager
külső felhőszolgáltató) implementálja a Kubernetes felhőszolgáltatói felületét az Azure-felhőkhöz. A fa nélküli megvalósítás az elavult fán belüli megvalósítás cseréje.
Az Azure Stack Hubon a Kubernetes 1.21-től kezdődően az AKS Engine-alapú fürtök kizárólag a következőt fogják használni cloud-controller-manager
: . Ezért egy Kubernetes v1.21+-fürt üzembe helyezéséhez az API-modellben (például) be kell állítani orchestratorProfile.kubernetesConfig.useCloudControllerManager
true
. Az AKS Engine frissítési folyamata automatikusan frissíti a jelzőt useCloudControllerManager
.
Megjegyzés
Frissítési szempontok: a Kubernetes-fürtök 1.20-es (vagy újabb) verzióról 1.21-es (vagy újabb verzióra) való frissítésének folyamata állásidőt okoz a kubernetes.io/azure-disk
faszerkezetes kötetkiosztóra támaszkodó számítási feladatok számára. Mielőtt a Kubernetes v1.21+-ra frissítené, erősen ajánlott teljes biztonsági másolatot készíteni az alkalmazásadatokról, és ellenőrizni egy éles üzem előtti környezetben , hogy a fürttárolási erőforrások (PV és PVC) migrálhatók-e az új kötetkiosztóba. Itt megtudhatja, hogyan migrálhat az Azure Disk CSI-illesztőprogramra.
Kötetkiosztók
A fán belüli kötetkiépítés csak a fán belüli felhőszolgáltatóval kompatibilis. Ezért egy 1.21+-os verziós fürtnek tartalmaznia kell egy tárolótároló-illesztőt (CSI), ha a felhasználói számítási feladatok állandó tárolásra támaszkodnak. Az Azure Stack Hubon elérhető néhány megoldás itt található.
Az AKS Engine alapértelmezés szerint nem engedélyezi a CSI-illesztőprogramokat az Azure Stack Hubon. A CSI-illesztőprogramot igénylő számítási feladatok esetében explicit módon engedélyezheti a azuredisk-csi-driver
bővítményt (csak Linux-fürtök), vagy Helm
telepítheti a azuredisk-csi-driver
diagramot (Linux- és/vagy Windows-fürtök).
Állandó tároló migrálása az Azure Disk CSI-illesztőprogramba
Az AKS Engine-alapú fürtök 1.20-as (vagy újabb) verzióról 1.21-es (vagy újabb) verzióra való frissítésének folyamata állásidőt okoz a faszerkezetes kötetkiépítési szolgáltatóra kubernetes.io/azure-disk
támaszkodó számítási feladatok számára, mivel ez a kiépítési szolgáltató nem része az Azure-beli felhőszolgáltatónak.
Ha a mögöttes Azure-lemezeken tárolt adatokat meg kell őrizni, akkor a fürtfrissítési folyamat befejezése után a következő további lépésekre lesz szükség:
- Az Azure Disk CSI-illesztőprogram telepítése
- Az elavult faalapú tárolási osztályok eltávolítása
- Az állandó kötetek és jogcímek újbóli létrehozása
1. Az Azure Disk CSI-illesztőprogram manuális telepítése
Az Azure Disk CSI-illesztőprogram telepítéséhez a következő szkriptet használja Helm
:
DRIVER_VERSION=v1.10.0
helm repo add azuredisk-csi-driver https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts
helm install azuredisk-csi-driver azuredisk-csi-driver/azuredisk-csi-driver \
--namespace kube-system \
--set cloud=AzureStackCloud \
--set controller.runOnMaster=true \
--version ${DRIVER_VERSION}
2. Tárosztályok cseréje
A kube-addon-manager
rendszer automatikusan létrehozza az Azure Disk CSI illesztőprogram-tárolási osztályokat (disk.csi.azure.com
) a faalapú tárolási osztályok (kubernetes.io/azure-disk
) manuális törlése után:
IN_TREE_SC="default managed-premium managed-standard"
# Delete deprecated "kubernetes.io/azure-disk" storage classes
kubectl delete storageclasses ${IN_TREE_SC}
# Wait for addon manager to create the "disk.csi.azure.com" storage class resources
kubectl get --watch storageclasses
3. Állandó kötetek újbóli létrehozása
Miután telepítette az Azure Disk CSI-illesztőprogramot, és lecserélte a tárolási osztályokat, a következő lépés az állandó kötetek (PV) és az állandó kötetjogcímek (PVC) újbóli létrehozása az Azure Disk CSI-illesztőprogram (vagy alternatív CSI-megoldás) használatával.
Ez egy többlépéses folyamat, amely az erőforrások kezdeti üzembe helyezésének módjától függően eltérő lehet. Átfogó szinten a következő lépésekből áll a folyamat:
- Törölje azt az üzembe helyezést vagy állapotkészletet, amely a migrálni kívánt PV + PVC párokra hivatkozik (szükség esetén biztonsági mentési erőforrás-definíció).
- Győződjön meg arról, hogy a virtuális gépek tulajdonsága
persistentVolumeReclaimPolicy
értékreRetain
van állítva (példa). - Törölje a migrálni kívánt PV + PVC párokat (szükség esetén biztonsági mentési erőforrás-definíciókat).
- A migráláshoz frissítse a virtuális gépek erőforrásdefinícióját az
azureDisk
objektum eltávolításával, és adjon hozzá egycsi
objektumot az eredeti AzureDiskre hivatkozva (példa). - Hozza létre újra a következő sorrendben a PV-erőforrást/s-t, a PVC-erőforrást/s-t (ha szükséges), és végül az üzembe helyezést vagy az állapotalapú készletet.
A következő migrálási szkript sablonként van megadva.
Ha a migrálási szkript futtatása után a pod "Nem lehet köteteket csatolni vagy csatlakoztatni" hibaüzenet jelenik meg, győződjön meg arról, hogy az Azure Disk CSI-illesztőprogram telepítve van , és a tárosztályok újra létre lettek hozva.
Frissítés kényszerítése
Előfordulhatnak olyan feltételek, amelyek miatt szükség lehet a fürt frissítésére. Az első napon például leválasztott környezetben helyezi üzembe a fürtöt a legújabb Kubernetes-verzióval. A következő napon az Ubuntu egy javítást ad ki egy biztonsági réshez, amelyhez a Microsoft új AKS-alaprendszerképet hoz létre. Az új rendszerképet úgy alkalmazhatja, hogy a már üzembe helyezett Kubernetes-verzióval kényszeríti a frissítést.
Megjegyzés
Az AKSe 0.75.3-as és újabb verziói esetében az AKS-motor frissítésének parancsa a következő aks-engine-azurestack upgrade
: .
aks-engine upgrade \
--azure-env AzureStackCloud
--location <for an ASDK is local> \
--resource-group kube-rg \
--subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--api-model kube-rg/apimodel.json \
--upgrade-version 1.18.15 \
--client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--force
Útmutatásért lásd: Frissítés kényszerítve.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: