Networking de EKS
Descripción general
El networking de Amazon EKS es un componente central que administra la comunicación para Kubernetes clusters. Este documento cubre los conceptos básicos del networking de EKS, la configuración de VPC, el diseño de subnets y la configuración de security groups.
Arquitectura de networking de EKS
La arquitectura de networking de EKS consta de los siguientes componentes:

- VPC (Virtual Private Cloud): Entorno de red aislado donde se ejecuta el EKS cluster
- Subnets: Unidades que dividen los rangos de direcciones IP dentro de la VPC
- Route Tables: Conjuntos de reglas que determinan las rutas del tráfico de red
- Internet Gateway: Componente que permite la comunicación entre la VPC e internet
- NAT Gateway: Componente que permite que los recursos en subnets privadas accedan a internet
- Security Groups: Firewalls virtuales a nivel de instancia
- Network ACLs: Firewalls virtuales a nivel de subnet
- CNI (Container Network Interface): Plugin que administra el networking de containers
Flujo de networking de EKS
El tráfico de red fluye en un EKS cluster de la siguiente manera:

- Comunicación Pod-to-Pod: Comunicación entre pods en el mismo node o en nodes diferentes
- Comunicación Pod-to-Service: Comunicación entre pods y services dentro del cluster
- Comunicación interna a externa del cluster: Comunicación entre recursos internos del cluster y recursos externos
- Comunicación del Control Plane al Node: Comunicación entre el control plane de EKS y los worker nodes
Relación entre los componentes de networking de EKS

Requisitos de VPC
Una VPC para un EKS cluster debe cumplir los siguientes requisitos:

- Subnets: Debe tener subnets en al menos 2 Availability Zones
- IP Addresses: Debe proporcionar una cantidad suficiente de direcciones IP
- DNS Hostnames: Los DNS hostnames y la resolución DNS deben estar habilitados
- Internet Access: Los nodes deben poder acceder a internet (a través de un NAT gateway o internet gateway)
Planificación de CIDR de VPC
Consideraciones al planificar los bloques CIDR de VPC:

- Cluster Size: Número esperado de nodes y pods
- IP Address Requirements: Número de direcciones IP necesarias para cada node y pod
- Future Expansion: Espacio para expansión futura
- Integration with Existing Networks: Evitar solapamientos con redes existentes
Tamaños comunes de bloques CIDR de VPC:
- Clusters pequeños: /24 (256 direcciones IP)
- Clusters medianos: /20 (4,096 direcciones IP)
- Clusters grandes: /16 (65,536 direcciones IP)
Diseño de subnets

Mejores prácticas para el diseño de subnets para EKS clusters:
- Public Subnets: Subnets conectadas directamente al internet gateway
- Uso: Load balancers públicos, NAT gateways, bastion hosts
- Tamaño típico: /24 (256 direcciones IP)
- Private Subnets: Subnets no conectadas directamente al internet gateway
- Uso: EKS worker nodes, load balancers internos
- Tamaño típico: /22 (1,024 direcciones IP)
- Availability Zone Distribution: Distribuir subnets en varias Availability Zones
- Usar al menos 2 Availability Zones
- Colocar subnets públicas y privadas en cada Availability Zone
Ejemplo de diseño de subnets:
| Tipo de subnet | Availability Zone | Bloque CIDR | Uso |
|---|---|---|---|
| Pública | us-west-2a | 10.0.0.0/24 | Load balancers, NAT gateways |
| Pública | us-west-2b | 10.0.1.0/24 | Load balancers, NAT gateways |
| Privada | us-west-2a | 10.0.2.0/22 | EKS worker nodes |
| Privada | us-west-2b | 10.0.6.0/22 | EKS worker nodes |
Tags de subnets

EKS usa tags específicos en las subnets para descubrir recursos automáticamente:
- Public Subnet Tags:
kubernetes.io/role/elb: Establece el valor en1para usarlo con load balancers orientados a internetkubernetes.io/cluster/<cluster-name>: Establece el valor ensharedoowned
- Private Subnet Tags:
kubernetes.io/role/internal-elb: Establece el valor en1para usarlo con load balancers internoskubernetes.io/cluster/<cluster-name>: Establece el valor ensharedoowned
Ejemplo:
aws ec2 create-tags \
--resources subnet-xxxxxxxxxxxxxxxxx \
--tags Key=kubernetes.io/cluster/my-cluster,Value=shared Key=kubernetes.io/role/elb,Value=1Configuración de security groups

Los EKS clusters tienen dos security groups principales:
- Cluster Security Group (Control Plane):
- Inbound rules:
- 443/TCP: Permitir tráfico desde el security group de worker nodes
- Outbound rules:
- 1025-65535/TCP: Permitir tráfico hacia el security group de worker nodes
- Inbound rules:
- Node Security Group (Worker Nodes):
- Inbound rules:
- 443/TCP: Permitir tráfico desde el cluster security group
- 1025-65535/TCP: Permitir tráfico desde el cluster security group
- ALL: Permitir tráfico dentro del mismo security group
- Outbound rules:
- ALL: Permitir tráfico hacia todos los destinos
- Inbound rules:
Conclusión
En este documento, aprendimos los conceptos básicos del networking de EKS y la configuración de VPC. En el siguiente documento, cubriremos temas de networking más avanzados, como services, load balancing y network policies.
Cuestionario
Para comprobar lo que aprendiste en este capítulo, intenta resolver el cuestionario Networking de EKS - Parte 1.