Implementación de una carga de trabajo de expansión de muestra en un clúster del modo automático de Amazon EKS - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Implementación de una carga de trabajo de expansión de muestra en un clúster del modo automático de Amazon EKS

En este tutorial, aprenderá a implementar una carga de trabajo de muestra en un clúster del modo automático de EKS y observará cómo se aprovisionan automáticamente los recursos de computación necesarios. Utilizará comandos kubectl para observar el comportamiento del clúster y comprobar de primera mano la forma en que el modo automático simplifica las operaciones de Kubernetes en AWS. Al final de este tutorial, comprenderá la forma en que el modo automático de EKS responde a las implementaciones de cargas de trabajo mediante la administración automática de los recursos de computación subyacentes, sin necesidad de configurar manualmente los grupos de nodos.

Requisitos previos

  • Un clúster del modo automático de Amazon EKS con la capacidad de computación habilitada. Anote el nombre y la región de AWS del clúster.

  • Una entidad principal de IAM, como un usuario o rol, con permisos suficientes para administrar recursos de red, computación y EKS.

  • aws CLI instalada y configurada con una identidad de IAM.

  • kubectl CLI instalada y conectada al clúster.

Paso 1: Revisión de los recursos de computación existentes (opcional)

En primer lugar, utilice kubectl para enumerar los grupos de nodos en el clúster.

kubectl get nodepools

Resultado de ejemplo:

general-purpose

En este tutorial, implementaremos una carga de trabajo configurada para utilizar el grupo de nodos general-purpose. Este grupo de nodos está integrado en el modo automático de EKS e incluye valores predeterminados razonables para cargas de trabajo generales, como microservicios y aplicaciones web. Puede crear un grupo de nodos propio. Para obtener más información, consulte Creación de un grupo de nodos para el modo automático de EKS.

En segundo lugar, utilice kubectl para enumerar los nodos conectados al clúster.

kubectl get nodes

Si acaba de crear un clúster de modo automático de EKS, no tendrá nodos.

En este tutorial, implementará una carga de trabajo de ejemplo. Si no tiene nodos, o la carga de trabajo no cabe en los nodos existentes, el modo automático de EKS aprovisionará un nuevo nodo.

Paso 2: Implementación de una aplicación de ejemplo en el clúster

Revise la siguiente implementación de Kubernetes y guárdela como inflate.yaml

apiVersion: apps/v1 kind: Deployment metadata: name: inflate spec: replicas: 1 selector: matchLabels: app: inflate template: metadata: labels: app: inflate spec: terminationGracePeriodSeconds: 0 nodeSelector: eks.amazonaws.com/compute-type: auto securityContext: runAsUser: 1000 runAsGroup: 3000 fsGroup: 2000 containers: - name: inflate image: public.ecr.aws/eks-distro/kubernetes/pause:3.7 resources: requests: cpu: 1 securityContext: allowPrivilegeEscalation: false

Tenga en cuenta que el selector eks.amazonaws.com/compute-type: auto requiere que la carga de trabajo se implemente en un nodo de modo automático de Amazon EKS.

Aplique la implementación al clúster.

kubectl apply -f inflate.yaml

Paso 3: Visualización de los eventos de Kubernetes

Utilice el siguiente comando para ver los eventos de Kubernetes, incluida la creación de un nuevo nodo. Utilice ctrl+c para dejar de ver los eventos.

kubectl get events -w --sort-by '.lastTimestamp'

Utilice kubectl para enumerar los nodos conectados al clúster nuevamente. Tenga en cuenta el nodo recién creado.

kubectl get nodes

Paso 4: Visualización de nodos e instancias en la consola de AWS

Puede ver los nodos de modo automático de EKS en la consola de EKS, y las instancias de EC2 asociadas en la consola de EC2.

Las instancias de EC2 implementadas por el modo automático de EKS están restringidas. No se pueden ejecutar comandos arbitrarios en los nodos del modo automático de EKS.

Paso 5: Eliminación de la implementación

Utilice kubectl para eliminar la implementación de muestra

kubectl delete -f inflate.yaml

Si no tiene otras cargas de trabajo implementadas en el clúster, el nodo creado por el modo automático de EKS estará vacío.

En la configuración predeterminada, el modo automático de EKS detecta los nodos que han estado vacíos durante treinta segundos y los termina.

Utilice kubectl o la consola de EC2 para confirmar que la instancia asociada se ha eliminado.