Saltar al contenido

¿Cómo utilizo la AMI de Bottlerocket para crear un grupo de nodos administrado en Amazon EKS?

3 minutos de lectura
0

Quiero usar la AMI de Bottlerocket para crear un grupo de nodos administrado en Amazon Elastic Kubernetes Service (Amazon EKS).

Resolución

Puedes usar eksctl con un archivo de configuración para crear un grupo de nodos administrado por Bottlerocket.

Requisitos previos

  • Versión 0.124.0 o posterior de eksctl
  • Un clúster de Amazon EKS existente
  • Si deseas acceder mediante SSH a los nodos, necesitarás un par de claves SSH de Amazon Elastic Compute Cloud (Amazon EC2)

Para usar la AMI de Bottlerocket para crear un grupo de nodos administrado, sigue estos pasos:

Verificación de la versión de eksctl

Para verificar la versión de eksctl, ejecuta el siguiente comando:

eksctl version

Si necesitas instalar o actualizar eksctl, consulta Opciones de instalación para Eksctl.

Creación del archivo de configuración

Importante: Bottlerocket admite tipos de instancias de uso general, optimizadas para computación, optimizadas para memoria y optimizadas para almacenamiento. Bottlerocket no admite instancias de computación acelerada.

Crea un archivo llamado bottlerocket.yaml con la siguiente configuración:

---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: mybottlerocket-cluster
  region: your-region
  version: '1.31'

iam:
  withOIDC: true

nodeGroups:
  - name: ng-bottlerocket
    instanceType: m5.large
    desiredCapacity: 3
    amiFamily: Bottlerocket
    ami: auto-ssm
    iam:
       attachPolicyARNs:
          - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
          - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
          - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
          - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
    ssh:
        allow: true
        publicKeyName: your-ec2-keypair-name

Nota: Sustituye mybottlerocket-cluster por el nombre de tu clúster. Sustituye your-region por tu región de AWS. Sustituye your-ec2-keypair-name por el nombre del par de claves SSH de Amazon EC2. Si no tienes un par de claves de Amazon EC2, consulta Creación de un par de claves para la instancia de Amazon EC2.

Creación del grupo de nodos administrado

Para crear el grupo de nodos administrado, ejecuta el siguiente comando:

eksctl create nodegroup --config-file=bottlerocket.yaml

El comando crea el grupo de nodos y registra los nodos con tu clúster. Este proceso tarda varios minutos en completarse.

Verificación de los nodos

Para comprobar que los nodos se están ejecutando, ejecuta el siguiente comando:

kubectl get nodes -o wide

El resultado muestra los nodos de Bottlerocket con su estado, la versión de Kubernetes y la información del sistema operativo.

Resultado de ejemplo:

NAME                                           STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                                       KERNEL-VERSION   CONTAINER-RUNTIME
ip-[IP_ADDRESS].us-west-2.compute.internal   Ready    <none>   5m    v1.31.0   [IP_ADDRESS] <none>        Bottlerocket OS 1.20.0 (aws-k8s-1.31)        5.15.0           containerd://1.7.11

Conexión a los nodos de Bottlerocket

Los nodos de Bottlerocket no incluyen un shell o servidor SSH de forma predeterminada. Para conectarte a los nodos de Bottlerocket para solucionar problemas, utiliza AWS Systems Manager Session Manager.

Para conectarte a un nodo de Bottlerocket, sigue estos pasos:

  1. Recupera el ID de instancia de tu nodo de Bottlerocket desde la consola de Amazon EC2 o ejecuta el siguiente comando:

    kubectl get nodes -o wide
  2. Usa el ID de instancia para iniciar una sesión de Session Manager. Para obtener más información sobre cómo iniciar una sesión, consulta Inicio de una sesión (consola de Systems Manager).

Nota: La política de IAM AmazonSSMManagedInstanceCore de la configuración del grupo de nodos permite que Session Manager acceda a tus nodos de Bottlerocket.

Información relacionada

Creación de nodos de Bottlerocket autoadministrados

Simplificación del ciclo de vida de los nodos con grupos de nodos administrados

Using a Bottlerocket AMI with Amazon EKS (Uso de una AMI de Bottlerocket con Amazon EKS) en el sitio web de github

OFICIAL DE AWSActualizada hace 4 meses