Aggiornare le immagini dei nodi del servizio Azure Kubernetes (AKS)
Il servizio Azure Kubernetes (AKS) offre regolarmente nuove immagini dei nodi, quindi è utile aggiornare frequentemente le immagini dei nodi per usare le funzionalità più recenti del servizio Azure Kubernetes. Le immagini dei nodi Linux vengono aggiornate ogni settimana e le immagini dei nodi Windows vengono aggiornate ogni mese. Gli annunci di aggiornamento delle immagini sono inclusi nelle note sulla versione del servizio Azure Kubernetes e può essere necessaria fino a una settimana perché questi aggiornamenti vengano implementati in tutte le aree. Gli aggiornamenti delle immagini dei nodi possono essere eseguite anche automaticamente e programmate usando la manutenzione pianificata. Per altre informazioni, vedere Aggiornare automaticamente le immagini dei nodi.
Questo articolo illustra come aggiornare le immagini dei nodi del cluster del servizio Azure Kubernetes e come aggiornare le immagini del pool di nodi senza aggiornare la versione di Kubernetes. Per informazioni sull'aggiornamento della versione di Kubernetes per il cluster, vedere Aggiornare un cluster del servizio Azure Kubernetes.
Nota
Il cluster del servizio Azure Kubernetes deve usare i set di scalabilità di macchine virtuali per i nodi.
Non è possibile effettuare il downgrade di una versione dell'immagine del nodo, ad esempio da AKSUbuntu-2204 a AKSUbuntu-1804 o da AKSUbuntu-2204-202308.01.0 a AKSUbuntu-2204-202307.27.0.
Verificare la disponibilità di aggiornamenti delle immagini dei nodi
Verificare la disponibilità di aggiornamenti delle immagini dei nodi usando il comando az aks nodepool get-upgrades
.
az aks nodepool get-upgrades \
--nodepool-name mynodepool \
--cluster-name myAKSCluster \
--resource-group myResourceGroup
L'output mostra latestNodeImageVersion
, come nell'esempio seguente:
{
"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
}
L'output di esempio mostra AKSUbuntu-1604-2020.10.28
come latestNodeImageVersion
.
Confrontare la versione più recente con la versione corrente dell'immagine del nodo usando il comando az aks nodepool show
.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--query nodeImageVersion
L'output dovrebbe essere simile all'esempio seguente:
"AKSUbuntu-1604-2020.10.08"
In questo esempio è disponibile un aggiornamento della versione dell'immagine del nodo, vale a dire dalla versione AKSUbuntu-1604-2020.10.08
alla versione AKSUbuntu-1604-2020.10.28
.
Aggiornare tutte le immagini dei nodi in tutti i pool di nodi
Aggiornare l'immagine del nodo usando il comando az aks upgrade
con il flag --node-image-only
.
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-image-only
È possibile controllare lo stato delle immagini dei nodi usando il comando kubectl get nodes
.
Nota
Questo comando può variare leggermente a seconda della shell usata. Per altre informazioni sugli ambienti Windows e PowerShell, vedere la documentazione JSONPath di Kubernetes.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Al termine dell'aggiornamento, usare il comando az aks show
per ottenere i dettagli aggiornati del pool di nodi. L'immagine del nodo corrente viene visualizzata nella proprietà nodeImageVersion
.
az aks show \
--resource-group myResourceGroup \
--name myAKSCluster
Aggiornare un pool di nodi specifico
Per aggiornare l'immagine del sistema operativo di un pool di nodi senza eseguire un aggiornamento del cluster Kubernetes, usare il comando az aks nodepool upgrade
con il flag --node-image-only
.
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--node-image-only
È possibile controllare lo stato delle immagini dei nodi usando il comando kubectl get nodes
.
Nota
Questo comando può variare leggermente a seconda della shell usata. Per altre informazioni sugli ambienti Windows e PowerShell, vedere la documentazione JSONPath di Kubernetes.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Al termine dell'aggiornamento, usare il comando az aks nodepool show
per ottenere i dettagli aggiornati del pool di nodi. L'immagine del nodo corrente viene visualizzata nella proprietà nodeImageVersion
.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
Aggiornare le immagini dei nodi con node:surge
Per velocizzare il processo di aggiornamento delle immagini dei nodi, è possibile aggiornare le immagini dei nodi usando un valore di picco del nodo personalizzabile. Per impostazione predefinita, il servizio Azure Kubernetes usa un nodo aggiuntivo per configurare gli aggiornamenti.
Se si vuole aumentare la velocità degli aggiornamenti, usare il comando az aks nodepool update
con il flag --max-surge
per configurare il numero di nodi usati per gli aggiornamenti. Per altre informazioni sui compromessi di varie impostazioni di --max-surge
, vedere Personalizzare l'aggiornamento del picco di nodi.
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--max-surge 33% \
--no-wait
È possibile controllare lo stato delle immagini dei nodi usando il comando kubectl get nodes
.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Usare az aks nodepool show
per ottenere i dettagli del pool di nodi aggiornati. L'immagine del nodo corrente viene visualizzata nella proprietà nodeImageVersion
.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
Passaggi successivi
- Per informazioni sulle immagini dei nodi più recenti, vedere le note sulla versione del servizio Azure Kubernetes.
- Di seguito viene descritto come aggiornare la versione di Kubernetes con Aggiornare un cluster del servizio Azure Kubernetes.
- Applicare automaticamente gli aggiornamenti di cluster e pool di nodi con GitHub Actions.
- Altre informazioni su più pool di nodi con Creare più pool di nodi.
- Per una descrizione dettagliata delle procedure consigliate per l'aggiornamento e altre considerazioni, vedere Linee guida per l'aggiornamento e le patch del servizio Azure Kubernetes.