Actualización de la versión del sistema operativo (SO) para las cargas de trabajo de Windows de Azure Kubernetes Service (AKS)

Al actualizar la versión del sistema operativo de una carga de trabajo de Windows en ejecución en Azure Kubernetes Service (AKS), use uno de los métodos de migración siguientes:

  • Migración local: actualice la SKU del sistema operativo en un grupo de nodos existente para migrar de Windows Server 2022 a Windows Server 2025.
  • Migración manual: cree un nuevo grupo de nodos con la versión del sistema operativo Windows Server deseada, mueva las cargas de trabajo al nuevo grupo de nodos y elimine el grupo de nodos anterior.

Cuando se publica una nueva versión del sistema operativo Windows Server, AKS se compromete a admitirla. Se recomienda actualizar a la versión más reciente para aprovechar las correcciones, mejoras y nuevas funcionalidades. AKS proporciona un ciclo de vida de soporte técnico de cinco años para cada versión de Windows Server, a partir de Windows Server 2022. Durante este período, AKS publica una nueva versión que admite una versión más reciente del sistema operativo Windows Server a la que actualizar. Una vez finalizado el ciclo de vida de cinco años, debe migrar cargas de trabajo a versiones compatibles más recientes para garantizar la compatibilidad, las actualizaciones de seguridad y el soporte continuo de AKS.

Importante

A partir del 30 de junio de 2028, Azure Kubernetes Service (AKS) ya no admite grupos de nodos Windows Server 2022. Windows Server 2022 no se admite en la versión 1.37 y posteriores de Kubernetes. A partir del 30 de junio de 2029, AKS quitará todas las imágenes de nodo existentes para Windows Server 2022, lo que significa que se producirá un error en las operaciones de escalado. Para más información sobre este retiro, consulte la incidencia de retirada en GitHub y el anuncio sobre la retirada de Azure Updates. Para mantenerse informado sobre los anuncios y las actualizaciones, siga las notas de la versión de AKS.

Las limitaciones siguientes se aplican a Windows Server migración de la versión del sistema operativo:

  • La actualización del grupo de nodos para migrar de una versión de Windows Server a otra solo se admite para la migración de Windows Server 2022 a Windows Server 2025 mediante la versión 22.0.0b6 de la aks-preview extensión de CLI de Azure o posterior. Para todas las demás migraciones de la versión del sistema operativo Windows Server, cree un nuevo grupo de nodos.
  • Las distintas versiones de Windows Server no pueden coexistir en el mismo grupo de nodos en AKS. Si crea un nuevo grupo de nodos para hospedar la nueva versión del sistema operativo, asegúrese de que coincide con los permisos y el acceso del grupo de nodos anterior al nuevo.
  • Windows Server 2025 se admite a partir de la versión 1.32.0 de Kubernetes.

Prerequisites

  • Actualice la instrucción FROM en el Dockerfile a la nueva versión del sistema operativo.
  • Compruebe la aplicación y que la aplicación contenedora funciona en la nueva versión del sistema operativo.
  • Implemente la aplicación de contenedor comprobada en AKS en un entorno de desarrollo o pruebas.
  • Anote el nuevo nombre o etiqueta de imagen para su uso en este artículo.
  • Para la migración local de Windows Server 2022 a Windows Server 2025, instale o actualice la extensión de CLI de Azure a la aks-preview versión 22.0.0b6 o posterior.

Nota:

Para obtener información sobre cómo crear un Dockerfile para cargas de trabajo de Windows, vea Dockerfile en Windows y Optimización de Dockerfiles de Windows.

Importante

Las características en versión preliminar de AKS están disponibles en régimen de autoservicio y mediante adhesión voluntaria. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y la garantía limitada. Las versiones preliminares de AKS cuentan con soporte parcial por parte del servicio al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:

Instalación de la extensión aks-preview CLI de Azure

  • Ejecute el siguiente comando para instalar la extensión de versión preliminar de AKS:

Migración local de Windows Server 2022 a Windows Server 2025

Para migrar un grupo de nodos de Windows Server 2022 existente a Windows Server 2025, actualice la SKU del sistema operativo en el grupo de nodos existente con el az aks nodepool update comando . Esta ruta de migración usa la aks-preview extensión CLI de Azure versión 22.0.0b6 o posterior. El clúster debe ejecutar kubernetes versión 1.32 a 1.36 donde se admiten ambas versiones del sistema operativo.

Consideraciones sobre la migración local

Tenga en cuenta los detalles siguientes antes de migrar un grupo de nodos de Windows Server 2022 a Windows Server 2025:

  • Windows Server 2025 usa imágenes habilitadas para FIPS de forma predeterminada. Si el grupo de nodos de Windows Server 2022 aún no usa una imagen habilitada para FIPS, incluya --enable-fips-image al ejecutar el comando update.
  • El comando update desencadena una imagen de imagen automática del grupo de nodos existente.
  • Windows Server 2025 usa máquinas virtuales de generación 2 de forma predeterminada. No es necesario tener un grupo de nodos de generación 2 existente Windows Server 2022 para migrar en su lugar. Se admiten grupos de nodos de Windows Server 2022 containerd estándar.
  • Si el tamaño de máquina virtual existente admite la generación 2, AKS puede seleccionar una imagen de Windows Server 2025 Generación 2 durante la migración. Esta selección de imagen predeterminada podría afectar a la compatibilidad de imágenes para algunas configuraciones.

En la tabla siguiente se describen las configuraciones de origen que admiten la migración local con el comando update. En el caso de las configuraciones no admitidas, use la migración manual en su lugar.

Configuración existente Apoyo Result
Imagen estándar de Windows Server 2022 containerd generación 1 con un tamaño de máquina virtual de solo generación 1 Sí Migra a Windows Server generación 1 de 2025.
Imagen estándar Windows Server 2022 containerd generación 1 con un tamaño de máquina virtual compatible con generación 2 Sí Migra a Windows Server generación 2025.
Imagen estándar de Windows Server 2022 containerd generación 2 con un tamaño de máquina virtual compatible con generación 2 Sí Migra a Windows Server generación 2025.

Actualizar el grupo de nodos de Windows Server 2022 existente a Windows Server 2025

  1. Actualice la SKU del sistema operativo del grupo de nodos a Windows2025 mediante el az aks nodepool update comando .

    az aks nodepool update \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --os-sku Windows2025 \
        --enable-fips-image
    
  2. Compruebe que un nodo del grupo de nodos actualizado usa la Windows2025 SKU del sistema operativo y una imagen de Windows Server 2025 mediante el kubectl describe node comando .

    kubectl describe node <node-name>
    

    En la siguiente salida de ejemplo condensada se muestra la etiqueta de SKU Windows2025 del sistema operativo y la imagen del sistema operativo Windows Server 2025:

    Labels:
      kubernetes.azure.com/os-sku=Windows2025
      kubernetes.io/os=windows
    ...
    System Info:
      OS Image:                   Windows Server 2025 Datacenter
      Container Runtime Version:  containerd://2.0.4+azure
    

Migración manual a un nuevo grupo de nodos

La migración manual usa un nuevo grupo de nodos en lugar de actualizar el grupo de nodos existente. Use la migración manual para las migraciones de versión del sistema operativo Windows Server que no admiten la migración local o cuando la configuración de origen no se admite para la migración local. Para migrar manualmente, cree un nuevo grupo de nodos con la versión del sistema operativo Windows Server deseada y mueva las cargas de trabajo al nuevo grupo de nodos.

Adición de un nuevo grupo de nodos a un clúster existente

Agregue un grupo de nodos con la versión deseada del sistema operativo al clúster existente:

Los grupos de nodos de Windows Server 2025 requieren una imagen con FIPS habilitado. Al agregar un grupo de nodos de Windows Server 2025, incluya --enable-fips-image (CLI de Azure) o -EnableFIPS (Azure PowerShell).

Actualización del archivo YAML

El selector de nodos es la opción más común y recomendada para la colocación de pods de Windows en nodos de Windows.

  1. Agregue el selector de nodos al archivo YAML mediante la adición de la anotación siguiente:

          nodeSelector:
            "kubernetes.io/os": windows
    

    La anotación busca cualquier nodo de Windows disponible y coloca el pod en ese nodo (siguiendo todas las demás reglas de programación). Al actualizar la versión del sistema operativo, debe asegurar la colocación en un nodo que ejecute Windows y en otro nodo que ejecute la versión más reciente del sistema operativo. Para ello, una opción es usar una anotación diferente. Actualice <OSSKU> para que coincida con ossku de la versión deseada del sistema operativo Windows, por ejemplo Windows2025.

          nodeSelector:
            "kubernetes.azure.com/os-sku": <OSSKU>
    
  2. Una vez que actualice nodeSelector en el archivo YAML, también debe actualizar la imagen de contenedor que quiera usar. Puede obtener esta información del paso anterior en el que ha creado una versión de la aplicación contenedorizada si cambia la instrucción FROM en el Dockerfile.

    Nota:

    Debe utilizar el mismo archivo YAML que haya usado inicialmente para implementar la aplicación. Esto garantiza que no cambie ninguna otra configuración además de nodeSelector y la imagen de contenedor.

Aplicación del archivo YAML actualizado a la carga de trabajo existente

  1. Vea los nodos del clúster mediante el comando kubectl get nodes.

    kubectl get nodes -o wide
    

    En la salida de ejemplo siguiente se muestran todos los nodos del clúster, incluido el nuevo grupo de nodos que ha creado y los grupos de nodos existentes:

    NAME                                STATUS   ROLES   AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION     CONTAINER-RUNTIME
    aks-agentpool-18877473-vmss000000   Ready    agent   5h40m   v1.33.12   10.240.0.4     <none>        Ubuntu 22.04.5 LTS               5.15.0-1116-azure  containerd://1.7.33-1
    akspoolws000000                     Ready    agent   3h15m   v1.33.12   10.240.0.208   <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akspoolws000001                     Ready    agent   3h17m   v1.33.12   10.240.0.239   <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akspoolws000002                     Ready    agent   3h17m   v1.33.12   10.240.1.14    <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akswspool000000                     Ready    agent   5h37m   v1.33.12   10.240.0.115   <none>        Windows Server 2025 Datacenter   10.0.26100.32995    containerd://2.0.4+azure
    akswspool000001                     Ready    agent   5h37m   v1.33.12   10.240.0.146   <none>        Windows Server 2025 Datacenter   10.0.26100.32995    containerd://2.0.4+azure
    akswspool000002                     Ready    agent   5h37m   v1.33.12   10.240.0.177   <none>        Windows Server 2025 Datacenter   10.0.26100.32995    containerd://2.0.4+azure
    
  2. Aplique el archivo YAML actualizado a la carga de trabajo existente mediante el comando kubectl apply y especifique el nombre del archivo YAML.

    kubectl apply -f <filename>
    

    En la salida de ejemplo siguiente se muestra un estado configurado para la implementación:

    deployment.apps/sample configured
    service/sample unchanged
    

    En este momento, AKS iniciará el proceso de finalización de los pods existentes e implementará nuevos pods en los nodos con la anotación nodeSelector.

  3. Compruebe el estado de la implementación con el comando kubectl get pods.

    kubectl get pods -o wide
    

    En la salida del ejemplo siguiente se muestran los pods en el espacio de nombres default:

    NAME                      READY   STATUS    RESTARTS   AGE     IP             NODE              NOMINATED NODE   READINESS GATES
    sample-7794bfcc4c-k62cq   1/1     Running   0          2m49s   10.240.0.238   akspoolws000000   <none>           <none>
    sample-7794bfcc4c-rswq9   1/1     Running   0          2m49s   10.240.1.10    akspoolws000001   <none>           <none>
    sample-7794bfcc4c-sh78c   1/1     Running   0          2m49s   10.240.0.228   akspoolws000000   <none>           <none>
    

Actualización de la configuración de seguridad y autenticación

Si usa cuentas de servicio administradas de grupo (gMSA), debe actualizar la configuración de identidad administrada para el nuevo grupo de nodos. gMSA usa un secreto (cuenta de usuario y contraseña) para que el nodo en el que se ejecuta el pod de Windows pueda autenticar el contenedor en Microsoft Entra ID. Para acceder a ese secreto en Azure Key Vault, el nodo usa una identidad administrada que permite al nodo acceder al recurso. Dado que las identidades administradas están configuradas por grupo de nodos y el pod ahora reside en un nuevo grupo de nodos, debe actualizar esa configuración. Para más información, consulte Habilitación de cuentas de servicio administradas de grupo (GMSA) para los nodos de Windows Server en el clúster de Azure Kubernetes Service (AKS).

El mismo principio se aplica a las identidades administradas de cualquier otro grupo de pods o nodos al acceder a otros recursos de Azure. Debe actualizar cualquier acceso que proporcione la identidad administrada para reflejar el nuevo grupo de nodos. Para ver las actividades de actualización e inicio de sesión, consulte Visualización de la actividad de la identidad administrada.

Pasos siguientes

En este artículo, ha obtenido información sobre cómo actualizar la versión del sistema operativo para cargas de trabajo de Windows en AKS. Para más información sobre las cargas de trabajo de Windows en AKS, vea Implementación de una aplicación contenedora de Windows en Azure Kubernetes Service (AKS).