Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
AWS Load Balancer Controller mit Helm installieren
Tipp
Mit Amazon EKS Auto Mode ist es nicht erforderlich, Netzwerk-Add-Ons zu installieren oder zu aktualisieren. Der Automatikmodus umfasst Funktionen für Pod-Netzwerke und Load Balancing.
Weitere Informationen finden Sie unter Automatisieren der Cluster-Infrastruktur mit EKS Auto Mode.
In diesem Thema wird beschrieben, wie Sie den AWS Load Balancer Controller mithilfe von Helm, einem Paket-Manager für Kubernetes, und eksctl installieren. Der Controller wird mit den Standardoptionen installiert. Weitere Informationen zum Controller, einschließlich Details zur Konfiguration mit Annotationen, finden Sie in der Dokumentation zum AWS Load Balancer Controller
Ersetzen Sie in den folgenden Schritten die Beispielwerte durch Ihre eigenen Werte.
Voraussetzungen
Bevor Sie mit diesem Tutorial beginnen, müssen Sie die folgenden Schritte ausführen:
-
Erstellen Sie einen Amazon-EKS-Cluster. Informationen zum Erstellen finden Sie unter Erste Schritte mit Amazon EKS.
-
Installieren Sie Helm
auf Ihrem lokalen Rechner. -
Stellen Sie sicher, dass Ihr Amazon-VPC-CNI-Plugin für Kubernetes,
kube-proxyund CoreDNS-Add-Ons die in den Servicekonto-Token aufgeführten Mindestversionen aufweist. -
Erfahren Sie mehr über die Konzepte von AWS Elastic Load Balancing. Weitere Informationen finden Sie im Elastic Load Balancing-Benutzerhandbuch.
-
Erfahren Sie mehr über den Kubernetes-Service
und die Ingress -Ressourcen.
Überlegungen
Bevor Sie mit den Konfigurationsschritten auf dieser Seite fortfahren, beachten Sie Folgendes:
-
Die IAM-Richtlinie und -Rolle (
AmazonEKSLoadBalancerControllerRole) können in mehreren EKS-Clustern im selben AWS-Konto wiederverwendet werden. -
Wenn Sie den Controller im selben Cluster installieren, in dem die Rolle (
AmazonEKSLoadBalancerControllerRole) ursprünglich erstellt wurde, fahren Sie mit Schritt 2: Installieren des Load Balancer Controllers fort, nachdem Sie überprüft haben, ob die Rolle vorhanden ist. -
Wenn Sie IAM-Rollen für Servicekonten (IRSA) verwenden, muss IRSA für jeden Cluster eingerichtet werden, und die OpenID Connect (OIDC)-Anbieter-ARN in der Vertrauensrichtlinie der Rolle ist für jeden EKS-Cluster spezifisch. Wenn Sie den Controller auf einem neuen Cluster mit einem vorhandenen
AmazonEKSLoadBalancerControllerRoleinstallieren, aktualisieren Sie außerdem die Vertrauensrichtlinie der Rolle, um den OIDC-Anbieter des neuen Clusters einzuschließen, und erstellen Sie ein neues Servicekonto mit der entsprechenden Rollen-Annotation. Informationen zum Feststellen, ob Sie bereits über einen OIDC-Anbieter verfügen oder einen erstellen müssen, finden Sie unter Erstellen Sie einen IAM-OIDC-Anbieter für Ihren Cluster.
Schritt 1: IAM-Rolle mithilfe von eksctl erstellen
Die folgenden Schritte beziehen sich auf die Version des AWS Load Balancer Controllers v2.13.3. Weitere Informationen zu allen Versionen finden Sie auf der Versionsseite für AWS Load Balancer Controller
-
Laden Sie eine IAM-Richtlinie für den AWS-Lastenverteilungs-Controller herunter, die es ihm ermöglicht, in Ihrem Namen Aufrufe an AWS-APIs zu tätigen.
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.13.3/docs/install/iam_policy.json-
Wenn Sie eine nicht standardmäßige AWS-Partition sind, z. B. eine Regierungs- oder China-Region, überprüfen Sie die Richtlinien auf GitHub
und laden Sie die entsprechende Richtlinie für Ihre Region herunter.
-
-
Erstellen Sie eine IAM-Richtlinie mit der im vorherigen Schritt heruntergeladenen Richtlinie.
aws iam create-policy \ --policy-name AWSLoadBalancerControllerIAMPolicy \ --policy-document file://iam_policy.jsonAnmerkung
Wenn Sie die Richtlinie in der AWS-Managementkonsole anzeigen, werden in der Konsole Warnungen für den ELB-Service angezeigt, aber nicht für den ELB v2-Service. Dies liegt daran, dass einige der Maßnahmen in der Richtlinie für ELB v2, aber nicht für ELB gelten. Sie können diese Warnungen für ELB ignorieren.
-
Ersetzen Sie die Werte für den Cluster-Namen, den Regions-Code und die Konto-ID.
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
Schritt 2: AWS Load Balancer Controller installieren
-
Fügen Sie das
eks-charts-Helm-Chart-Repository hinzu. AWS verwaltet dieses Repositoryauf GitHub. helm repo add eks https://aws.github.io/eks-charts -
Aktualisieren Sie Ihr lokales Repository, um sicherzustellen, dass Sie über die neuesten Charts verfügen.
helm repo update eks -
Installieren Sie den AWS-Lastenverteilungs-Controller.
Wenn Sie den Controller in Amazon-EC2-Knoten bereitstellen, die eingeschränkten Zugriff auf den Instance Metadata Service (IMDS) von Amazon EC2
haben, oder wenn die Bereitstellung in Fargate oder Amazon EKS Hybrid Nodes erfolgt, fügen Sie dem folgenden helm-Befehl die folgenden Flags hinzu:-
--set region=region-code -
--set vpcId=vpc-xxxxxxxxErsetzen Sie
my-clusterdurch den Namen Ihres Clusters. Im folgenden Befehl istaws-load-balancer-controllerdas Kubernetes-Servicekonto, das Sie in einem vorherigen Schritt erstellt haben.Weitere Informationen zum Konfigurieren des Helm-Diagramms finden Sie unter values.yaml
auf 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
-
Wichtig
Das bereitgestellte Diagramm erhält keine automatischen Sicherheitsaktualisierungen. Sie müssen manuell auf ein neueres Diagramm aktualisieren, wenn es verfügbar wird. Ändern Sie beim Upgrade im vorherigen Befehl installieren in upgrade.
Der helm install-Befehl installiert automatisch die benutzerdefinierten Ressourcendefinitionen (CRDs) für den Controller. Der helm upgrade-Befehl installiert dies nicht. Wenn Sie helm upgrade, verwenden, müssen Sie die CRDs manuell installieren. Führen Sie den folgenden Befehl aus, um die CRDs zu installeren:
wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml kubectl apply -f crds.yaml
Schritt 3: Überprüfen, ob der Controller installiert ist
-
Stellen Sie sicher, dass der Controller installiert ist.
kubectl get deployment -n kube-system aws-load-balancer-controllerEine Beispielausgabe sieht wie folgt aus.
NAME READY UP-TO-DATE AVAILABLE AGE aws-load-balancer-controller 2/2 2 2 84sSie erhalten die vorherige Ausgabe, wenn Sie mit Helm bereitgestellt haben. Wenn Sie mit dem Kubernetes-Manifest bereitgestellt haben, haben Sie nur ein Replikat.
-
Bevor Sie den Controller zum Bereitstellen von AWS-Ressourcen verwenden, muss Ihr Cluster bestimmte Anforderungen erfüllen. Weitere Informationen erhalten Sie unter Anwendungen und HTTP-Datenverkehr mit Application Load Balancers weiterleiten und Weiterleitung von TCP- und UDP-Datenverkehr mit Network Load Balancers.