Creare e IngressClass configurare un Application Load Balancer - Amazon EKS

Aiutaci 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à.

Creare e IngressClass configurare un Application Load Balancer

EKS Auto Mode automatizza le attività di routine per il bilanciamento del carico, inclusa l'esposizione delle app del cluster a Internet.

AWS suggerisce di utilizzare Application Load Balancers (ALB) per servire il traffico HTTP e HTTPS. Gli Application Load Balancer possono instradare le richieste in base al contenuto della richiesta. Per ulteriori informazioni sugli Application Load Balancer, consulta What is Elastic Load Balancing?

EKS Auto Mode crea e configura Application Load Balancer (). ALBs Ad esempio, EKS Auto Mode crea un sistema di bilanciamento del carico quando crei un oggetto Ingress Kubernetes e lo configura per indirizzare il traffico verso il carico di lavoro del cluster.

Panoramica

  1. Crea un carico di lavoro da esporre a Internet.

  2. Crea una IngressClassParams risorsa, specificando valori di configurazione AWS specifici come il certificato da utilizzare per le sottoreti SSL/TLS e VPC.

  3. Crea una IngressClass risorsa, specificando che EKS Auto Mode sarà il controller della risorsa.

  4. Crea una Ingress risorsa che associ un percorso e una porta HTTP a un carico di lavoro del cluster.

EKS Auto Mode creerà un Application Load Balancer che punta al carico di lavoro specificato nella Ingress risorsa, utilizzando la configurazione del load balancer specificata nella risorsa. IngressClassParams

Prerequisiti

  • Modalità EKS Auto abilitata su un cluster Amazon EKS

  • Kubectl è configurato per connettersi al tuo cluster

    • Puoi usarlo kubectl apply -f <filename> per applicare i file YAML di configurazione di esempio riportati di seguito al tuo cluster.

Nota

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

Se hai creato il cluster coneksctl, hai già questi tag.

Scopri come effettuare il Etichetta le sottoreti per la modalità automatica EKS.

Fase 1: Creare un carico di lavoro

Crea un carico di lavoro da esporre a Internet. Può trattarsi di qualsiasi risorsa Kubernetes che serve il traffico HTTP, ad esempio una distribuzione o un servizio. Per questo esempio, utilizziamo un semplice servizio HTTP chiamato service-2048 che serve il traffico HTTP sulla porta 80.

Fase 2: Creare IngressClassParams

Crea un IngressClassParams oggetto per specificare opzioni di configurazione AWS specifiche per l'Application Load Balancer. In questo esempio, creiamo una IngressClassParams risorsa denominata alb (che verrà utilizzata nel passaggio successivo) che specifica lo schema di bilanciamento del carico come internet-facing in un file chiamato. alb-ingressclassparams.yaml

apiVersion: eks.amazonaws.com/v1 kind: IngressClassParams metadata: name: alb spec: scheme: internet-facing

Applica la configurazione al tuo cluster:

kubectl apply -f alb-ingressclassparams.yaml

Fase 3: Creare IngressClass

Crea un file IngressClass che faccia riferimento ai valori di configurazione AWS specifici impostati nella IngressClassParams risorsa in un file denominatoalb-ingressclass.yaml. Nota il nome diIngressClass. In questo esempio, entrambi IngressClass i nomi IngressClassParams sono denominatialb.

Utilizzate l'is-default-classannotazione per controllare se Ingress le risorse devono utilizzare questa classe per impostazione predefinita.

apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb annotations: # Use this annotation to set an IngressClass as Default # If an Ingress doesn't specify a class, it will use the Default ingressclass.kubernetes.io/is-default-class: "true" spec: # Configures the IngressClass to use EKS Auto Mode controller: eks.amazonaws.com/alb parameters: apiGroup: eks.amazonaws.com kind: IngressClassParams # Use the name of the IngressClassParams set in the previous step name: alb

Per ulteriori informazioni sulle opzioni di configurazione, IngressClassParams Riferimento consultate.

Applica la configurazione al tuo cluster:

kubectl apply -f alb-ingressclass.yaml

Fase 4: Creare Ingress

Crea una Ingress risorsa in un file denominatoalb-ingress.yaml. Lo scopo di questa risorsa è associare percorsi e porte sull'Application Load Balancer ai carichi di lavoro del cluster. Per questo esempio, creiamo una Ingress risorsa denominata 2048-ingress che indirizza il traffico verso un servizio denominato service-2048 sulla porta 80.

Per ulteriori informazioni sulla configurazione di questa risorsa, consulta Ingress nella documentazione di Kubernetes.

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: 2048-ingress spec: # this matches the name of IngressClass. # this can be omitted if you have a default ingressClass in cluster: the one with ingressclass.kubernetes.io/is-default-class: "true" annotation ingressClassName: alb rules: - http: paths: - path: /* pathType: ImplementationSpecific backend: service: name: service-2048 port: number: 80

Applica la configurazione al tuo cluster:

kubectl apply -f alb-ingress.yaml

Fase 5: Verifica dello stato

Usa kubectl per trovare lo stato diIngress. Potrebbero essere necessari alcuni minuti prima che il sistema di bilanciamento del carico diventi disponibile.

Usa il nome della Ingress risorsa che hai impostato nel passaggio precedente. Per esempio:

kubectl get ingress 2048-ingress

Quando la risorsa è pronta, recupera il nome di dominio del load balancer.

kubectl get ingress 2048-ingress -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'

Per visualizzare il servizio in un browser Web, esamina la porta e il percorso specificati nel Ingress file di ripristino.

Passaggio 6: pulizia

Per ripulire il sistema di bilanciamento del carico, utilizzate il seguente comando:

kubectl delete ingress 2048-ingress kubectl delete ingressclass alb kubectl delete ingressclassparams alb

EKS Auto Mode eliminerà automaticamente il sistema di bilanciamento del carico associato nel tuo AWS account.

IngressClassParams Riferimento

La tabella seguente è un riferimento rapido per le opzioni di configurazione più utilizzate.

Campo Descrizione Valore di esempio

scheme

Definisce se l'ALB è interno o connesso a Internet

internet-facing

namespaceSelector

Limita quali namespace possono utilizzarlo IngressClass

environment: prod

group.name

Raggruppa più ingressi per condividere un singolo ALB

retail-apps

ipAddressType

Imposta il tipo di indirizzo IP per l'ALB

dualstack

subnets.ids

Elenco di sottoreti IDs per la distribuzione ALB

subnet-xxxx, subnet-yyyy

subnets.tags

Filtri di tag per selezionare le sottoreti per ALB

Environment: prod

certificateARNs

ARNs di certificati SSL da utilizzare

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

tags

Tag personalizzati per le risorse AWS

Environment: prod, Team: platform

loadBalancerAttributes

Attributi specifici del sistema di bilanciamento del carico

idle_timeout.timeout_seconds: 60

Considerazioni

  • Non è possibile utilizzare Annotations su un PC IngressClass per configurare i sistemi di bilanciamento del carico con EKS Auto Mode.

  • È necessario aggiornare il ruolo Cluster IAM per abilitare la propagazione dei tag dalle risorse Kubernetes alle risorse Load AWS Balancer. Per ulteriori informazioni, consulta Tag personalizzati per le risorse EKS Auto AWS.

  • Per informazioni sull'associazione di risorse a EKS Auto Mode o al Load AWS Balancer Controller autogestito, vedere. Riferimento per la migrazione

  • Per informazioni sulla risoluzione dei problemi con i sistemi di bilanciamento del carico, consulta. Risoluzione dei problemi relativi alla modalità automatica EKS

  • Per ulteriori considerazioni sull'utilizzo della funzionalità di bilanciamento del carico di EKS Auto Mode, vedere. Bilanciamento del carico

Le tabelle seguenti forniscono un confronto dettagliato delle modifiche IngressClassParams, delle annotazioni di Ingress e delle TargetGroupBinding configurazioni per la modalità automatica EKS. Queste tabelle evidenziano le differenze principali tra la capacità di bilanciamento del carico di EKS Auto Mode e il controller di bilanciamento del carico open source, comprese le modifiche alla versione dell'API, le funzionalità obsolete e i nomi dei parametri aggiornati.

IngressClassParams

Precedente Novità Descrizione

elbv2.k8s.aws/v1beta1

eks.amazonaws.com/v1

Modifica della versione dell'API

spec.certificateArn

spec.certificateARNs

Support per più certificati ARNs

spec.subnets.tags

spec.subnets.matchTags

Schema di corrispondenza delle sottoreti modificato

spec.listeners.listenerAttributes

spec.listeners.attributes

Denominazione semplificata degli attributi

Annotazioni in ingresso

Precedente Novità Descrizione

kubernetes.io/ingress.class

Non supportato

Utilizzare spec.ingressClassName su oggetti Ingress

alb.ingress.kubernetes.io/group.name

Non supportato

Specificate i gruppi solo in IngressClass

alb.ingress.kubernetes.io/waf-acl-id

Non supportato

Utilizzate invece WAF v2

alb.ingress.kubernetes.io/web-acl-id

Non supportato

Usa invece WAF v2

alb.ingress.kubernetes.io/shield-advanced-protection

Non supportato

Integrazione Shield disattivata

alb.ingress.kubernetes.io/auth-type: oidc

Non supportato

Il tipo di autenticazione OIDC non è attualmente supportato

TargetGroupBinding

Precedente Novità Descrizione

elbv2.k8s.aws/v1beta1

eks.amazonaws.com/v1

Modifica della versione dell'API

spec.targetTypeopzionale

spec.targetTyperichiesto

Specificazione esplicita del tipo di destinazione

spec.networking.ingress.from

Non supportato

Non supporta più NLB senza gruppi di sicurezza