Usa Annotazioni del servizio per configurare Network Load Balancer - Amazon EKS

Contribuisci a migliorare questa pagina

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa Annotazioni del servizio per configurare Network Load Balancer

Scopri come configurare Network Load Balancer (NLB) in Amazon EKS utilizzando le annotazioni del servizio di Kubernetes. Questo argomento spiega le annotazioni supportate da EKS Auto Mode per personalizzare il comportamento NLB, tra cui accessibilità Internet, controlli di integrità, SSL/TLS terminazione e modalità di targeting IP.

Quando crei un servizio Kubernetes di tipo LoadBalancer in modalità automatica EKS, EKS effettua automaticamente il provisioning e configura un AWS Network Load Balancer in base alle annotazioni specificate. Questo approccio dichiarativo ti consente di gestire le configurazioni del bilanciatore del carico direttamente tramite i manifesti di Kubernetes, mantenendo l’infrastruttura come pratiche di codice.

EKS Auto Mode gestisce il provisioning di Network Load Balancer per impostazione predefinita per tutti i servizi di tipo LoadBalancer : non è richiesta alcuna installazione o configurazione di controller aggiuntivi. La specifica loadBalancerClass: eks.amazonaws.com/nlb viene impostata automaticamente come impostazione predefinita del cluster, semplificando il processo di implementazione e mantenendo la compatibilità con i carichi di lavoro di Kubernetes esistenti.

Nota

La modalità automatica di EKS richiede i tag di sottorete per identificare le sottoreti pubbliche e private.

Se hai creato il cluster con eksctl, disponi già di questi tag.

Informazioni su come Assegnazione di tag alle sottoreti per la modalità automatica EKS.

Servizio di esempio

Per ulteriori informazioni sulla risorsa Service di Kubernetes, consulta Kubernetes Documentation.

Consulta la risorsa di esempio Service riportata di seguito:

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

Annotazioni di uso comune

La tabella seguente elenca le annotazioni di uso comune supportate dalla modalità automatica di EKS. La modalità automatica di EKS potrebbe non supportare tutte le annotazioni.

Suggerimento

Tutte le seguenti annotazioni devono avere il prefisso service.beta.kubernetes.io/

Campo Description Esempio

aws-load-balancer-type

Specifica il tipo di bilanciatore del carico. Utilizza external per nuove implementazioni.

external

aws-load-balancer-nlb-target-type

Speciifica se indirizzare il traffico verso le istanze del nodo o direttamente verso il pod. IPs Utilizza instance per implementazioni standard o ip per l’instradamento diretto ai pod.

instance

aws-load-balancer-scheme

Controlla se il bilanciatore del carico è interno o esposto a Internet.

internet-facing

aws-load-balancer-healthcheck-protocol

Protocollo di controllo dell’integrità per il gruppo di destinazione. Le opzioni più comuni sono TCP (impostazione predefinita) o HTTP.

HTTP

aws-load-balancer-healthcheck-path

Il percorso HTTP per i controlli di integrità quando si utilizza HTTP/HTTPS il protocollo.

/healthz

aws-load-balancer-healthcheck-port

Porta utilizzata per i controlli dell’integrità. Può essere un numero di porta specifico o traffic-port.

traffic-port

aws-load-balancer-subnets

Specifica in quali sottoreti creare il bilanciatore del carico. Può usare sottoreti IDs o nomi.

subnet-xxxx, subnet-yyyy

aws-load-balancer-ssl-cert

ARN del certificato SSL di Certificate Manager for AWS HTTPS/TLS.

arn:aws: acm:region:account:certificate/cert-id

aws-load-balancer-ssl-ports

Specifica quali porte devono utilizzare SSL/TLS.

443, 8443

load-balancer-source-ranges

Intervalli CIDR autorizzati ad accedere al bilanciatore del carico.

10.0.0.0/24, 192.168.1.0/24

aws-load-balancer-additional-resource-tags

AWS Tag aggiuntivi da applicare al sistema di bilanciamento del carico e alle risorse correlate.

Environment=prod,Team=platform

aws-load-balancer-ip-address-type

Speciifica se il load balancer utilizza IPv4 o dual-stack (+). IPv4 IPv6

ipv4 o dualstack

Considerazioni

Durante la migrazione alla modalità automatica di EKS per il bilanciamento del carico, sono necessarie diverse modifiche nelle annotazioni dei servizi e nelle configurazioni delle risorse. Le tabelle seguenti descrivono le differenze principali tra le implementazioni precedenti e quelle nuove, includendo le opzioni non supportate e le alternative consigliate.

Annotazioni dei servizi

Precedente Novità Description

service.beta.kubernetes.io/load-balancer-source-ranges

Non supportata

Usa spec.loadBalancerSourceRanges sul servizio

service.beta.kubernetes.io/aws-load-balancer-type

Non supportata

Usa spec.loadBalancerClass sul servizio

service.beta.kubernetes.io/aws-load-balancer-internal

Non supportata

Utilizzare service.beta.kubernetes.io/aws-load-balancer-scheme

service.beta.kubernetes.io/aws-load-balancer-proxy-protocol

Non supportata

Usa invece service.beta.kubernetes.io/aws-load-balancer-target-group-attributes

Vari attributi del bilanciatore del carico

Non supportata

Utilizzare service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-access-log-enabled

Non supportata

Usa invece service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name

Non supportata

Usa invece service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix

Non supportata

Usa invece service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled

Non supportata

Usa invece service.beta.kubernetes.io/aws-load-balancer-attributes

Per eseguire la migrazione dalle annotazioni obsolete degli attributi del bilanciatore del carico, consolida queste impostazioni nell’annotazione service.beta.kubernetes.io/aws-load-balancer-attributes. Questa annotazione accetta un elenco di coppie chiave-valore separato da virgole per vari attributi del bilanciatore del carico. Ad esempio, per specificare la registrazione degli accessi e il bilanciamento del carico tra zone, utilizzate il seguente 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

Questo formato consolidato offre un modo più coerente e flessibile per configurare gli attributi del bilanciatore del carico riducendo al contempo il numero di singole annotazioni necessarie. Rivedi le configurazioni del servizio esistenti e aggiornale per utilizzare questo formato consolidato.

TargetGroupBinding

Precedente Novità Description

elbv2.k8s.aws/v1beta1

eks.amazonaws.com/v1

Modifica alla versione dell’API

spec.targetType facoltativo

spec.targetType obbligatorio

Specifica esplicita del tipo di destinazione

spec.networking.ingress.from

Non supportata

Non supporta più NLB senza gruppi di sicurezza

Nota: per utilizzare la TargetGroupBinding funzionalità personalizzata, è necessario etichettare il gruppo di destinazione con il tag con il eks:eks-cluster-name nome del cluster per concedere al controller le autorizzazioni IAM necessarie. Tieni presente che il controller eliminerà il gruppo di destinazione quando la TargetGroupBinding risorsa o il cluster vengono eliminati.