Samouczek — uaktualnianie klastra usługi Azure Kubernetes Service (AKS)
W ramach cyklu życia aplikacji i klastra możesz przeprowadzić uaktualnienie do najnowszej dostępnej wersji rozwiązania Kubernetes. Klaster usługi Azure Kubernetes Service (AKS) można uaktualnić przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal.
W tym samouczku, część siedem z siedmiu, uaktualniasz klaster usługi AKS. Dowiedz się, jak odbywa się:
- Zidentyfikuj bieżące i dostępne wersje platformy Kubernetes.
- Uaktualnij węzły kubernetes.
- Zweryfikuj pomyślne uaktualnienie.
Zanim rozpoczniesz
W poprzednich samouczkach spakujesz aplikację do obrazu kontenera i przekazano obraz kontenera do usługi Azure Container Registry (ACR). Utworzono również klaster usługi AKS i wdrożono w niej aplikację. Jeśli te kroki nie zostały wykonane i chcesz wykonać te czynności, zacznij od samouczka 1 — Przygotowywanie aplikacji dla usługi AKS.
W przypadku korzystania z interfejsu wiersza polecenia platformy Azure ten samouczek wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.34.1 lub nowszej. Uruchom polecenie az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
W przypadku korzystania z programu Azure PowerShell ten samouczek wymaga programu Azure PowerShell w wersji 5.9.0 lub nowszej. Uruchom polecenie Get-InstalledModule -Name Az
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie programu Azure PowerShell.
Pobieranie dostępnych wersji klastrów
Przed uaktualnieniem sprawdź, które wersje platformy Kubernetes są dostępne dla klastra
az aks get-upgrades
przy użyciu polecenia .az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
Poniższe przykładowe dane wyjściowe pokazują bieżącą wersję jako 1.28.9 i wyświetla listę dostępnych wersji w obszarze
upgrades
:{ "agentPoolProfiles": null, "controlPlaneProfile": { "kubernetesVersion": "1.28.9", ... "upgrades": [ { "isPreview": null, "kubernetesVersion": "1.29.4" }, { "isPreview": null, "kubernetesVersion": "1.29.2" } ] }, ... }
Uaktualnianie klastra AKS
Węzły usługi AKS są starannie kordonowane i opróżniane, aby zminimalizować wszelkie potencjalne zakłócenia działania aplikacji. Podczas tego procesu usługa AKS wykonuje następujące czynności:
- Dodaje nowy węzeł buforu (lub dowolną liczbę węzłów skonfigurowanych w maksymalnym wzroście) do klastra z uruchomioną określoną wersją platformy Kubernetes.
- Cordons i opróżnia jeden ze starych węzłów, aby zminimalizować zakłócenia działania aplikacji. Jeśli używasz maksymalnego wzrostu, kordony i opróżniają tyle węzłów w tym samym czasie co określona liczba węzłów buforu.
- Gdy stary węzeł zostanie w pełni opróżniony, zostanie ponownie wyświetlony obraz, aby otrzymać nową wersję i staje się węzłem buforu dla następującego węzła, który ma zostać uaktualniony.
- Ten proces powtarza się do momentu uaktualnienia wszystkich węzłów w klastrze.
- Na końcu procesu ostatni węzeł buforu jest usuwany, zachowując istniejącą liczbę węzłów agenta i równoważenie strefy.
Uwaga
Jeśli nie określono poprawki, klaster automatycznie uaktualnia do najnowszej ogólnie dostępnej poprawki określonej wersji pomocniczej. Na przykład ustawienie powoduje --kubernetes-version
1.28
uaktualnienie klastra do 1.28.9
.
Aby uzyskać więcej informacji, zobacz Obsługiwane uaktualnienia wersji pomocniczej Kubernetes w usłudze AKS.
Możesz ręcznie uaktualnić klaster lub skonfigurować automatyczne uaktualnienia klastra. Zalecamy skonfigurowanie automatycznych uaktualnień klastra w celu zapewnienia, że klaster jest zawsze uruchomiony w najnowszej wersji rozwiązania Kubernetes.
Ręczne uaktualnianie klastra
Uaktualnij klaster przy użyciu
az aks upgrade
polecenia .az aks upgrade \ --resource-group myResourceGroup \ --name myAKSCluster \ --kubernetes-version KUBERNETES_VERSION
Zostanie wyświetlony monit o potwierdzenie operacji uaktualniania i potwierdzenie, że chcesz uaktualnić płaszczyznę sterowania i wszystkie pule węzłów do wybranej wersji rozwiązania Kubernetes:
Are you sure you want to perform this operation? (y/N): y Since control-plane-only argument is not specified, this will upgrade the control plane AND all nodepools to version 1.29.2. Continue? (y/N): y
Uwaga
Jednocześnie można uaktualnić tylko jedną wersję pomocniczą. Na przykład można uaktualnić z wersji 1.14.x do wersji 1.15.x, ale nie można przeprowadzić uaktualnienia z wersji 1.14.x do wersji 1.16.x bezpośrednio. Aby uaktualnić z wersji 1.14.x do wersji 1.16.x, należy najpierw uaktualnić z wersji 1.14.x do wersji 1.15.x, a następnie wykonać kolejne uaktualnienie z wersji 1.15.x do wersji 1.16.x.
Poniższe przykładowe dane wyjściowe pokazują wynik uaktualnienia do wersji 1.29.2. Zwróć uwagę, że teraz jest wyświetlana
kubernetesVersion
wersja 1.29.2:{ ... "agentPoolProfiles": [ { ... "count": 3, "currentOrchestratorVersion": "1.29.2", "maxPods": 110, "name": "nodepool1", "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202405.27.0", "orchestratorVersion": "1.29.2", "osType": "Linux", "upgradeSettings": { "drainTimeoutInMinutes": null, "maxSurge": "10%", "nodeSoakDurationInMinutes": null, "undrainableNodeBehavior": null }, "vmSize": "Standard_DS2_v2", ... } ], ... "currentKubernetesVersion": "1.29.2", "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.29.2", "location": "eastus", "name": "myAKSCluster", "type": "Microsoft.ContainerService/ManagedClusters" ... }
Konfigurowanie automatycznych uaktualnień klastra
Ustaw kanał automatycznego uaktualniania w klastrze przy użyciu
az aks update
polecenia z parametrem ustawionym--auto-upgrade-channel
napatch
.az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
Aby uzyskać więcej informacji, zobacz Automatyczne uaktualnianie klastra usługi Azure Kubernetes Service (AKS).
Uaktualnianie obrazów węzłów usługi AKS
Usługa AKS regularnie udostępnia nowe obrazy węzłów. Obrazy węzłów systemu Linux są aktualizowane co tydzień, a obrazy węzłów systemu Windows są aktualizowane co miesiąc. Zalecamy częste uaktualnianie obrazów węzłów w celu korzystania z najnowszych funkcji i aktualizacji zabezpieczeń usługi AKS. Aby uzyskać więcej informacji, zobacz Uaktualnianie obrazów węzłów w usłudze Azure Kubernetes Service (AKS). Aby skonfigurować automatyczne uaktualnienia obrazów węzłów, zobacz Automatyczne uaktualnianie obrazów systemu operacyjnego węzła klastra usługi Azure Kubernetes Service (AKS).
Wyświetlanie zdarzeń uaktualniania
Uwaga
Podczas uaktualniania klastra na węzłach mogą wystąpić następujące zdarzenia kubernetes:
- Wzrost: utwórz węzeł skokowy.
- Opróżnianie: eksmitują zasobniki z węzła. Każdy zasobnik ma pięciominutowy limit czasu umożliwiający ukończenie eksmisji.
- Aktualizacja: aktualizacja węzła zakończyła się powodzeniem lub niepowodzeniem.
- Usuń: usuń węzeł skokowy.
Wyświetl zdarzenia uaktualniania w domyślnych przestrzeniach nazw przy użyciu
kubectl get events
polecenia .kubectl get events --field-selector source=upgrader
W poniższych przykładowych danych wyjściowych przedstawiono niektóre z powyższych zdarzeń wymienionych podczas uaktualniania:
LAST SEEN TYPE REASON OBJECT MESSAGE ... 5m Normal Drain node/aks-nodepool1-96663640-vmss000000 Draining node: aks-nodepool1-96663640-vmss000000 5m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Deleting node aks-nodepool1-96663640-vmss000000 from API server 4m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Successfully reimaged node: aks-nodepool1-96663640-vmss000000 4m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Successfully upgraded node: aks-nodepool1-96663640-vmss000000 4m Normal Drain node/aks-nodepool1-96663640-vmss000000 Draining node: aks-nodepool1-96663640-vmss000000 ...
Weryfikowanie uaktualnienia
Upewnij się, że uaktualnienie zakończyło się pomyślnie, używając
az aks show
polecenia .az aks show --resource-group myResourceGroup --name myAKSCluster --output table
Następujące przykładowe dane wyjściowe pokazują, że klaster usługi AKS uruchamia platformę KubernetesVersion 1.27.3:
Name Location ResourceGroup KubernetesVersion CurrentKubernetesVersion ProvisioningState Fqdn ------------ ---------- --------------- ------------------- ------------------------ ------------------- ---------------------------------------------------------------- myAKSCluster eastus myResourceGroup 1.29.2 1.29.2 Succeeded myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io
Usuwanie klastra
Ponieważ ten samouczek jest ostatnią częścią serii, możesz usunąć klaster usługi AKS, aby uniknąć naliczania opłat za platformę Azure.
Usuń grupę zasobów, usługę kontenera i wszystkie powiązane zasoby przy użyciu
az group delete
polecenia .az group delete --name myResourceGroup --yes --no-wait
Uwaga
Po usunięciu klastra jednostka usługi Microsoft Entra używana przez klaster usługi AKS nie zostanie usunięta. Aby sprawdzić, jak usunąć jednostkę usługi, zobacz AKS service principal considerations and deletion (Uwagi dotyczące jednostki usługi AKS i jej usuwanie). Jeśli użyto tożsamości zarządzanej, tożsamość jest zarządzana przez platformę i nie wymaga aprowizacji ani rotacji żadnych wpisów tajnych.
Następne kroki
W tym samouczku uaktualniane jest rozwiązanie Kubernetes w klastrze AKS. W tym samouczku omówiono:
- Zidentyfikuj bieżące i dostępne wersje platformy Kubernetes.
- Uaktualnij węzły kubernetes.
- Zweryfikuj pomyślne uaktualnienie.
Aby uzyskać więcej informacji na temat usługi AKS, zobacz Omówienie usługi AKS. Aby uzyskać wskazówki dotyczące tworzenia pełnych rozwiązań za pomocą usługi AKS, zobacz wskazówki dotyczące rozwiązania AKS.
Azure Kubernetes Service