Az Azure Stack Hub-on található Kubernetes-fürt frissítése az AKS Engine használatával

Az AKS-motor lehetővé teszi az eredetileg az Azure Stack Hubon üzembe helyezett Kubernetes-fürt frissítését. Karban tarthatja a fürtöket az AKS motor segítségével. 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-as és annál újabb verziói esetén a aks-engine-azurestack upgrade paranccsal naprakészen tarthatja a fürt összes master- és ügynökcsomópontjá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

Termelési fürt frissítésekor vegye figyelembe a következőket:

  • A megfelelő fürtspecifikációt (apimodel.json) és a megadott erőforráscsoportot használja a célfürt esetében?
  • 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 ugyanúgy van konfigurálva, mint az éles fürt, és tesztelje ott a frissítést, mielőtt azt elvégezné az éles fürtben.

Az újabb Kubernetes-verzióra való frissítés lépései

Feljegyzés

Az AKS alapképe is frissül, ha az aks-engine újabb verzióját használja, és a ké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.

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

  2. Gyűjtse össze a parancs futtatásához upgrade szükséges információkat. A upgrade parancs a következő paramétereket használja:

    Paraméter Példa Leírás
    azure-env AzureStackCloud Annak jelzésére, hogy az AKS-motornak a célplatform az Azure Stack Hub, használja a AzureStackCloud.
    hely helyi Az Azure Stack Hub régióneve. Az ASDK esetében a régió értéke local.
    erőforrás-csoport 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-xxxx-xxxxxxxxxxxx Adja meg az előfizetés azonosítóját. További információ: Feliratkozás ajánlatra
    API-modell ./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-xxxx-xxxxxxxxxxxx Adjon meg egy szolgáltatási főfelhasználó 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-xxxx-xxxxxxxxxxxx Adja meg a szolgáltatásfiók jelszavá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.
  3. 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
    
  4. 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ós rendszer képfájl frissítésének lépései

  1. 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 alacsonyabb 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-os vagy újabb verzióját használja, tekintse meg az aks-engine futtatásának verzióját: aks-engine-azurestack version.
  2. 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.
  3. 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.
  4. Futtassa a aks-engine upgrade parancsot a már használt Kubernetes-verzióval, de adja hozzá a --force. A frissítés kényszerítése című részben láthat egy példát.

Az Ubuntu 20.04-es verzióra való fürt frissítéséhez szükséges lépések

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:

  1. Keresse meg és szerkessze az api-model.json üzembe helyezés során létrehozott fájlt. Ez ugyanaz a fájl legyen, amelyet a aks-engine használ minden frissítési vagy méretezési művelethez. Az AKS Engine 0.75.3-os vagy újabb verziója esetén használja a aks-engine-azurestack.
  2. Keresse meg a masterProfile és agentPoolProfiles szakaszokat, majd ezen szakaszokon belül módosítsa a distro értékét aks-ubuntu-20.04-re.
  3. Mentse el a api-model.json fájlt, és használja a api-model.json fájlt a aks-engin upgrade parancsban, ahogyan azt a Lépések egy újabb Kubernetes-verzióra való frissítéshez

A klaszter frissítésének lépései, ha tárolóköteteket használ az AKS Engine 0.70.0-s verziójú vagy újabb verziójával

Az Azure 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ületet az Azure-felhőkhöz. A külső implementáció az elavult beépített implementáció helyére kerül.

Az Azure Stack Hubon, a Kubernetes v1.21-től kezdve az AKS Engine alapú fürtök kizárólag cloud-controller-manager-t fognak használni. Ezért egy Kubernetes v1.21+-fürt üzembe helyezéséhez be kell állítania orchestratorProfile.kubernetesConfig.useCloudControllerManagertrue 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 v1.21+-os verziójára való frissítés előtt nyomatékosan javasoljuk, hogy készítsen teljes biztonsági másolatot az alkalmazásadatokról, és ellenőrizze egy előgyártási környezetben, hogy a fürttároló-erőforrások (PV és PVC) migrálhatók-e az új kötet-előkészítő rendszerbe. Itt megtudhatja, hogyan migrálhat az Azure Disk CSI-illesztőprogramba.

Kötetbiztosítók

A beágyazott kötetkiépítő csak a beágyazott felhőszolgáltatókkal kompatibilis. Ezért egy v1.21+-os verziójú fürtnek tartalmaznia kell egy Kontejner Tároló Interfész (CSI) illesztőprogramot, ha a 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-driverbővítményt (csak Linux-fürtök), vagy Helmtelepí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 régebbi) verzióról 1.21-es (vagy újabb) verzióra való frissítésének folyamata állásidőt okoz az in-tree kötetkiépítésre támaszkodó kubernetes.io/azure-disk számítási feladatoknál, mivel ez a kiépítés nem része a felhőszolgáltató az Azure számára.

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:

  1. Az Azure Disk CSI-illesztőprogram telepítése
  2. Az elavult faalapú tárolási osztályok eltávolítása
  3. Hozd létre újra az állandó köteteket és kérelmeket

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

Állandó kötetek újralé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ó 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 PV-k persistentVolumeReclaimPolicy tulajdonsága Retain értékre 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 egy csi objektumot az eredeti AzureDiskre hivatkozva (példa).
  • Hozz újra létre a következő sorrendben a PV-erőforrást/-erőforrásokat, a PVC-erőforrást/-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 körülmények, amelyek miatt kényszerítheti a fürt frissítését. Például az első napon egy leválasztott környezetben helyez üzembe egy fürtöt a legújabb Kubernetes-verzióval. 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: Kényszerített frissítés.

Következő lépések