Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Como parte del ciclo de vida de la aplicación y del clúster, es posible que quiera actualizar su versión de Kubernetes a la más reciente disponible. Puede actualizar el clúster de Azure Kubernetes Service (AKS) mediante la CLI de Azure, Azure PowerShell o Azure Portal.
En este tutorial, vamos a actualizar un clúster de AKS. Aprenderá a:
- Identificar las versiones de Kubernetes actuales y disponibles.
- Actualizar los nodos de Kubernetes.
- Validar una actualización exitosa.
Antes de empezar
En los tutoriales anteriores, empaquetó una aplicación en una imagen de contenedor y cargó la imagen de contenedor en Azure Container Registry (ACR). También creó un clúster de AKS e implementó una aplicación en él. Si no ha completado estos pasos, pero quiere seguir con el tutorial, comience por Tutorial 1: Preparación de una aplicación para AKS.
Si se usa la CLI de Azure, en este tutorial se requiere la versión 2.34.1 de la CLI de Azure o cualquier versión posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
Si se usa Azure PowerShell, en este tutorial se requiere la versión 5.9.0 de Azure PowerShell o cualquier versión posterior. Ejecute Get-InstalledModule -Name Az para encontrar la versión. Si necesita instalarla o actualizarla, consulte el artículo sobre la instalación de Azure PowerShell.
Para actualizar un clúster de AKS, necesita el rol colaborador de Azure Kubernetes Service o permisos equivalentes.
Antes de actualizar, revise las notas de la versión de AKS para ver los cambios importantes y las API en desuso. Valide también los presupuestos de interrupción del pod (PDB) de la carga de trabajo, la cuota de proceso disponible y la capacidad ip de subred para los nodos de sobrecarga. Para más información, consulte Opciones de actualización y recomendaciones para clústeres de AKS.
Obtención de versiones de clúster disponibles mediante el CLI de Azure
Antes de actualizar, compruebe qué versiones de Kubernetes están disponibles para el clúster mediante el az aks get-upgrades comando .
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
En la salida de ejemplo siguiente se muestra la versión actual de un clúster y se enumeran las versiones más recientes en upgrades:
{
"agentPoolProfiles": null,
"controlPlaneProfile": {
"kubernetesVersion": "1.33.7",
...
"upgrades": [
{
"isPreview": null,
"kubernetesVersion": "1.34.10"
},
{
"isPreview": null,
"kubernetesVersion": "1.34.9"
}
]
},
...
}
Obtención de versiones de clúster disponibles mediante Azure PowerShell
Antes de actualizar, compruebe la versión y la región actuales de Kubernetes del clúster mediante el
Get-AzAksClustercmdlet .Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster | Select-Object -Property Name, CurrentKubernetesVersion, LocationEn la salida de ejemplo siguiente se muestra la versión y la ubicación actuales del clúster:
Name CurrentKubernetesVersion Location ---- ------------------------ -------- myAKSCluster 1.33.7 westus2Enumere las versiones de Kubernetes disponibles en la región donde reside el clúster mediante el
Get-AzAksVersioncmdlet .Get-AzAksVersion -Location westus2 | Where-Object OrchestratorVersionEn la salida de ejemplo siguiente se muestran las versiones regionales en
OrchestratorVersion:Default IsPreview OrchestratorType OrchestratorVersion ------- --------- ---------------- ------------------- Kubernetes 1.34.10 Kubernetes 1.34.9 True Kubernetes 1.33.7 ...Para identificar posibles destinos de actualización, compare las versiones más recientes que la versión actual del clúster con las reglas de actualización de la versión de Kubernetes. Este cmdlet enumera la disponibilidad regional y no valida la ruta de actualización de un clúster específico.
Obtención de versiones de clúster disponibles mediante el portal de Azure
Inicie sesión en Azure Portal.
Acceda a su recurso de clúster AKS.
En el menú servicio, en Configuración, seleccione Actualizaciones.
Por versión de Kubernetes, seleccione Actualizar a la versión.
En la página Actualizar versión de Kubernetes , seleccione la lista desplegable Versión de Kubernetes para ver las versiones de Kubernetes disponibles para la actualización.
Si no hay actualizaciones disponibles, es posible que el clúster ya esté en la versión disponible más reciente o que la versión del clúster esté fuera de la ventana de soporte técnico. Si la versión no es compatible y AKS no ofrece una actualización de recuperación, cree un clúster con una versión de Kubernetes compatible y migre las cargas de trabajo. Para más información, consulte Directivas de soporte técnico de AKS para versiones de Kubernetes.
Proceso de actualización del clúster de AKS
Los nodos de AKS se acordonarán y vaciarán minuciosamente para minimizar cualquier posible interrupción en las aplicaciones en ejecución. Durante este proceso, AKS realiza los pasos siguientes:
- Agrega un nuevo nodo de búfer (o tantos nodos como se hayan configurado en sobrecarga máxima) al clúster que ejecuta la versión especificada de Kubernetes.
- Aisla y drena uno de los nodos antiguos para minimizar la interrupción de las aplicaciones en ejecución. Si se utiliza la sobrecarga máxima, acordona y drena todos los nodos posibles al mismo tiempo que la cantidad de nodos del buffer especificado.
- Cuando el nodo anterior se ha purgado por completo, se restablece la imagen inicial para recibir la nueva versión y se convierte en el nodo de búfer para el siguiente nodo que se va a actualizar.
- Este proceso se repite hasta que se hayan actualizado todos los nodos del clúster.
- Al final del proceso, se elimina el último nodo del búfer, y se mantiene el número de nodos de agente existentes, así como el equilibrio de zona.
Nota:
Si no se especifica ningún parche, el clúster se actualiza automáticamente al parche GA más reciente de la versión menor especificada. Por ejemplo, si --kubernetes-version se establece en 1.28, el clúster se actualiza a 1.28.9.
Para más información, veaActualizaciones de versión secundaria de Kubernetes admitidas en AKS.
Puede actualizar manualmente el clúster o configurar las actualizaciones automáticas del clúster. Configure las actualizaciones automáticas del clúster para ayudar a mantener el clúster en una versión compatible de Kubernetes.
Actualizar manualmente el clúster mediante el CLI de Azure
Actualice el clúster mediante el az aks upgrade comando . En este ejemplo se actualiza el clúster a la versión 1.34.10:
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version 1.34.10
Nota:
Los clústeres no LTS compatibles deben actualizarse secuencialmente, de una versión secundaria a la siguiente. Por ejemplo, para actualizar de 1.33.x a 1.35.x, actualice primero a 1.34.x. Un clúster de LTS puede omitir las versiones secundarias al pasar a una versión de LTS superior que ofrece AKS si la actualización cumple los requisitos de asimetría de versiones y las comprobaciones de validación. Para más información, consulte Reglas de actualización de versiones de Kubernetes.
En la salida de ejemplo siguiente se muestra el resultado de la actualización. El kubernetesVersion valor ahora coincide con la versión especificada en el comando de ejemplo:
{
...
"agentPoolProfiles": [
{
...
"count": 3,
"currentOrchestratorVersion": "1.34.10",
"maxPods": 110,
"name": "nodepool1",
"nodeImageVersion": "AKSUbuntu-2204gen2containerd-202608.26.0",
"orchestratorVersion": "1.34.10",
"osType": "Linux",
"upgradeSettings": {
"drainTimeoutInMinutes": null,
"maxSurge": "10%",
"nodeSoakDurationInMinutes": null,
"undrainableNodeBehavior": null
},
"vmSize": "Standard_DS2_v2",
...
}
],
...
"currentKubernetesVersion": "1.34.10",
"dnsPrefix": "myAKSClust-myResourceGroup-12ab34",
"enableRbac": false,
"fqdn": "myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io",
"id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
"kubernetesVersion": "1.34.10",
"location": "westus2",
"name": "myAKSCluster",
"type": "Microsoft.ContainerService/ManagedClusters"
...
}
Actualización manual del clúster mediante Azure PowerShell
Actualice el clúster mediante el Set-AzAksCluster cmdlet . En este ejemplo se actualiza el clúster a la versión 1.34.10:
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -KubernetesVersion 1.34.10
Nota:
Los clústeres no LTS admitidos deben actualizarse secuencialmente por versión secundaria. Por ejemplo, para actualizar de 1.33.x a 1.35.x, actualice primero a 1.34.x. Un clúster de LTS puede omitir las versiones secundarias al pasar a una versión de LTS superior que ofrece AKS si la actualización cumple los requisitos de asimetría de versiones y las comprobaciones de validación. Para más información, consulte Reglas de actualización de versiones de Kubernetes.
En la salida de ejemplo siguiente se muestra el resultado de la actualización. El KubernetesVersion valor ahora coincide con la versión especificada en el cmdlet de ejemplo:
...
ProvisioningState : Succeeded
MaxAgentPools : 100
KubernetesVersion : 1.34.10
CurrentKubernetesVersion : 1.34.10
...
ResourceGroupName : myResourceGroup
Name : myAKSCluster
Type : Microsoft.ContainerService/ManagedClusters
Location : westus2
Tags :
Actualización manual del clúster mediante el portal de Azure
En el Azure Portal, vaya al recurso de clúster de AKS.
En el menú servicio, en Configuración, seleccione Actualizaciones.
Por versión de Kubernetes, seleccione Actualizar a la versión.
En la página Actualizar versión de Kubernetes , seleccione la lista desplegable Versión de Kubernetes para ver las versiones de Kubernetes disponibles para la actualización.
Seleccione la versión de Kubernetes a la que desea actualizar y, a continuación, seleccione Guardar.
La duración de la actualización depende de factores como el número de nodos, la configuración de picos de tráfico, las restricciones de interrupción de la carga de trabajo, el tiempo de espera de drenaje y la duración de la estabilización de los nodos. El tiempo de espera de purga predeterminado es de 30 minutos por nodo y se puede configurar de cinco minutos a 24 horas. El tiempo de inmersión del nodo puede añadir de 0 a 30 minutos por nodo. Para obtener más información, consulte Personalizar la configuración de picos y de indisponibilidad del grupo de nodos.
Configuración de actualizaciones automáticas del clúster mediante el CLI de Azure
Configuración de actualizaciones automáticas de clúster mediante Azure PowerShell
Configuración de actualizaciones automáticas del clúster mediante el portal de Azure
Los clústeres automáticos de AKS usan el stable canal y no es necesario configurar un canal. Para los clústeres AKS Standard, seleccione un canal en función de su política de versiones. Los canales stable y rapid actualizan Kubernetes a versiones secundarias posteriores y ayudan a mantener el clúster dentro del intervalo de versiones compatibles. El canal patch solo instala parches para la versión menor actual y no actualiza el clúster a una versión menor más reciente.
En un clúster de AKS Standard, establezca el canal de actualización automática mediante el az aks update comando . En el ejemplo siguiente se usa el stable canal:
az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
En un clúster de AKS Standard, establezca el canal de actualización automática mediante el Set-AzAksCluster cmdlet . En el ejemplo siguiente se usa el Stable canal:
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -AutoUpgradeChannel Stable
En el Azure Portal, vaya al recurso de clúster de AKS.
En el menú servicio, en Configuración, seleccione Actualizaciones.
Por versión de Kubernetes, seleccione Actualizar a la versión.
Para un clúster de AKS Standard, en la página Actualizar versión de Kubernetes , seleccione la lista desplegable Actualización automática , seleccione Habilitado con estable y, a continuación, seleccione Guardar.
Para más información, consulte Actualización automática de un clúster de Azure Kubernetes Service (AKS).
Actualización de imágenes de nodo
AKS proporciona regularmente nuevas imágenes de nodo. Las imágenes de nodo de Linux se actualizan semanalmente, mientras que las de Windows se actualizan mensualmente. Le recomendamos que actualice las imágenes de nodo con frecuencia para usar las últimas características y actualizaciones de seguridad de AKS. Para más información, consulte Actualización de imágenes de nodo de Azure Kubernetes Service (AKS). Para configurar las actualizaciones automáticas de imágenes de nodo, consulte Actualización automática de las imágenes de sistema operativo de nodo de clúster de Azure Kubernetes Service (AKS).
Visualización de eventos de actualización
Nota:
Al actualizar el clúster, pueden producirse los siguientes eventos de Kubernetes en los nodos:
- Sobrecarga: se crea un nodo de sobrecarga.
- Purga: se desalojan pods del nodo. AKS permite 30 minutos para drenar un nodo de forma predeterminada. Puede configurar el tiempo de espera de vaciado entre cinco minutos y 24 horas.
- Actualización: la actualización de un nodo se ha realizado correctamente o ha generado un error.
- Eliminación: se ha eliminado un nodo de sobrecarga.
Use el comando kubectl get con un selector de campos para ver los eventos del programa de actualización de AKS en el espacio de nombres predeterminado.
kubectl get events --field-selector source=upgrader
En la salida de ejemplo siguiente se muestran algunos de los eventos anteriores enumerados durante una actualización:
LAST SEEN TYPE REASON OBJECT MESSAGE
...
5m Normal Drain node/aks-nodepool1-12345678-vmss000000 Draining node: aks-nodepool1-12345678-vmss000000
5m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Deleting node aks-nodepool1-12345678-vmss000000 from API server
4m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Successfully reimaged node: aks-nodepool1-12345678-vmss000000
4m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Successfully upgraded node: aks-nodepool1-12345678-vmss000000
4m Normal Drain node/aks-nodepool1-12345678-vmss000000 Draining node: aks-nodepool1-12345678-vmss000000
...
Validar una actualización mediante el CLI de Azure
Confirme que la actualización se realizó correctamente mediante el az aks show comando .
az aks show --resource-group myResourceGroup --name myAKSCluster --output table
En la salida de ejemplo siguiente se muestra que el clúster de AKS ejecuta la versión de Kubernetes de destino:
Name Location ResourceGroup KubernetesVersion CurrentKubernetesVersion ProvisioningState Fqdn
------------ ---------- --------------- ------------------- ------------------------ ------------------- ----------------------------------------------------------------
myAKSCluster westus2 myResourceGroup 1.34.10 1.34.10 Succeeded myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io
Validar una actualización mediante Azure PowerShell
Confirme que la actualización se realizó correctamente mediante el Get-AzAksCluster cmdlet .
Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster |
Select-Object -Property Name, Location, KubernetesVersion, ProvisioningState
En la salida de ejemplo siguiente se muestra que el clúster de AKS ejecuta la versión de Kubernetes de destino:
Name Location KubernetesVersion ProvisioningState
---- -------- ----------------- -----------------
myAKSCluster westus2 1.34.10 Succeeded
Validación de una actualización mediante el portal de Azure
- En el Azure Portal, vaya al recurso de clúster de AKS.
- En la página Información general , en Essentials, compruebe la versión de Kubernetes para confirmar que la actualización se realizó correctamente.
Eliminación del clúster mediante el CLI de Azure
Eliminación del clúster mediante Azure PowerShell
Eliminación del clúster mediante el portal de Azure
Como este tutorial es la última parte de la serie, puede que quiera eliminar el clúster de AKS para evitar incurrir en cargos de Azure.
Quite el grupo de recursos, el servicio de contenedor y todos los recursos relacionados mediante el az group delete comando .
az group delete --name myResourceGroup --yes --no-wait
Quite el grupo de recursos, el servicio de contenedor y todos los recursos relacionados mediante el Remove-AzResourceGroup cmdlet .
Remove-AzResourceGroup -Name myResourceGroup
- En el Azure Portal, vaya al recurso de clúster de AKS.
- En la página Información general, seleccione Eliminar.
- En la página de Confirmación de eliminación de clúster, seleccione Eliminar.
Nota:
Cuando elimina el clúster, la entidad de servicio Microsoft Entra que utiliza el clúster de AKS no se quita. Para conocer los pasos que hay que realizar para quitar la entidad de servicio, consulte Consideraciones principales y eliminación de AKS. Si usó una identidad administrada, esta está administrada por la plataforma y no requiere que aprovisione o rote los secretos.
Pasos siguientes
En este tutorial, actualizó Kubernetes en un clúster de AKS. Ha aprendido a:
- Identificar las versiones de Kubernetes actuales y disponibles.
- Actualizar los nodos de Kubernetes.
- Validar una actualización exitosa.
Para más información sobre AKS, consulte Introducción a AKS. Para instrucciones sobre cómo crear soluciones completas con AKS, consulte Guía de soluciones de AKS.