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 zaktualizujesz klaster AKS. Nauczysz się, jak:
- Zidentyfikuj bieżące i dostępne wersje platformy Kubernetes.
- Zaktualizuj węzły Kubernetes.
- Zweryfikuj pomyślne uaktualnienie.
W poprzednich samouczkach spakowałeś aplikację do obrazu kontenerowego i przekazałeś obraz kontenerowy do usługi Azure Container Registry (ACR). Utworzyłeś również klaster AKS i wdrożyłeś w nim 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"
}
]
},
...
}
Przed uaktualnieniem sprawdź, które wersje platformy Kubernetes są dostępne dla klastra i regionu, w którym znajduje się klaster przy użyciu Get-AzAksCluster
polecenia cmdlet .
Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster |
Select-Object -Property Name, CurrentKubernetesVersion, Location
Następujące przykładowe dane wyjściowe pokazują bieżącą wersję jako 1.28.9 i lokalizację westus2:
Name CurrentKubernetesVersion Location
---- ------------------------ --------
myAKSCluster 1.28.9 westus2
Sprawdź, które wersje aktualizacji Kubernetes są dostępne w regionie, w którym znajduje się klaster, przy użyciu polecenia cmdlet Get-AzAksVersion
.
Get-AzAksVersion -Location westus2 | Where-Object OrchestratorVersion
W poniższych przykładowych danych wyjściowych przedstawiono dostępne wersje w obszarze OrchestratorVersion
:
Default IsPreview OrchestratorType OrchestratorVersion
------- --------- ---------------- -------------------
Kubernetes 1.29.4
Kubernetes 1.29.2
True Kubernetes 1.28.9
Kubernetes 1.28.5
...
Zaloguj się w witrynie Azure Portal.
Przejdź do swojego klastra AKS.
Z menu usługi w obszarze Ustawienia wybierz pozycję Konfiguracja klastra.
W wersji platformy Kubernetes wybierz pozycję Uaktualnij wersję. Spowoduje to przekierowanie do nowej strony.
W wersji platformy Kubernetes wybierz wersję, aby sprawdzić dostępność uaktualnień.
Jeśli nie są dostępne żadne uaktualnienia, utwórz nowy klaster z obsługiwaną wersją platformy Kubernetes i zmigruj obciążenia z istniejącego klastra do nowego klastra. Nie jest obsługiwane uaktualnianie klastra do nowszej wersji rozwiązania Kubernetes, gdy nie są dostępne żadne uaktualnienia.
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 AKS wykonuje następujące czynności:
- Dodaje nowy węzeł buforowy (lub taką liczbę węzłów, jak określono w maksymalnym wzroście) do klastra, który ma uruchomioną określoną wersję Kubernetes.
-
Zakordonować i opróżnić zasoby jednego ze starych węzłów, aby zminimalizować zakłócenia działających aplikacji. Jeśli używasz maksymalnego limitu, ogranicza i opróżnia tyle węzłów jednocześnie, ile wynosi określona liczba węzłów buforowych.
- Gdy stary węzeł zostanie w pełni opróżniony, zostanie ponownie zainstalowany, aby zainstalować nową wersję i staje się węzłem buforowym dla następnego 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ównowagę stref.
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.westus2.azmk8s.io",
"id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
"kubernetesVersion": "1.29.2",
"location": "westus2",
"name": "myAKSCluster",
"type": "Microsoft.ContainerService/ManagedClusters"
...
}
Uaktualnij klaster przy użyciu Set-AzAksCluster
polecenia cmdlet .
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -KubernetesVersion <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 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, najpierw uaktualnij z wersji 1.14.x do wersji 1.15.x, a następnie wykonaj 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:
...
ProvisioningState : Succeeded
MaxAgentPools : 100
KubernetesVersion : 1.29.2
CurrentKubernetesVersion : 1.29.2
...
ResourceGroupName : myResourceGroup
Name : myAKSCluster
Type : Microsoft.ContainerService/ManagedClusters
Location : westus2
Tags :
W portalu Azure przejdź do swojego klastra AKS.
Z menu usługi w obszarze Ustawienia wybierz pozycję Konfiguracja klastra.
W wersji platformy Kubernetes wybierz pozycję Uaktualnij wersję. Spowoduje to przekierowanie do nowej strony.
W wersji Kubernetes wybierz odpowiednią wersję, a następnie wybierz Zapisz.
Uaktualnienie klastra trwa kilka minut, w zależności od liczby węzłów, które masz.
Ustaw kanał automatycznego uaktualniania na klastrze, używając polecenia az aks update
z parametrem --auto-upgrade-channel
ustawionym na patch
.
az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
Ustaw kanał automatycznego uaktualniania na swoim klastrze za pomocą polecenia cmdlet Set-AzAksCluster
z parametrem -AutoUpgradeChannel
ustawionym na Patch
.
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -AutoUpgradeChannel Patch
W portalu Azure przejdź do klastra AKS.
Z menu usługi w obszarze Ustawienia wybierz pozycję Konfiguracja klastra.
W wersji platformy Kubernetes wybierz pozycję Uaktualnij wersję.
W obszarze Automatyczne uaktualnianie wybierz pozycję Włączone z poprawką (zalecane)>Zapisz.
Aby uzyskać więcej informacji, zobacz Automatyczne uaktualnianie klastra usługi Azure Kubernetes Service (AKS).
Aktualizacja obrazów węzłów AKS
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 aktualizacje obrazów systemów operacyjnych węzłów klastra usługi Azure Kubernetes Service (AKS), zobacz Automatyczne aktualizacje obrazów systemów operacyjnych węzłów usługi Azure Kubernetes Service (AKS).
Wyświetl zdarzenia aktualizacji
Uwaga
Podczas aktualizacji klastra w węzłach mogą wystąpić następujące zdarzenia Kubernetes:
-
Surge: utwórz węzeł Surge.
-
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ł przeciążeniowy.
Wyświetl zdarzenia uaktualniania w domyślnych przestrzeniach nazw przy użyciu polecenia kubectl get events
.
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 działa na wersji KubernetesVersion 1.27.3:
Name Location ResourceGroup KubernetesVersion CurrentKubernetesVersion ProvisioningState Fqdn
------------ ---------- --------------- ------------------- ------------------------ ------------------- ----------------------------------------------------------------
myAKSCluster westus2 myResourceGroup 1.29.2 1.29.2 Succeeded myaksclust-myresourcegroup-19da35-bd54a4be.hcp.westus2.azmk8s.io
Upewnij się, że uaktualnienie zakończyło się pomyślnie, używając polecenia cmdlet Get-AzAksCluster
.
Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster |
Select-Object -Property Name, Location, KubernetesVersion, ProvisioningState
Następujące przykładowe dane wyjściowe pokazują, że klaster AKS działa na KubernetesVersion 1.27.3:
Name Location KubernetesVersion ProvisioningState
---- -------- ----------------- -----------------
myAKSCluster westus2 1.29.2 Succeeded
W portalu Azure przejdź do klastra AKS.
Na stronie Przegląd wybierz wersję platformy Kubernetes i upewnij się, że jest to najnowsza wersja zainstalowana w poprzednim kroku.
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
Usuń grupę zasobów, usługę kontenera i wszystkie powiązane zasoby przy użyciu Remove-AzResourceGroup
polecenia cmdlet .
Remove-AzResourceGroup -Name myResourceGroup
W Azure Portal przejdź do klastra AKS.
Na stronie Przegląd wybierz pozycję Usuń.
Na stronie potwierdzenia usunięcia klastra, wybierz pozycję Usuń.
W tym samouczku zaktualizowałeś Kubernetes w klastrze AKS. Nauczyłeś się, jak:
- Zidentyfikuj bieżące i dostępne wersje platformy Kubernetes.
- Aktualizuj 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.