Contribuisci a migliorare questa pagina
Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.
Installa AWS Load Balancer Controller con Helm
Suggerimento
Con Amazon EKS Auto Mode, non è necessario installare o aggiornare componenti aggiuntivi di rete. Auto Mode include funzionalità di pod networking e bilanciamento del carico.
Per ulteriori informazioni, consulta Automate cluster infrastructure with EKS Auto Mode.
Questo argomento descrive come installare AWS Load Balancer Controller utilizzando Helm, un gestore di pacchetti per Kubernetes, e eksctl. Il controller viene installato con le opzioni predefinite. Per ulteriori informazioni sul controller, inclusi i dettagli sulla configurazione con annotazioni, consulta AWS Load Balancer Controller Documentation
Nei passaggi seguenti, sostituisci i valori di esempio con i tuoi valori.
Prerequisiti
Prima di iniziare questo tutorial, completa i seguenti passaggi:
-
Crea un cluster Amazon EKS. Per crearne uno, consulta Nozioni di base su Amazon EKS.
-
Installa Helm
sul computer locale. -
Assicurati che il plug-in CNI di Amazon VPC per Kubernetes,
kube-proxye i componenti aggiuntivi CoreDNS siano alle versioni minime elencate in Service account tokens. -
Scopri di più sui concetti di AWS Elastic Load Balancing. Per ulteriori informazioni, consulta la Guida per l’utente di Elastic Load Balancing.
-
Scopri il servizio
Kubernetes e le risorse in entrata .
Considerazioni
Prima di procedere con i passaggi per la configurazione descritti in questa pagina, considera quanto segue:
-
La policy e il ruolo IAM (
AmazonEKSLoadBalancerControllerRole) possono essere riutilizzati su più cluster EKS nello stesso account AWS. -
Se stai installando il controller sullo stesso cluster in cui il ruolo (
AmazonEKSLoadBalancerControllerRole) è stato originariamente creato, vai a Step 2: Install Load Balancer Controller dopo aver verificato l’esistenza del ruolo. -
Se utilizzato, IRSA (IAM Roles for Service Accounts) deve essere configurato per ogni cluster e l’ARN del provider OpenID Connect (OIDC) nella policy di attendibilità del ruolo è specifico per ogni cluster EKS. Inoltre, se stai installando il controller su un nuovo cluster con un
AmazonEKSLoadBalancerControllerRoleesistente, aggiorna la policy di attendibilità del ruolo per includere il provider OIDC del nuovo cluster e crea un nuovo account di servizio con l’annotazione di ruolo appropriata. Per determinare se disponi già di un provider OIDC o per crearne uno, consulta Per creare un provider di identità IAM OIDC per il cluster.
Passaggio 1: crea un ruolo IAM utilizzando eksctl
I passaggi seguenti si riferiscono alla versione di rilascio v2.13.3 di AWS Load Balancer Controller. Per ulteriori informazioni su tutte le versioni, consulta AWS Load Balancer Controller Release Page
-
Scaricare una policy IAM per il Controller del load balancer AWS che consente di effettuare chiamate alle API AWS per conto dell’utente.
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.13.3/docs/install/iam_policy.json-
Se utilizzi una partizione AWS non standard, ad esempio una regione governativa o cinese, consulta le policy su GitHub
e scarica quella appropriata per la tua regione.
-
-
Creare una policy IAM utilizzando le policy scaricate nel passaggio precedente.
aws iam create-policy \ --policy-name AWSLoadBalancerControllerIAMPolicy \ --policy-document file://iam_policy.jsonNota
Se visualizzi la policy nella Console di gestione AWS, la console mostra le avvertenze per il servizio ELB, ma non per il servizio ELB v2. Ciò accade perché alcune azioni nella policy esistono per ELB v2, ma non per ELB. Queste avvertenze per ELB possono essere ignorate.
-
Sostituisci i valori per il nome del cluster, il codice regionale e l’ID dell’account.
eksctl create iamserviceaccount \ --cluster=<cluster-name> \ --namespace=kube-system \ --name=aws-load-balancer-controller \ --attach-policy-arn=arn:aws:iam::<AWS_ACCOUNT_ID>:policy/AWSLoadBalancerControllerIAMPolicy \ --override-existing-serviceaccounts \ --region <aws-region-code> \ --approve
Passaggio 2: installa AWS Load Balancer Controller
-
Aggiungi il repository di grafici Helm
eks-charts. AWS conserva questo repositorysu GitHub. helm repo add eks https://aws.github.io/eks-charts -
Aggiornare il repository locale per assicurarsi di avere i grafici più recenti.
helm repo update eks -
Installazione del Controller del load balancer AWS.
Se stai implementando il controller su nodi Amazon EC2 che hanno accesso limitato al servizio di metadati di istanza (IMDS) di Amazon EC2
o se stai implementando in Fargate o Amazon EKS Hybrid Nodes, aggiungi questi flag al comando helmseguente:-
--set region=region-code -
--set vpcId=vpc-xxxxxxxxSostituisci
my-clustercon il nome del tuo cluster. Nel comando seguente,aws-load-balancer-controllerindica l’account del servizio Kubernetes creato in una fase precedente.Per ulteriori informazioni sulla configurazione del grafico Helm, consulta values.yaml
su GitHub. helm install aws-load-balancer-controller eks/aws-load-balancer-controller \ -n kube-system \ --set clusterName=my-cluster \ --set serviceAccount.create=false \ --set serviceAccount.name=aws-load-balancer-controller \ --version 1.13.0
-
Importante
Il grafico implementato non riceve automaticamente gli aggiornamenti di sicurezza. È necessario eseguire manualmente l’aggiornamento a un grafico più recente quando diventa disponibile. Durante l’aggiornamento, modifica install in upgrade nel comando precedente.
Il comando helm install installa automaticamente le definizioni di risorse personalizzate (CRD) per il controller. Il comando helm upgrade non lo fa. Se utilizzi helm upgrade,, devi installare manualmente le CRD. Esegui il comando seguente per installare le CRD.
wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml kubectl apply -f crds.yaml
Passaggio 3: verifica che il controller sia installato
-
Verificare che il controller sia installato.
kubectl get deployment -n kube-system aws-load-balancer-controllerDi seguito viene riportato un output di esempio:
NAME READY UP-TO-DATE AVAILABLE AGE aws-load-balancer-controller 2/2 2 2 84sRiceverai l’output precedente se hai eseguito l’implementazione con Helm. Se hai eseguito l’implementazione utilizzando il manifesto Kubernetes, hai una sola replica.
-
Prima di utilizzare il controller per eseguire il provisioning delle risorse AWS, il cluster deve soddisfare requisiti specifici. Per ulteriori informazioni, consulta Instradare il traffico di applicazioni e HTTP con Application Load Balancer e Esecuzione del routing del traffico TCP e UDP con Network Load Balancer.