Uaktualnianie obrazów węzłów usługi Azure Kubernetes Service (AKS)

Usługa Azure Kubernetes Service (AKS) regularnie udostępnia nowe obrazy węzłów, dlatego korzystne jest częste uaktualnianie obrazów węzłów w celu korzystania z najnowszych funkcji usługi AKS. Obrazy węzłów systemu Linux są aktualizowane co tydzień, a obrazy węzłów systemu Windows są aktualizowane co miesiąc. Ogłoszenia o uaktualnieniu obrazów są uwzględniane w informacjach o wersji usługi AKS i wdrożenie tych aktualizacji we wszystkich regionach może potrwać do tygodnia. Uaktualnienia obrazów węzłów można również wykonać automatycznie i zaplanować przy użyciu planowanej konserwacji. Aby uzyskać więcej informacji, zobacz Automatyczne uaktualnianie obrazów węzłów.

W tym artykule pokazano, jak uaktualnić obrazy węzłów klastra usługi AKS i jak zaktualizować obrazy puli węzłów bez uaktualniania wersji rozwiązania Kubernetes. Aby uzyskać informacje na temat uaktualniania wersji rozwiązania Kubernetes dla klastra, zobacz Uaktualnianie klastra usługi AKS.

Uwaga

Klaster usługi AKS musi używać zestawów skalowania maszyn wirtualnych dla węzłów.

Nie można obniżyć wersji obrazu węzła (na przykład AKSUbuntu-2204 do AKSUbuntu-1804 lub AKSUbuntu-2204-202308.01.0 do AKSUbuntu-2204-202307.27.0).

Sprawdzanie dostępnych uaktualnień obrazu węzła

Sprawdź dostępne uaktualnienia obrazu węzła az aks nodepool get-upgrades przy użyciu polecenia .

az aks nodepool get-upgrades \
    --nodepool-name mynodepool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

Dane wyjściowe przedstawiają element latestNodeImageVersion, jak w poniższym przykładzie:

{
  "id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/mynodepool/upgradeProfiles/default",
  "kubernetesVersion": "1.17.11",
  "latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
  "name": "default",
  "osType": "Linux",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
  "upgrades": null
}

Przykładowe dane wyjściowe są wyświetlane AKSUbuntu-1604-2020.10.28 jako latestNodeImageVersion.

Porównaj najnowszą wersję z bieżącą wersją obrazu węzła az aks nodepool show przy użyciu polecenia .

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --query nodeImageVersion

Dane wyjściowe powinny wyglądać mniej więcej tak jak w tym przykładzie:

"AKSUbuntu-1604-2020.10.08"

W tym przykładzie istnieje dostępne uaktualnienie wersji obrazu węzła, które pochodzi z wersji do wersji AKSUbuntu-1604-2020.10.08AKSUbuntu-1604-2020.10.28.

Uaktualnianie wszystkich obrazów węzłów we wszystkich pulach węzłów

Uaktualnij obraz węzła przy użyciu az aks upgrade polecenia z flagą --node-image-only .

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-image-only

Stan obrazów węzłów można sprawdzić za pomocą kubectl get nodes polecenia .

Uwaga

To polecenie może się nieco różnić w zależności od używanej powłoki. Aby uzyskać więcej informacji na temat środowisk systemu Windows i programu PowerShell, zobacz dokumentację narzędzia Kubernetes JSONPath.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Po zakończeniu uaktualniania użyj az aks show polecenia , aby uzyskać zaktualizowane szczegóły puli węzłów. Bieżący obraz węzła jest pokazywany we właściwości nodeImageVersion.

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster

Uaktualnianie określonej puli węzłów

Aby zaktualizować obraz systemu operacyjnego puli węzłów bez wykonywania uaktualnienia klastra Kubernetes, użyj az aks nodepool upgrade polecenia z flagą --node-image-only .

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-image-only

Stan obrazów węzłów można sprawdzić za kubectl get nodes pomocą polecenia .

Uwaga

To polecenie może się nieco różnić w zależności od używanej powłoki. Aby uzyskać więcej informacji na temat środowisk systemu Windows i programu PowerShell, zobacz dokumentację narzędzia Kubernetes JSONPath.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Po zakończeniu uaktualniania użyj az aks nodepool show polecenia , aby uzyskać zaktualizowane szczegóły puli węzłów. Bieżący obraz węzła jest pokazywany we właściwości nodeImageVersion.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Uaktualnianie obrazów węzłów za pomocą skoku węzła

Aby przyspieszyć proces uaktualniania obrazu węzła, możesz uaktualnić obrazy węzłów przy użyciu dostosowywanej wartości wzrostu węzła. Domyślnie usługa AKS używa jednego dodatkowego węzła do konfigurowania uaktualnień.

Jeśli chcesz zwiększyć szybkość uaktualnień, użyj az aks nodepool update polecenia z flagą --max-surge , aby skonfigurować liczbę węzłów używanych do uaktualniania. Aby dowiedzieć się więcej o kompromisach różnych --max-surge ustawień, zobacz Dostosowywanie uaktualniania skoków węzłów.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --max-surge 33% \
    --no-wait

Stan obrazów węzłów można sprawdzić za kubectl get nodes pomocą polecenia .

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Użyj az aks nodepool show polecenia , aby uzyskać zaktualizowane szczegóły puli węzłów. Bieżący obraz węzła jest pokazywany we właściwości nodeImageVersion.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Następne kroki