Share via


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.

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

  2. Gyűjtse össze a parancs futtatásához upgrade szükséges adatokat. A upgrade 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.
  3. 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
    
  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-lemezkép frissítésének lépései

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

  1. 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űveletekhez aks-engine: . Az AKS Engine 0.75.3-as és újabb verzióiban használja a következőt aks-engine-azurestack: .
  2. Keresse meg a és a masterProfile szakaszokat az ezekben a szakaszokban, és módosítsa a értékét a értékre distroaks-ubuntu-20.04.agentPoolProfiles
  3. Mentse a api-model.json fájlt, és használja a fájlt a aks-engin upgradeapi-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-managerkü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.useCloudControllerManagertrue. 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-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á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:

  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 ú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ékre Retain 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á egy csi 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