Oktatóanyag: A Kubernetes frissítése az Azure Kubernetes Service (AKS) szolgáltatásban

Az alkalmazás- és fürtéletciklus részeként érdemes lehet a Kubernetes legújabb elérhető verziójára frissíteni. A Azure Kubernetes Service -fürtöt az Azure CLI, a Azure PowerShell vagy a Azure Portal használatával frissítheti.

Ebben az oktatóanyagban, a hétből hét részből megtudhatja, hogyan:

  • Az aktuális és elérhető Kubernetes-verziók azonosítása.
  • Frissítse a Kubernetes-csomópontokat.
  • Sikeres frissítés ellenőrzése.

Előkészületek

A korábbi oktatóanyagokban egy alkalmazást egy tárolórendszerképbe csomagoltak, és ezt a tárolórendszerképet feltöltötték Azure Container Registry (ACR) szolgáltatásba. Létrehozott egy AKS-fürtöt is. Az alkalmazást ezután üzembe helyezték az AKS-fürtön. Ha még nem tette meg ezeket a lépéseket, és követni szeretné a lépéseket, kezdje az 1. oktatóanyaggal: Alkalmazás előkészítése az AKS-hez.

  • Ha Azure CLI-t használ, ehhez az oktatóanyaghoz az Azure CLI 2.34.1-es vagy újabb verzióját kell futtatnia. A verzió azonosításához futtassa a következőt: az --version. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
  • Ha Azure PowerShell használ, ehhez az oktatóanyaghoz Azure PowerShell 5.9.0-s vagy újabb verzióját kell futtatnia. A verzió azonosításához futtassa a következőt: Get-InstalledModule -Name Az. Ha telepíteni vagy frissíteni szeretne, olvassa el az Azure PowerShell telepítését ismertető cikket.

Az elérhető fürtverziók lekérése

Fürt frissítése előtt az az aks get-upgrades paranccsal ellenőrizze, hogy mely Kubernetes-kiadások érhetők el.

az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster

A következő példakimenetben az aktuális verzió az 1.18.10, az elérhető verziók pedig a frissítések alatt láthatók.

{
  "agentPoolProfiles": null,
  "controlPlaneProfile": {
    "kubernetesVersion": "1.18.10",
    ...
    "upgrades": [
      {
        "isPreview": null,
        "kubernetesVersion": "1.19.1"
      },
      {
        "isPreview": null,
        "kubernetesVersion": "1.19.3"
      }
    ]
  },
  ...
}

Fürt frissítése

Az AKS-csomópontok gondosan vannak elkötve és kiürítve, hogy minimálisra csökkentsék a futó alkalmazások esetleges megszakadását. A folyamat során a következő lépések lesznek végrehajtva:

  1. A Kubernetes-ütemező megakadályozza, hogy további podok legyenek ütemezve egy frissítendő csomóponton.
  2. A csomóponton futó podok a fürt más csomópontjaira vannak ütemezve.
  3. Létrejön egy új csomópont, amely a legújabb Kubernetes-összetevőket futtatja.
  4. Amikor az új csomópont készen áll és csatlakozik a fürthöz, a Kubernetes-ütemező megkezdi a podok futtatását az új csomóponton.
  5. A régi csomópont törlődik, és a fürt következő csomópontja megkezdi a kordon- és ürítési folyamatot.

Megjegyzés

Ha nincs megadva javítás, a fürt automatikusan frissül a megadott alverzió legújabb ga-javítására. A beállítás például --kubernetes-version azt eredményezi, hogy 1.21 a fürt a következőre 1.21.9frissül: .

Ha alias-alverzióval frissít, csak egy magasabb alverzió támogatott. Például a verzióról 1.20.x1.20 való frissítés nem indítja el a legújabb általánosan elérhető 1.20 javításra való frissítést, de a 1.21 verzióra való frissítés a legújabb általánosan 1.21 elérhető javításra való frissítést váltja ki.

Az AKS-fürt frissítéséhez használja az az aks upgrade parancsot.

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --kubernetes-version KUBERNETES_VERSION

Megjegyzés

Egyszerre csak egy alverzió frissíthető. Frissíthet például 1.14.x-ről1.15.x-re, de közvetlenül nem frissíthet 1.14.x-ről1.16.x-re . Az 1.14.x-ről1.16.x-re való frissítéshez először 1.14.x-ről1.15.x-re kell frissítenie, majd újabb frissítést kell végrehajtania 1.15.x-ről1.16.x-re.

Az alábbi példakimenet az 1.19.1-re való frissítés eredményét mutatja be. Figyelje meg, hogy a kubernetesVersion most az 1.19.1-et jelenti.

{
  "agentPoolProfiles": [
    {
      "count": 3,
      "maxPods": 110,
      "name": "nodepool1",
      "osType": "Linux",
      "storageProfile": "ManagedDisks",
      "vmSize": "Standard_DS1_v2",
    }
  ],
  "dnsPrefix": "myAKSClust-myResourceGroup-19da35",
  "enableRbac": false,
  "fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io",
  "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
  "kubernetesVersion": "1.19.1",
  "location": "eastus",
  "name": "myAKSCluster",
  "type": "Microsoft.ContainerService/ManagedClusters"
}

A frissítési események megtekintése

A fürt frissítésekor a következő Kubernetes-események fordulhatnak elő a csomópontokon:

  • Túlfeszültség: Túlfeszültség-csomópont létrehozása.
  • Kiürítés: A podok kiürítése folyamatban van a csomópontból. A kiürítés befejezéséhez minden pod 5 perces időtúllépéssel rendelkezik.
  • Frissítés: A csomópont frissítése sikeres vagy sikertelen volt.
  • Törlés: Túlfeszültség-csomópont törlése.

A használatával kubectl get events eseményeket jeleníthet meg az alapértelmezett névterekben frissítés futtatásakor.

kubectl get events 

Az alábbi példakimenet a frissítés során felsorolt fenti események némelyikét mutatja be.

...
default 2m1s Normal Drain node/aks-nodepool1-96663640-vmss000001 Draining node: [aks-nodepool1-96663640-vmss000001]
...
default 9m22s Normal Surge node/aks-nodepool1-96663640-vmss000002 Created a surge node [aks-nodepool1-96663640-vmss000002 nodepool1] for agentpool %!s(MISSING)
...

Frissítés ellenőrzése

Ellenőrizze, hogy a frissítés sikeres volt-e az az aks show paranccsal.

az aks show --resource-group myResourceGroup --name myAKSCluster --output table

Az alábbi példakimenet a KubernetesVersion 1.19.1-et futtató AKS-fürtöt mutatja be:

Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
myAKSCluster  eastus      myResourceGroup  1.19.1               1.19.1                    Succeeded            myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io

A fürt törlése

Mivel ez az oktatóanyag a sorozat utolsó része, érdemes lehet törölnie az AKS-fürtöt. A Kubernetes-csomópontok Azure-beli virtuális gépeken futnak, és továbbra is díjat számítanak fel, még akkor is, ha nem használja a fürtöt.

Az az group delete paranccsal eltávolíthatja az erőforráscsoportot, a tárolószolgáltatást és az összes kapcsolódó erőforrást.

az group delete --name myResourceGroup --yes --no-wait

Megjegyzés

A fürt törlésekor az AKS-fürt által használt Azure Active Directory-szolgáltatásnév (AAD) nem lesz eltávolítva. A szolgáltatásnév eltávolításának lépéseiért lásd az AKS-szolgáltatásnevekre vonatkozó szempontokat és a szolgáltatásnevek törlését ismertető cikket. Ha felügyelt identitást használt, az identitást a platform kezeli, és nincs szükség titkos kódok kiépítésére vagy elforgatására.

Következő lépések

Ebben az oktatóanyagban frissítettük a Kubernetest egy AKS-fürtben. Megtanulta végrehajtani az alábbi műveleteket:

  • Az aktuális és elérhető Kubernetes-verziók azonosítása.
  • Frissítse a Kubernetes-csomópontokat.
  • Sikeres frissítés ellenőrzése.

Az AKS-ről további információt az AKS áttekintése című témakörben talál. A teljes megoldások AKS-sel való létrehozásával kapcsolatos útmutatásért lásd: AKS-megoldásokkal kapcsolatos útmutató.