0Pricing
AWS Solutions Architect · Lección

Plano de control y nodos de trabajo de EKS

Comprenda qué gestiona AWS en el plano de control de EKS, aprovisione grupos de nodos administrados y conecte kubectl a su clúster

Plano de control y nodos de trabajo de EKS es una lección gratuita de AWS Solutions Architect en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AWS Solutions Architect, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AWS Solutions Architect incluye 4 lecciones en total.

¿Qué es Amazon EKS?

Amazon Elastic Kubernetes Service (EKS) es un servicio de Kubernetes completamente administrado que elimina la carga de instalar, operar y mantener el plano de control de Kubernetes. AWS ejecuta, escala y actualiza el plano de control en varias zonas de disponibilidad, proporcionando un endpoint de clúster de alta disponibilidad. Usted se centra por completo en desplegar y gestionar las cargas de trabajo de su aplicación.

El plano de control de EKS

El EKS control plane consta del servidor de API, etcd, el controlador y el planificador, todos gestionados por AWS. Estos componentes se ejecutan en cuentas propiedad de AWS, por lo que nunca tendrá que conectarse a ellos mediante SSH. AWS garantiza un 99.95% SLA para el endpoint de la API de EKS y reemplaza automáticamente los nodos no saludables del plano de control. Por el plano de control se paga una tarifa fija por clúster y por hora.

Crear un clúster de EKS

Puede crear un clúster de EKS mediante la consola de AWS, eksctl o CloudFormation. El clúster requiere una VPC with subnets across at least two AZs y un rol de IAM que conceda al plano de control de Kubernetes permiso para llamar a las API de AWS. Una vez creado, el endpoint del clúster es una URL HTTPS que se configura en su kubeconfig.

# Create a cluster with eksctl (recommended for getting started)
eksctl create cluster \
  --name my-cluster \
  --region us-east-1 \
  --version 1.29 \
  --nodegroup-name standard-nodes \
  --node-type m5.large \
  --nodes 3 \
  --nodes-min 1 \
  --nodes-max 5

Conectar kubectl a EKS

Después de crear el clúster, actualice su kubeconfig local para que kubectl sepa cómo llegar al servidor de API de EKS. La AWS CLI genera automáticamente la entrada necesaria. El servidor de API de EKS utiliza AWS IAM for authentication: su usuario o rol de IAM se asigna a una identidad RBAC de Kubernetes mediante el ConfigMap aws-auth.

# Update kubeconfig for your EKS cluster
aws eks update-kubeconfig \
  --region us-east-1 \
  --name my-cluster

# Verify connectivity
kubectl get nodes
kubectl get pods --all-namespaces

Grupos de nodos administrados

Los managed node groups permiten que AWS aprovisione, registre y gestione el ciclo de vida de los nodos de trabajo EC2 en su nombre. Cuando solicita una actualización o sustitución, EKS drena automáticamente los pods, sustituye la instancia y vuelve a registrarla, todo ello sin intervención manual. Los grupos de nodos administrados utilizan Auto Scaling Groups internamente, lo que proporciona control sobre la capacidad mínima, máxima y deseada, además de integración con Cluster Autoscaler.

# Add a managed node group to an existing cluster
eksctl create nodegroup \
  --cluster my-cluster \
  --region us-east-1 \
  --name high-mem-nodes \
  --node-type r6i.large \
  --nodes 2 \
  --nodes-min 1 \
  --nodes-max 10 \
  --managed

Grupos de nodos autoadministrados

Con los self-managed node groups, usted lanza las instancias EC2 directamente (mediante CloudFormation o Terraform) y las registra en el clúster de EKS ejecutando el script de arranque. Esto proporciona la máxima flexibilidad: puede utilizar custom AMIs, tipos de instancia con GPU o configuraciones del kernel muy personalizadas, pero será plenamente responsable de aplicar parches, drenar y sustituir los nodos.

# Bootstrap script baked into the launch template
/etc/eks/bootstrap.sh my-cluster \
  --apiserver-endpoint 'https://EXAMPLE.gr7.us-east-1.eks.amazonaws.com' \
  --b64-cluster-ca 'BASE64_ENCODED_CA' \
  --kubelet-extra-args '--node-labels=role=custom'

Rol de IAM y perfil de instancia del nodo

Cada nodo de trabajo debe ejecutarse con un EC2 instance profile que tenga tres políticas administradas por AWS: AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy y AmazonEC2ContainerRegistryReadOnly. Estas políticas permiten al nodo unirse al clúster, gestionar las redes de los pods con el plugin VPC CNI y extraer imágenes de ECR. Sin ellas, los nodos no podrán registrarse.

# Attach required policies to the node role
aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy

aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy

aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly

ConfigMap aws-auth: asignación de IAM a RBAC

EKS utiliza el aws-auth ConfigMap en el espacio de nombres kube-system para asignar usuarios y roles de IAM a nombres de usuario y grupos de Kubernetes. Al crear un clúster, solo la identidad de IAM de quien lo creó recibe automáticamente acceso de administrador. Para permitir que otros usuarios o roles de CI/CD accedan al clúster, debe añadir entradas a este ConfigMap con las claves mapRoles o mapUsers correctas.

# View and edit the aws-auth ConfigMap
kubectl describe configmap aws-auth -n kube-system

# Add a role mapping (example YAML fragment)
# mapRoles:
# - rolearn: arn:aws:iam::111122223333:role/EKSNodeRole
#   username: system:node:{{EC2PrivateDNSName}}
#   groups:
#     - system:bootstrappers
#     - system:nodes

Complementos y actualizaciones de clúster de EKS

Los EKS add-ons son componentes de software seleccionados y validados por AWS, como VPC CNI, CoreDNS y kube-proxy, que EKS puede instalar y mantener actualizados en su nombre. Cuando actualice la versión de Kubernetes del clúster, actualice primero el plano de control y, después, cada grupo de nodos administrado a la versión correspondiente. EKS admite una diferencia de versión secundaria de N-1 entre el plano de control y los nodos durante la ventana de despliegue.

# List available add-ons and their versions
aws eks describe-addon-versions \
  --kubernetes-version 1.29 \
  --query 'addons[].{Name:addonName,Versions:addonVersions[0].addonVersion}' \
  --output table

# Update the VPC CNI add-on
aws eks update-addon \
  --cluster-name my-cluster \
  --addon-name vpc-cni \
  --addon-version v1.16.0-eksbuild.1

Seguridad de EKS: acceso al endpoint y cifrado

El endpoint del servidor de API de EKS se puede configurar como public only, private only o ambos. Los endpoints públicos están protegidos mediante autenticación de IAM; los endpoints exclusivamente privados requieren que su kubeconfig acceda a la VPC mediante VPN o Direct Connect. También puede habilitar el envelope encryption de los secretos de Kubernetes en reposo mediante una clave de AWS KMS, lo que proporciona una capa adicional de protección para los datos de configuración confidenciales.

# Enable private endpoint and envelope encryption at cluster creation
aws eks create-cluster \
  --name secure-cluster \
  --kubernetes-version 1.29 \
  --role-arn arn:aws:iam::111122223333:role/EKSClusterRole \
  --resources-vpc-config subnetIds=subnet-xxx,securityGroupIds=sg-xxx,endpointPublicAccess=false,endpointPrivateAccess=true \
  --encryption-config '[{"provider":{"keyArn":"arn:aws:kms:us-east-1:111122223333:key/KEY_ID"},"resources":["secrets"]}]'

Cluster Autoscaler en EKS

Cluster Autoscaler es un pod de Kubernetes que busca pods que no se pueden programar y ajusta automáticamente el tamaño de los grupos de Auto Scaling de los nodos administrados. Cuando los pods no se pueden programar debido a recursos insuficientes, Cluster Autoscaler escala hacia arriba. Cuando los nodos están infrautilizados y sus pods se pueden reprogramar en otro lugar, escala hacia abajo. Requiere permisos de IAM para llamar a la API de EC2 Auto Scaling mediante IRSA.

# Deploy Cluster Autoscaler (abbreviated)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-autodiscover.yaml

# Add required annotation so it discovers your cluster ASGs
kubectl annotate serviceaccount cluster-autoscaler \
  -n kube-system \
  eks.amazonaws.com/role-arn=arn:aws:iam::111122223333:role/ClusterAutoscalerRole

Comprobación rápida

Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.

Resumen de la lección

En esta lección ha aprendido lo siguiente: AWS gestiona el plano de control de EKS con un SLA del 99,95 %, los grupos de nodos gestionados permiten que AWS gestione el ciclo de vida de los nodos, mientras que los grupos autogestionados ofrecen la máxima personalización, y el ConfigMap aws-auth asigna identidades de IAM a RBAC de Kubernetes para controlar el acceso al clúster. A continuación, exploraremos los perfiles de Fargate para la ejecución de pods sin servidor.

Preguntas frecuentes

¿La lección «Plano de control y nodos de trabajo de EKS» es gratis?

Sí — el texto completo de «Plano de control y nodos de trabajo de EKS» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AWS Solutions Architect, actualiza a CoddyKit PRO. El curso de AWS Solutions Architect incluye 4 lecciones en total.

¿Qué aprenderé en «Plano de control y nodos de trabajo de EKS»?

Comprenda qué gestiona AWS en el plano de control de EKS, aprovisione grupos de nodos administrados y conecte kubectl a su clúster Practicas AWS Solutions Architect con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AWS Solutions Architect?

No se requiere experiencia previa. AWS Solutions Architect en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Plano de control y nodos de trabajo de EKS»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AWS Solutions Architect?

Sí. Cada lección de AWS Solutions Architect incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Plano de control y nodos de trabajo de EKS
  2. Perfiles de Fargate para pods sin servidor
  3. Redes de EKS: VPC CNI y balanceo de carga
  4. Roles de IAM para cuentas de servicio (IRSA)
← Volver a AWS Solutions Architect