Actualización de imágenes de nodos de Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS) proporciona regularmente nuevas imágenes de nodo, por lo que resulta conveniente actualizar las imágenes de nodo con frecuencia para usar las características más recientes de AKS. Las imágenes de nodo de Linux se actualizan semanalmente, mientras que las de Windows se actualizan mensualmente. Los anuncios de actualización de imágenes se incluyen en las notas de la versión de AKS y pueden tardar hasta una semana en implementarse en todas las regiones. Las actualizaciones de imágenes de nodo también se pueden realizar automáticamente y programar mediante el mantenimiento planeado. Para más información, vea Actualización automática de imágenes de nodo.
En este artículo se muestra cómo actualizar las imágenes de nodo de un clúster de AKS y cómo actualizar las imágenes de grupo de nodos sin actualizar la versión de Kubernetes. Para obtener información sobre la actualización de la versión del clúster de Kubernetes, vea Actualización de un clúster de AKS.
Nota
El clúster de AKS debe usar conjuntos de escalado de máquinas virtuales para los nodos.
No es posible cambiar a una versión anterior de imagen de nodo (por ejemplo , AKSUbuntu-2204 a AKSUbuntu-1804 o AKSUbuntu-2204-202308.01.0 a AKSUbuntu-2204-202307.27.0).
Comprobar las actualizaciones de imágenes de nodo disponibles
Compruebe si hay actualizaciones de imágenes de nodo disponibles mediante el comando az aks nodepool get-upgrades
.
az aks nodepool get-upgrades \
--nodepool-name mynodepool \
--cluster-name myAKSCluster \
--resource-group myResourceGroup
La salida muestra la latestNodeImageVersion
como en el ejemplo siguiente:
{
"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
}
La salida de ejemplo muestra AKSUbuntu-1604-2020.10.28
como la latestNodeImageVersion
.
Compare la versión más reciente con la versión actual de la imagen de nodo mediante el comando az aks nodepool show
.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--query nodeImageVersion
La salida debería similar al siguiente ejemplo:
"AKSUbuntu-1604-2020.10.08"
En este ejemplo, hay una actualización de la versión de la imagen de nodo disponible, que es de la versión AKSUbuntu-1604-2020.10.08
a la versión AKSUbuntu-1604-2020.10.28
.
Actualización de todas las imágenes de nodos de todos los grupos de nodos
Actualice la imagen de nodo mediante el comando az aks upgrade
con la marca --node-image-only
.
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-image-only
Puede comprobar el estado de las imágenes de nodo mediante el comando kubectl get nodes
.
Nota
Este comando puede diferir ligeramente en función del shell que use. Para obtener más información sobre los entornos de Windows o PowerShell consulte la documentación de JSONPath de Kubernetes.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Una vez completada la actualización, use el comando az aks show
para obtener los detalles actualizados del grupo de nodos. La imagen del nodo actual se muestra en la propiedad nodeImageVersion
.
az aks show \
--resource-group myResourceGroup \
--name myAKSCluster
Actualización de un grupo de nodos específico
Para actualizar la imagen del sistema operativo de un grupo de nodos sin realizar una actualización del clúster de Kubernetes, utilice el comando az aks nodepool upgrade
con la marca --node-image-only
.
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--node-image-only
Puede comprobar el estado de las imágenes de nodo con el comando kubectl get nodes
.
Nota
Este comando puede diferir ligeramente en función del shell que use. Para obtener más información sobre los entornos de Windows o PowerShell consulte la documentación de JSONPath de Kubernetes.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Una vez completada la actualización, use el comando az aks nodepool show
para obtener los detalles actualizados del grupo de nodos. La imagen del nodo actual se muestra en la propiedad nodeImageVersion
.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
Actualización de imágenes de nodo con sobrecarga de nodos
Para acelerar el proceso de actualización de la imagen de nodo, puede actualizar las imágenes de nodo mediante un valor de sobrecarga de nodo personalizable. De forma predeterminada, AKS usa un nodo adicional para configurar las actualizaciones.
Si desea aumentar la velocidad de las actualizaciones, utilice el comando az aks nodepool update
con la marca --max-surge
para configurar el número de nodos utilizados para las actualizaciones. Para obtener más información sobre las ventajas e inconvenientes de varias configuraciones de --max-surge
, consulte --max-surge
.
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--max-surge 33% \
--no-wait
Puede comprobar el estado de las imágenes de nodo con el comando kubectl get nodes
.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Use az aks nodepool show
para obtener los detalles actualizados del grupo de nodos. La imagen del nodo actual se muestra en la propiedad nodeImageVersion
.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
Pasos siguientes
- Consulte las notas de la versión de AKS para más información sobre las imágenes de nodo más recientes.
- Obtenga información sobre cómo actualizar la versión de Kubernetes con Actualización de un clúster de AKS.
- Aplicación de actualizaciones de grupos de nodos y clústeres automáticamente con Acciones de GitHub.
- Obtenga más información sobre varios grupos de nodos con Creación de varios grupos de nodos.
- Para obtener una explicación detallada de los procedimientos recomendados de actualización y otras consideraciones, consulte Guía de actualización y revisión de AKS.