

 **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.

# Cómo utilizar las anotaciones de servicio para configurar los equilibradores de carga de red
<a name="auto-configure-nlb"></a>

Aprenda a configurar los equilibradores de carga de red (NLB) en Amazon EKS mediante anotaciones de servicio de Kubernetes. En este tema se explican las anotaciones que admite el modo automático de EKS para personalizar el comportamiento de los NLB, incluidos los modos de accesibilidad a Internet, las comprobaciones de estado, la terminación de SSL/TLS y la segmentación por IP.

Al crear un servicio de Kubernetes de tipo `LoadBalancer` en el modo automático de EKS, EKS aprovisiona y configura automáticamente un equilibrador de carga de red de AWS en función de las anotaciones que especifique. Este enfoque declarativo permite administrar las configuraciones del equilibrador de carga directamente a través de los manifiestos de Kubernetes, manteniendo las prácticas de infraestructura como código.

El modo automático de EKS administra el aprovisionamiento del equilibrador de carga de red de forma predeterminada para todos los servicios del tipo LoadBalancer, sin necesidad de instalar ni configurar ningún controlador adicional. La especificación `loadBalancerClass: eks.amazonaws.com/nlb` se establece automáticamente como la predeterminada del clúster, lo que agiliza el proceso de implementación y garantiza la compatibilidad con las cargas de trabajo de Kubernetes existentes.

**nota**  
El modo automático de EKS requiere etiquetas de subred para identificar las subredes públicas y privadas.  
Si creó el clúster con `eksctl`, ya dispone de estas etiquetas.  
Información sobre cómo [Etiquetado de subredes para el modo automático de EKS](tag-subnets-auto.md).

## Ejemplo de servicio
<a name="_sample_service"></a>

Para obtener más información sobre el recurso `Service` de Kubernetes, consulte la [documentación de Kubernetes](https://kubernetes.io/docs/concepts/services-networking/service/).

Revise el recurso de `Service` de muestra que aparece a continuación:

```
apiVersion: v1
kind: Service
metadata:
  name: echoserver
  annotations:
    # Specify the load balancer scheme as internet-facing to create a public-facing Network Load Balancer (NLB)
    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
spec:
  selector:
    app: echoserver
  ports:
    - port: 80
      targetPort: 8080
      protocol: TCP
  type: LoadBalancer
  # Specify the new load balancer class for NLB as part of EKS Auto Mode feature
  # For clusters with Auto Mode enabled, this field can be omitted as it's the default
  loadBalancerClass: eks.amazonaws.com/nlb
```

## Anotaciones de uso frecuente
<a name="_commonly_used_annotations"></a>

En la siguiente tabla se enumeran las anotaciones más utilizadas compatibles con el modo automático de EKS. Tenga en cuenta que es posible que el modo automático de EKS no admita todas las anotaciones.

**sugerencia**  
Todas las anotaciones que aparecen a continuación deben ir precedidas de `service.beta.kubernetes.io/` 


| Campo | Descripción | Ejemplo | 
| --- | --- | --- | 
|  `aws-load-balancer-type`  | Especifica el tipo de equilibrador de carga. Utilice `external` para nuevas implementaciones. |  `external`  | 
|  `aws-load-balancer-nlb-target-type`  | Especifica si se debe dirigir el tráfico a las instancias de los nodos o directamente a las IP de los pods. Utilice `instance` para implementaciones estándar o `ip` para el enrutamiento directo a los pods. |  `instance`  | 
|  `aws-load-balancer-scheme`  | Controla si el equilibrador de carga es interno o está expuesto a Internet. |  `internet-facing`  | 
|  `aws-load-balancer-healthcheck-protocol`  | Protocolo de comprobación de estado correspondiente al grupo de destino. Las opciones más comunes son `TCP` (predeterminada) o `HTTP`. |  `HTTP`  | 
|  `aws-load-balancer-healthcheck-path`  | La ruta HTTP para las comprobaciones de estado cuando se utiliza el protocolo HTTP/HTTPS. |  `/healthz`  | 
|  `aws-load-balancer-healthcheck-port`  | El puerto que se utiliza para las comprobaciones de estado. Puede ser un número de puerto específico o `traffic-port`. |  `traffic-port`  | 
|  `aws-load-balancer-subnets`  | Especifica en qué subredes se va a crear el equilibrador de carga. Puede usar nombres o ID de subred. |  `subnet-xxxx, subnet-yyyy`  | 
|  `aws-load-balancer-ssl-cert`  | ARN del certificado SSL de AWS Certificate Manager para HTTPS/TLS. |  ` arn:aws:acm:region:account:certificate/cert-id`  | 
|  `aws-load-balancer-ssl-ports`  | Especifica qué puertos deben usar SSL/TLS. |  `443, 8443`  | 
|  `load-balancer-source-ranges`  | Los rangos de CIDR permiten acceder al equilibrador de carga. |  `10.0.0.0/24, 192.168.1.0/24`  | 
|  `aws-load-balancer-additional-resource-tags`  | Etiquetas de AWS adicionales para aplicarlas al equilibrador de carga y a los recursos relacionados. |  `Environment=prod,Team=platform`  | 
|  `aws-load-balancer-ip-address-type`  | Especifica si el equilibrador de carga usa IPv4 o pila dual (IPv4 \+ IPv6). |  `ipv4` o `dualstack`  | 

## Consideraciones
<a name="_considerations"></a>
+ Debe actualizar el rol de IAM del clúster para permitir la propagación de etiquetas desde Kubernetes a los recursos del equilibrador de carga de AWS. Para obtener más información, consulte [Etiquetas personalizadas de AWS para los recursos del modo automático de EKS](auto-cluster-iam-role.md#tag-prop).
+ Para obtener información sobre la asociación de recursos con el modo automático de EKS o con el controlador del equilibrador de carga de AWS autoadministrado, consulte [Referencia para las migraciones](migrate-auto.md#migration-reference).
+ Para obtener información sobre cómo solucionar problemas con los equilibradores de carga, consulte [Solución de problemas del modo automático de EKS](auto-troubleshoot.md).
+ Para conocer más aspectos a tener en cuenta a la hora de utilizar la capacidad de equilibrio de carga del modo automático de EKS, consulte [Equilibrio de carga](auto-networking.md#auto-lb-consider).

Al migrar al modo automático de EKS para el equilibrio de carga, es necesario realizar varios cambios en las anotaciones de servicio y las configuraciones de recursos. En las tablas que aparecen a continuación se describen las principales diferencias entre las implementaciones anteriores y las nuevas, incluidas las opciones no compatibles y las alternativas recomendadas.

### Anotaciones del servicio
<a name="_service_annotations"></a>


| Anteriores | New | Descripción | 
| --- | --- | --- | 
|  `service.beta.kubernetes.io/load-balancer-source-ranges`  | No admitido | Utilice `spec.loadBalancerSourceRanges` en el servicio | 
|  `service.beta.kubernetes.io/aws-load-balancer-type`  | No admitido | Utilice `spec.loadBalancerClass` en el servicio | 
|  `service.beta.kubernetes.io/aws-load-balancer-internal`  | No admitido | Uso de `service.beta.kubernetes.io/aws-load-balancer-scheme`  | 
|  `service.beta.kubernetes.io/aws-load-balancer-proxy-protocol`  | No admitido | En su lugar, use `service.beta.kubernetes.io/aws-load-balancer-target-group-attributes` | 
| Varios atributos del equilibrador de carga | No admitido | Uso de `service.beta.kubernetes.io/aws-load-balancer-attributes`  | 
|  `service.beta.kubernetes.io/aws-load-balancer-access-log-enabled`  | No admitido | En su lugar, use `service.beta.kubernetes.io/aws-load-balancer-attributes` | 
|  `service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name`  | No admitido | En su lugar, use `service.beta.kubernetes.io/aws-load-balancer-attributes` | 
|  `service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix`  | No admitido | En su lugar, use `service.beta.kubernetes.io/aws-load-balancer-attributes` | 
|  `service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled`  | No admitido | En su lugar, use `service.beta.kubernetes.io/aws-load-balancer-attributes` | 

Para migrar desde anotaciones de atributos del equilibrador de cargas obsoletas, consolide estos ajustes en la anotación `service.beta.kubernetes.io/aws-load-balancer-attributes`. Esta anotación acepta una lista separada por comas de pares de clave y valor para varios atributos del equilibrador de carga. Por ejemplo, para especificar el registro de acceso y el equilibrio de carga entre zonas, utilice el siguiente formato:

```
service.beta.kubernetes.io/aws-load-balancer-attributes: access_logs.s3.enabled=true,access_logs.s3.bucket=my-bucket,access_logs.s3.prefix=my-prefix,load_balancing.cross_zone.enabled=true
```

Este formato consolidado proporciona una forma más coherente y flexible de configurar los atributos del equilibrador de carga y, al mismo tiempo, reduce la cantidad de anotaciones individuales necesarias. Revise las configuraciones de servicio existentes y actualícelas para usar este formato consolidado.

### TargetGroupBinding
<a name="_targetgroupbinding"></a>


| Anteriores | New | Descripción | 
| --- | --- | --- | 
|  `elbv2.k8s.aws/v1beta1`  |  `eks.amazonaws.com/v1`  | Cambio de versión de la API | 
|  `spec.targetType` opcional |  `spec.targetType` obligatorio | Especificación explícita del tipo de destino | 
|  `spec.networking.ingress.from`  | No admitido | Ya no es compatible con equilibradores de carga de red sin grupos de seguridad | 

Nota: Para utilizar la característica TargetGroupBinding personalizada, debe etiquetar el grupo de destino con la etiqueta `eks:eks-cluster-name` con el nombre del clúster para conceder al controlador los permisos de IAM necesarios. Tenga en cuenta que el controlador eliminará el grupo de destino cuando se elimine el recurso TargetGroupBinding o el clúster.