Kubernetes-fürt frissítése AKS-motorral az Azure Stack Hubon
Az AKS-motor lehetővé teszi az eredetileg az Azure Stack Hubon üzembe helyezett Kubernetes-fürt frissítését. A fürtöket AKS-motorral tarthatja karban. A karbantartási feladatok minden IaaS-rendszerhez hasonlóak. 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 futtatásakor az AKS-motor a fürt minden csomópontjához létrehoz egy új virtuális gépet a használt 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 megőrizheti a fürt összes fő- és ügynökcsomópontjának pénznemét.
Az AKS Engine 0.75.3-s és újabb verziói esetén a aks-engine-azurestack upgrade
paranccsal megőrizheti 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-rendszerké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 ahonnan frissítési műveleteket hajt végre?
- Győződjön meg arról, hogy rendelkezik biztonsági mentési fürtvel, és hogy az 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 folyamat számára. 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 az éles fürtként van konfigurálva, és tesztelje ott a frissítést, mielőtt ezt elvégezené az éles fürtben.
Az újabb Kubernetes-verzióra való frissítés lépései
Feljegyzés
Az AKS alaprendszerképe akkor 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 minimális lépéseket követve hajtják végre a frissítést. Ha további részletekre van szüksége, olvassa el 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ó az aktuális verziótól függ, 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 az alábbi parancs futtatásával listázhatók:
Feljegyzés
Az AKSe 0.75.3-s é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éhez tekintse meg a támogatott AKS-motorverziókat.
Gyűjtse össze a parancs futtatásához
upgrade
szükséges információkat. Aupgrade
parancs a következő paramétereket használja:Paraméter Példa Leírás azure-env AzureStackCloud Annak jelzése az AKS-motornak, hogy a célplatform az Azure Stack Hub. AzureStackCloud
hely 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 Azure Stack Hub rendszergazdája által a szolgáltatásnév létrehozásakor az alkalmazásazonosítóként azonosított ügyfélazonosító. titkos ügyfélkód xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Adja meg a szolgáltatásnév titkos kódjának nevét. Ez a szolgáltatás létrehozásakor beállított ügyféltitk. identitásrendszer adfs Opcionális. Adja meg az identitáskezelési megoldást, ha Active Directory összevont szolgáltatásokat (AD FS) használ. Az értékek helyén futtassa a következő parancsot:
Feljegyzés
Az AKSe 0.75.3-s és újabb verziói esetében az AKS-motor frissítésére szolgáló parancs a
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-rendszerkép frissítésének lépései
- Tekintse át a támogatott Kubernetes-verziók táblát , és állapítsa meg, hogy rendelkezik-e a frissítéshez tervezett AKS-motor- és AKS-alaprendszerkép-verzióval. Ha az AKS Engine 0.73.0-s vagy újabb verzióját használja, tekintse meg az aks-motor futtatásának verzióját:
aks-engine version
. Ha az AKS Engine 0.75.3-os 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 telepítette az aks-motor futtatását:
./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--force
parancsot. A frissítés kényszerítésében egy példa látható.
A fürt Ubuntu 20.04-es verzióra való frissítésének lépései
Az AKS-motor 0.75.3-s és újabb verziójával frissítheti fürt virtuális gépeit az Ubuntu 18.04-ről 20.04-re. Tegye a következők egyikét:
- Keresse meg és szerkessze az
api-model.json
üzembe helyezés során létrehozott fájlt. Ennek a fájlnak ugyanazzal a fájllalaks-engine
kell rendelkeznie, amelyet a következővel végzett frissítési vagy méretezési műveletekhez használnak. Az AKS Engine 0.75.3-os vagy újabb verziójában használja a .aks-engine-azurestack
- Keresse meg a szakaszokat
masterProfile
, ésagentPoolProfiles
ezen szakaszokon belül módosítsa a következő értékredistro
aks-ubuntu-20.04
: . - Mentse a
api-model.json
fájlt, és használja a fájlt aaks-engin upgrade
api-model.json
parancsban, ahogyan a Lépések lépésben egy újabb Kubernetes-verzióra való frissítéshez
A fürt frissítésének lépései, ha tárolóköteteket használ az AKS Engine 0.70.0-s vagy újabb verziójával
Az Azure-beli felhőszolgáltató projekt (más néven cloud-controller-manager
" faalapú felhőszolgáltató vagy külső felhőszolgáltató") implementálja a Kubernetes felhőszolgáltatói felületét az Azure-felhőkhöz. A fakibontás az elavult fa implementáció helyére kerül.
Az Azure Stack Hubon a Kubernetes 1.21-től kezdődően az AKS Engine-alapú fürtök kizárólag cloud-controller-manager
. Ezért egy Kubernetes v1.21+-fürt üzembe helyezéséhez be kell állítania orchestratorProfile.kubernetesConfig.useCloudControllerManager
true
az API-modellben (példa). Az AKS Engine frissítési folyamata automatikusan frissíti a jelzőt useCloudControllerManager
.
Feljegyzés
Frissítési szempontok: a Kubernetes-fürt 1.20-es (vagy alacsonyabb) verzióról 1.21-es (vagy újabb) verzióra való frissítésének folyamata leállást okoz a kubernetes.io/azure-disk
faalapú kötetkiépítésre támaszkodó számítási feladatok számára. A Kubernetes 1.21+-os verziójára való frissítés előtt javasoljuk, hogy készítsen teljes biztonsági másolatot az alkalmazásadatokról, és ellenőrizze az éles üzem előtti környezetben, hogy a fürttároló-erőforrások (PV és PVC) migrálhatók-e az új kötetkiépítési rendszerbe. Itt megtudhatja, hogyan migrálhat az Azure Disk CSI-illesztőprogramba.
Kötetkiépítési szolgáltatások
A fán belüli kötetkiépítés csak a faalapú felhőszolgáltatóval kompatibilis. Ezért egy 1.21+-os verziós fürtnek tartalmaznia kell egy Tárolótároló-illesztő (CSI) illesztőprogramot, 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árterület 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 fákon belüli kötetkiépítésre támaszkodó kubernetes.io/azure-disk
számítási feladatok számára, mivel ez a kiépítés nem része az Azure felhőszolgáltatójának.
Ha a mögöttes Azure-lemezeken tárolt adatokat meg kell őrizni, 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 ismételt 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ötetek jogcímeinek (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étől függően eltérő lehet. A magas szintű lépések a következők:
- Törölje a migrálni kívánt PV + PVC párokra hivatkozó központi telepítést vagy állapotkészletet (szükség esetén készítsen biztonsági másolatot az erőforrás-definícióról).
- Győződjön meg arról, hogy a virtuális gép tulajdonsága
persistentVolumeReclaimPolicy
értékreRetain
van állítva (példa). - Törölje a migrálandó PV + PVC párokat (szükség esetén készítsen biztonsági másolatot az erőforrás-definíciókról).
- Az áttelepítéshez frissítse a virtuális gépek erőforrásdefinícióját úgy, hogy eltávolítja az
azureDisk
objektumot, és hozzáad egycsi
objektumot az eredeti AzureDiskre hivatkozva (példa). - Hozza létre újra a következő sorrendben a PV-erőforrást/-erőforrásokat, a PVC-erőforrásokat (ha szükséges), végül pedig az üzembe helyezést vagy az állapotkészletet.
A következő migrálási szkript sablonként van megadva.
A migrálási szkript futtatása után, ha 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 előfordulhat, hogy a fürt frissítését szeretné kényszeríteni. Például az első napon egy fürtöt a legújabb Kubernetes-verzióval helyez üzembe leválasztott környezetben. A következő napon az Ubuntu kibocsát egy javítást egy biztonsági résre, amely miatt a Microsoft létrehoz egy új AKS-alaprendszerképet. Az új rendszerképet úgy alkalmazhatja, hogy egy frissítést a már üzembe helyezett Kubernetes-verzióval kényszerít.
Feljegyzés
Az AKSe 0.75.3-s és újabb verziói esetében az AKS-motor frissítésére szolgáló parancs a 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
- Az Azure Stack Hub AKS-motorjának ismertetése
- Kubernetes-fürt skálázása az Azure Stack Hubon AKS-motorral