Actualización de la imagen de nodos de Azure Kubernetes Service (AKS)
AKS admite la actualización de las imágenes de un nodo para que esté actualizado con las actualizaciones más recientes del sistema operativo y en tiempo de ejecución. AKS incluye de forma regular imágenes nuevas en las actualizaciones más recientes, por lo que se recomienda actualizar las imágenes del nodo habitualmente para poder disfrutar de 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. Aunque a los clientes se les notifican las actualizaciones de imágenes mediante las notas de la versión de AKS, las actualizaciones pueden tardar hasta una semana en publicarse en todas las regiones. 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 más información sobre las imágenes más recientes proporcionadas por AKS, consulte las notas de la versión de AKS.
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.
Comprobación de si el grupo de nodos está en la imagen de nodo más reciente
Puede ver cuál es la versión más reciente de la imagen de nodo disponible para el grupo de nodos con el siguiente comando:
az aks nodepool get-upgrades \
--nodepool-name mynodepool \
--cluster-name myAKSCluster \
--resource-group myResourceGroup
En la salida puede ver latestNodeImageVersion como en el ejemplo siguiente:
{
"id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/nodepool1/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
}
Por lo tanto, para nodepool1 la imagen de nodo más reciente disponible es AKSUbuntu-1604-2020.10.28. Ahora puede compararla con la versión de la imagen de nodo actual que usa el grupo de nodos mediante la ejecución de:
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--query nodeImageVersion
La siguiente sería una salida de ejemplo:
"AKSUbuntu-1604-2020.10.08"
Por lo tanto, en este ejemplo puede actualizar desde la versión de la imagen actual AKSUbuntu-1604-2020.10.08 a la versión más reciente AKSUbuntu-1604-2020.10.28.
Actualización de todos los nodos de todos los grupos de nodos
La actualización de imágenes de nodo se realiza con az aks upgrade. Para actualizar la imagen de nodo, utilice el siguiente comando:
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-image-only
Durante la actualización, compruebe el estado de las imágenes de nodo con el siguiente comando kubectl, para obtener las etiquetas y filtrar la información de la imagen de nodo actual:
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 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
La actualización de la imagen en un grupo de nodos es similar a la actualización de la imagen en un clúster.
Para actualizar la imagen del sistema operativo del grupo de nodos sin realizar una actualización del clúster de Kubernetes, utilice la opción --node-image-only en el ejemplo siguiente:
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--node-image-only
Durante la actualización, compruebe el estado de las imágenes de nodo con el siguiente comando kubectl, para obtener las etiquetas y filtrar la información de la imagen de nodo actual:
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 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, use el valor --max-surge para configurar el número de nodos que se usarán para las actualizaciones, de forma que se completen más rápido. Para obtener más información sobre las ventajas e inconvenientes de varias configuraciones de --max-surge, consulte --max-surge.
El siguiente comando establece el valor máximo de sobrecarga para realizar una actualización de imagen de nodo:
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--max-surge 33% \
--node-image-only \
--no-wait
Durante la actualización, compruebe el estado de las imágenes de nodo con el siguiente comando kubectl, para obtener las etiquetas y filtrar la información de la imagen de nodo actual:
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 y cómo actualizar los grupos de nodos con Creación y administración de varios grupos de nodos.