Ubuntu

Imágenes de la plataforma Ubuntu EKS para k8s 1.19

Imágenes de la plataforma Ubuntu EKS para k8s 1.19

Este artículo apareció originalmente en El blog de Cody Shepherd.

1.19 Imágenes de la plataforma ahora en vivo

Siguiendo el Compatibilidad con GA de Kubernetes 1.19 en AWS, Se han lanzado imágenes de Ubuntu optimizadas para EKS para grupos de nodos 1.19. El ami-id de esta imagen para cada región se puede encontrar en el sitio oficial de imágenes de Ubuntu EKS.

Al igual que las AMI de la plataforma 1.18, estas imágenes se minimizan 20.04 Imágenes en la nube del servidor Focal Fossa que incluyen un par de utilidades personalizadas adicionales para interactuar con EKS, a saber: kubectl-eks chasquido, que simplemente fija kubectl a un canal apropiado para la versión de la plataforma, así como versiones ancladas de herramientas cni y auth.

Todos estos paquetes están anclados porque, aunque unattended-upgrades está habilitado para imágenes de Ubuntu optimizadas para EKS, la ruta de actualización recomendada para la compatibilidad con Kubernetes es mediante el lanzamiento de la última AMI, en lugar de intentar actualizar en su lugar.

Rutas de lanzamiento para Ubuntu en EKS

Podría valer la pena aprovechar esta oportunidad para describir los métodos para lanzar clústeres y grupos de nodos de EKS utilizando las imágenes de Ubuntu identificadas anteriormente que actualmente son las que mejor soportan. Una de mis publicaciones anteriores describía en detalle cómo usar CloudFormation para iniciar grupos de nodos autogestionados en un clúster EKS, y aunque he hecho todo lo posible para mantener esas instrucciones actualizadas, hay un par de formas mucho más fáciles de usar Ubuntu. con EKS.

eksctl

Si bien no es un producto de AWS, eksctl

es una herramienta que aparece en Documentos de AWS EKS
y está bien respaldado, es de código abierto y se encuentra en desarrollo activo. Elimina una gran parte de la configuración manual y el tedio de iniciar clústeres y grupos de nodos de EKS a través de cualquier otro método.

Usando eksctl para lanzar un clúster 1.19 que usa la imagen de Ubuntu optimizada para EKS y habilita el acceso ssh basado en claves a las instancias de nodo, es tan simple como el siguiente comando de ejemplo:

eksctl  
  --profile <profile> create cluster 
  --name <cluster name> 
  --version 1.19 
  --nodegroup-name <nodegroup name> 
  --node-type <instance type, e.g. m5.large> 
  --nodes <number of nodes, e.g. 10> 
  --nodes-min <number of nodes, e.g. 5> 
  --nodes-max < number of nodes, e.g. 15> 
  --node-ami <relevant Ubuntu ami id for your region, e.g. ami-0fc3ca5b2c5e1fb11> 
  --node-ami-family Ubuntu2004 
  --region <aws region, e.g. us-west-2> 
  --ssh-access 
  --ssh-public-key <ec2 public key name>

eksctl se encargará de crear tanto el clúster como el grupo de nodos, así como las VPC y los grupos de seguridad, y también actualizará su archivo kubeconfig. La herramienta también produce registros útiles y mensajes de error en caso de que algo salga mal.

Nodegroups administrados con plantillas de lanzamiento

El uso de grupos de nodos administrados es un buen término medio entre el método de grupos de nodos autogestionados completamente en manual descrito en mi publicación anterior, y el uso casi totalmente manos libres de eksctl descrito arriba. Y, a juzgar por los resultados de las pruebas de extremo a extremo realizadas con el kubernetes-test-eks snap, este método también produce un grupo de nodos con las mejores características de conformidad de cualquier método que he descrito hasta ahora.

El lanzamiento de un grupo de nodos administrado requiere los siguientes pasos; Estos pasos suponen que ya ha creado un clúster, una VPC y un grupo de seguridad, siguiendo los pasos detallados en mi publicación anterior:

  1. En su consola web de AWS, navegue hasta el servicio EC2, luego a ‘Launch Templates’ en el submenú Instances en la barra lateral. Haga clic en ‘Crear plantilla de lanzamiento’ y use las siguientes opciones de configuración clave:
    1. AMI: elija el ID de ami de la imagen de Ubuntu optimizada para EKS para su región
    2. Tipo de instancia: elija la forma que desees para sus nodos
    3. Par de claves: esto permitirá SSH’ing a la instancia del nodo si es necesario
    4. En Configuración avanzada, para ‘Datos de usuario’, agregue lo siguiente, asegurándose de usar el nombre real del clúster que ha creado:#!/usr/bin/bash sudo /etc/eks/bootstrap.sh <cluster name>
  2. Navegue hasta el servicio de IAM, haga clic en Roles y cree un nuevo rol de IAM con las siguientes políticas administradas por AWS, nombrando el rol como desee:
    • AmazonEKSWorkerNodePolicy
    • AmazonEC2ContainerRegistryReadOnly
    • AmazonEKS_CNI_Policy
  3. Navegue hasta el servicio EKS, haga clic en Clústeres, haga clic en el clúster que ha creado y, en la pestaña Calcular, haga clic en ‘Agregar grupo de nodos’, utilizando las siguientes configuraciones:
    1. Elija la función de IAM recién creada
    2. Habilite la palanca ‘Usar plantilla de lanzamiento’ y seleccione la plantilla que ha creado arriba; haga clic en Siguiente
    3. Establezca las opciones para la cantidad de nodos que desees; haga clic en Siguiente
    4. Utilice las subredes predeterminadas para su VPC; haga clic en Siguiente; haga clic en Crear
  4. ¡Viola! El grupo de nodos tendrá un estado de «Creando» que probablemente durará varios minutos. Una vez que haya terminado, si ha actualizado su kubeconfig para que apunte a su clúster, puede verificar que sus nodos estén listos a través de kubectl get nodes.

¡Feliz pilotaje!

Leave a Comment

You may also like