Amazon EKS optimizó la administración de AMI de Windows - Amazon EKS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Amazon EKS optimizó la administración de AMI de Windows

AMIs Los optimizados para Windows Amazon EKS se basan en Windows Server 2019 y Windows Server 2022. Están configuradas de modo que sirvan de imagen base para los nodos de Amazon EKS. De forma predeterminada, AMIs incluyen los siguientes componentes:

Puede recuperar mediante programación el ID de Amazon Machine Image (AMI) para Amazon EKS optimizado AMIs consultando la API de AWS Systems Manager Parameter Store. Este parámetro elimina la necesidad de buscar manualmente la AMI optimizada para Amazon EKS IDs. Para obtener más información sobre la API del almacén de parámetros de Systems Manager, consulte GetParameter. Su cuenta de usuario debe tener el permiso ssm: GetParameter IAM para recuperar los metadatos de la AMI optimizados para Amazon EKS.

El siguiente ejemplo recupera el ID de AMI de la última AMI optimizada para Amazon EKS para Windows Server 2019 LTSC Core. El número de versión que aparece en el nombre de la AMI se refiere a la compilación de Kubernetes correspondiente para la que está preparada.

aws ssm get-parameter --name /aws/service/ami-windows-latest/Windows_Server-2019-English-Core-EKS_Optimized-1.21/image_id --region us-east-1 --query "Parameter.Value" --output text

Ejemplo de salida:

ami-09770b3eec4552d4e

Administrar su propia AMI de Windows optimizada para Amazon EKS

Un paso esencial hacia los entornos de producción es mantener la misma versión de kubelet y AMI de Windows optimizadas para Amazon EKS en todo el clúster de Amazon EKS.

El uso de la misma versión en todo el clúster de Amazon EKS reduce el tiempo de resolución de problemas y aumenta la coherencia del clúster. Amazon EC2 Image Builder ayuda a crear y mantener Windows optimizados para Amazon EKS personalizados AMIs para su uso en un clúster de Amazon EKS.

Utilice Amazon EC2 Image Builder para seleccionar entre las versiones de Windows Server, las fechas de lanzamiento de la AMI de AWS Windows Server y la versión de compilación del and/or sistema operativo. El paso de construcción de los componentes le permite seleccionar entre los artefactos de Windows optimizados para EKS existentes y las versiones de kubelet. Para más información: - .html https://docs.aws.amazon.com/eks/ latest/userguide/eks custom-ami-windows

componentes de construcción

NOTA: Antes de seleccionar una imagen base, consulte la sección Versión y licencia de Windows Server para obtener detalles importantes relacionados con las actualizaciones del canal de lanzamiento.

Configuración de un inicio más rápido para un EKS personalizado y optimizado AMIs

Cuando se utiliza una AMI personalizada optimizada para Amazon EKS para Windows, los nodos de trabajo de Windows se pueden lanzar hasta un 65% más rápido si se habilita la función Fast Launch. Esta función mantiene un conjunto de instantáneas previamente aprovisionadas que ya han completado los pasos de Windows Out of Box Experience (OOBE) especializados en Sysprep y los reinicios necesarios. Estas instantáneas se utilizan luego en lanzamientos posteriores, lo que reduce el tiempo necesario para escalar o reemplazar los nodos. Fast Launch solo se puede habilitar por AMIs su cuenta a través de la EC2 consola o en la AWS CLI, y la cantidad de instantáneas mantenidas es configurable.

NOTA: Fast Launch no es compatible con la AMI optimizada para EKS predeterminada proporcionada por Amazon. Cree una AMI personalizada como se indica arriba antes de intentar habilitarla.

Para obtener más información: AWS Windows AMIs : configure su AMI para un lanzamiento más rápido

Almacenamiento en caché de las capas base de Windows de forma personalizada AMIs

Las imágenes de los contenedores de Windows son más grandes que las de Linux. Si ejecuta una aplicación contenerizada basada en .NET Framework, el tamaño medio de la imagen es de unos 8,24 GB. Durante la programación del pod, se debe extraer completamente la imagen del contenedor y extraerla en el disco antes de que el pod alcance el estado En ejecución.

Durante este proceso, el motor de ejecución del contenedor (containerd) extrae y extrae toda la imagen del contenedor en el disco. La operación de extracción es un proceso paralelo, lo que significa que el tiempo de ejecución del contenedor extrae las capas de imagen del contenedor en paralelo. Por el contrario, la operación de extracción se produce en un proceso secuencial y es I/O intensivo. Por eso, la imagen del contenedor puede tardar más de 8 minutos en extraerse por completo y estar lista para ser utilizada por el motor de ejecución del contenedor (containerd) y, como resultado, el tiempo de inicio del pod puede tardar varios minutos.

Como se menciona en el tema Cómo aplicar parches a servidores y contenedores de Windows, existe la opción de crear una AMI personalizada con EKS. Durante la preparación de la AMI, puede añadir un componente generador de EC2 imágenes adicional para extraer localmente todas las imágenes de contenedores de Windows necesarias y, a continuación, generar la AMI. Esta estrategia reducirá drásticamente el tiempo en que un pod alcanza el estado En ejecución.

En Amazon EC2 Image Builder, cree un componente para descargar las imágenes necesarias y adjúntelo a la receta de imágenes. El siguiente ejemplo extrae una imagen específica de un repositorio de ECR.

name: ContainerdPull
description: This component pulls the necessary containers images for a cache strategy.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: containerdpull
        action: ExecutePowerShell
        inputs:
          commands:
            - Set-ExecutionPolicy Unrestricted -Force
            - (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 111000111000.dkr.ecr.us-east-1.amazonaws.com
            - ctr image pull mcr.microsoft.com/dotnet/framework/aspnet:latest
            - ctr image pull 111000111000.dkr.ecr.us-east-1.amazonaws.com/myappcontainerimage:latest

Para asegurarse de que el siguiente componente funciona según lo esperado, compruebe si la función de IAM utilizada por EC2 Image builder (EC2InstanceProfileForImageBuilder) tiene las políticas adjuntas:

políticas de permisos

Publicación de blog.

En la siguiente entrada del blog, encontrará información paso a paso sobre cómo implementar una estrategia de almacenamiento en caché para Amazon EKS Windows AMIs personalizado:

Agilice los tiempos de lanzamiento de los contenedores de Windows con el creador de EC2 imágenes y la estrategia de caché de imágenes