Samouczek: uaktualnianie rozwiązania Kubernetes w usłudze Azure Kubernetes Service (AKS)
W ramach cyklu życia aplikacji i klastra możesz przeprowadzić uaktualnienie do najnowszej dostępnej wersji platformy Kubernetes. Klaster Azure Kubernetes Service (AKS) można uaktualnić przy użyciu interfejsu wiersza polecenia platformy Azure, Azure PowerShell lub Azure Portal.
Z tego samouczka, część siedem z siedmiu, dowiesz się, jak wykonywać następujące działania:
- Identyfikowanie bieżących i dostępnych wersji platformy Kubernetes.
- Uaktualnij węzły kubernetes.
- Sprawdź poprawność pomyślnego uaktualnienia.
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 nim aplikację. Jeśli te kroki nie zostały wykonane i chcesz wykonać czynności opisane w tym samouczku, zacznij od artykułu Samouczek 1: przygotowywanie aplikacji dla usługi AKS.
- Jeśli używasz 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. - Jeśli używasz Azure PowerShell, ten samouczek wymaga 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.18.10 i wyświetla listę dostępnych wersji w ramach uaktualnień.
{ "agentPoolProfiles": null, "controlPlaneProfile": { "kubernetesVersion": "1.18.10", ... "upgrades": [ { "isPreview": null, "kubernetesVersion": "1.19.1" }, { "isPreview": null, "kubernetesVersion": "1.19.3" } ] }, ... }
Uaktualnianie klastra
Węzły usługi AKS są starannie odprowadzane i opróżniane w celu zminimalizowania potencjalnych zakłóceń w uruchamianiu aplikacji. W trakcie tego procesu usługa AKS wykonuje następujące kroki:
- Dodaje nowy węzeł buforu (lub dowolną liczbę węzłów skonfigurowanych w maksymalnym skoku) do klastra z uruchomioną określoną wersją platformy Kubernetes.
- Kordony i opróżniają 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ł jest w pełni opróżniony, jest odtwarzany z obrazu, 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 jest powtarzany 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 saldo strefy.
Uwaga
Jeśli nie określono poprawki, klaster zostanie automatycznie uaktualniony do najnowszej poprawki ogólnie dostępnej określonej wersji pomocniczej. Na przykład ustawienie parametru --kubernetes-version
spowoduje 1.21
uaktualnienie klastra do .1.21.9
W przypadku uaktualniania przez wersję pomocniczą aliasu obsługiwana jest tylko wyższa wersja pomocnicza. Na przykład uaktualnienie z programu do 1.20.x
1.20
nie spowoduje wyzwolenia uaktualnienia do najnowszej poprawki ogólnie dostępnej, ale uaktualnienie do 1.21
programu spowoduje wyzwolenie uaktualnienia do najnowszej poprawki ogólnie 1.20
dostępnej1.21
.
Uaktualnij klaster przy użyciu
az aks upgrade
polecenia .az aks upgrade \ --resource-group myResourceGroup \ --name myAKSCluster \ --kubernetes-version KUBERNETES_VERSION
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 uaktualnić 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.19.1. Zwróć uwagę, że wartość kubernetesVersion jest teraz wyświetlana w wersji 1.19.1.
{ "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" }
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.
- Usuwanie: usuwanie węzła skokowego.
Wyświetl zdarzenia uaktualniania w domyślnych przestrzeniach nazw przy użyciu
kubectl get events
polecenia .kubectl get events
Poniższe przykładowe dane wyjściowe pokazują niektóre z powyższych zdarzeń wymienionych podczas uaktualniania.
... 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) ...
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.19.1:
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
Usuwanie klastra
Ponieważ ten samouczek jest ostatnią częścią serii, możesz usunąć klaster usługi AKS. Węzły kubernetes działają na maszynach wirtualnych platformy Azure i kontynuuj naliczanie opłat, nawet jeśli nie używasz klastra.
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 Azure Active Directory (Azure AD) 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żywasz 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:
- Identyfikowanie bieżących i dostępnych wersji platformy Kubernetes.
- Uaktualnij węzły kubernetes.
- Sprawdź poprawność pomyślnego uaktualnienia.
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.