Megosztás a következőn keresztül:


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.

  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é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.
  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ósrendszer-rendszerkép 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 ú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.
  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 --forceparancsot. 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:

  1. Keresse meg és szerkessze az api-model.json üzembe helyezés során létrehozott fájlt. Ennek a fájlnak ugyanazzal a fájllal aks-enginekell 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
  2. Keresse meg a szakaszokat masterProfile , és agentPoolProfilesezen szakaszokon belül módosítsa a következő értékre distro aks-ubuntu-20.04: .
  3. Mentse a api-model.json fájlt, és használja a fájlt a aks-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:

  1. Az Azure Disk CSI-illesztőprogram telepítése
  2. Az elavult faalapú tárolási osztályok eltávolítása
  3. 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ékre Retain 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).
  • 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