

 **Unterstützung für die Verbesserung dieser Seite beitragen** 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link **Diese Seite bearbeiten auf**, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Installieren Sie den AWS Load Balancer Controller mit Manifesten
<a name="lbc-manifest"></a>

**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 dem EKS-Automatikmodus](automode.md).

In diesem Thema wird beschrieben, wie Sie den Controller durch Herunterladen und Anwenden von Kubernetes-Manifesten installieren. Sie können die vollständige [Dokumentation](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/) für den Controller auf GitHub anzeigen.

Ersetzen Sie in den folgenden Schritten die Beispielwerte durch Ihre eigenen Werte.

## Voraussetzungen
<a name="lbc-manifest-prereqs"></a>

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](getting-started.md).
+ Installieren Sie [Helm](https://helm.sh/docs/helm/helm_install/) auf Ihrem lokalen Rechner.
+ Stellen Sie sicher, dass Ihr Amazon-VPC-CNI-Plugin für Kubernetes, `kube-proxy` und CoreDNS-Add-Ons die in den [Servicekonto-Token](service-accounts.md#boundserviceaccounttoken-validated-add-on-versions) aufgeführten Mindestversionen aufweist.
+ Erfahren Sie mehr über die Konzepte von AWS Elastic Load Balancing. Weitere Informationen finden Sie im [Elastic Load Balancing-Benutzerhandbuch](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/).
+ Erfahren Sie mehr über den Kubernetes-[Service](https://kubernetes.io/docs/concepts/services-networking/service/) und die [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/)-Ressourcen.

### Überlegungen
<a name="lbc-manifest-considerations"></a>

Bevor Sie mit den Konfigurationsschritten auf dieser Seite fortfahren, beachten Sie Folgendes:
+ Die IAM-Richtlinie und die Rolle (`AmazonEKSLoadBalancerControllerRole`) können für mehrere EKS-Cluster im selben AWS Konto wiederverwendet werden.
+ Wenn Sie den Controller auf demselben Cluster installieren, auf dem die Rolle (`AmazonEKSLoadBalancerControllerRole`) ursprünglich erstellt wurde, fahren Sie fort mit [Schritt 2: Installation von cert-manager](#lbc-cert) nachdem Sie überprüft haben, dass 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 `AmazonEKSLoadBalancerControllerRole` installieren, 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](enable-iam-roles-for-service-accounts.md).

## Schritt 1: IAM konfigurieren
<a name="lbc-iam"></a>

Die folgenden Schritte beziehen sich auf die Release-Version des Load AWS Balancer Controller **v2.14.1**. Weitere Informationen zu allen Versionen finden Sie auf der [Load AWS Balancer Controller-Release-Seite](https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/) unter GitHub.

1. Laden Sie eine IAM-Richtlinie für den Load AWS Balancer Controller herunter, mit der er in AWS APIs Ihrem Namen Anrufe tätigen kann.  
**Example**  

------
#### [  AWS  ]

   ```
   curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.14.1/docs/install/iam_policy.json
   ```

------
#### [  AWS GovCloud (US) ]

   ```
   curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.14.1/docs/install/iam_policy_us-gov.json
   ```

   ```
   mv iam_policy_us-gov.json iam_policy.json
   ```

------

1. Erstellen Sie eine IAM-Richtlinie mit der im vorherigen Schritt heruntergeladenen Richtlinie.

   ```
   aws iam create-policy \
       --policy-name AWSLoadBalancerControllerIAMPolicy \
       --policy-document file://iam_policy.json
   ```
**Anmerkung**  
Wenn Sie sich die Richtlinie in ansehen AWS-Managementkonsole, zeigt die Konsole Warnungen für den **ELB-Dienst** an, aber nicht für den **ELB v2-Dienst**. 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.

**Example**  

1. Ersetzen Sie *my-cluster* durch den Namen Ihres Clusters, *111122223333* durch Ihre Konto-ID und führen Sie dann den Befehl aus.

   ```
   eksctl create iamserviceaccount \
     --cluster=my-cluster \
     --namespace=kube-system \
     --name=aws-load-balancer-controller \
     --role-name AmazonEKSLoadBalancerControllerRole \
     --attach-policy-arn=arn:aws: iam::111122223333:policy/AWSLoadBalancerControllerIAMPolicy \
     --approve
   ```

1. Rufen Sie die OIDC-Anbieter-ID Ihres Clusters ab und speichern Sie sie in einer Variablen.

   ```
   oidc_id=$(aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
   ```

1. Stellen Sie fest, ob in Ihrem Konto bereits ein IAM-OIDC-Anbieter mit der ID Ihres Clusters vorhanden ist. Sie müssen OIDC sowohl für den Cluster als auch für IAM konfigurieren.

   ```
   aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4
   ```

   Wenn eine Ausgabe zurückgegeben wird, verfügen Sie bereits über einen IAM-OIDC-Anbieter für Ihren Cluster. Wenn keine Ausgabe erfolgt, müssen Sie einen IAM-OIDC-Anbieter für Ihr Cluster erstellen. Weitere Informationen finden Sie unter [Erstellen Sie einen IAM-OIDC-Anbieter für Ihren Cluster](enable-iam-roles-for-service-accounts.md).

1. Kopieren Sie den folgenden Inhalt auf Ihr Gerät. Ersetzen Sie *111122223333* durch Ihre Konto-ID. *region-code*Ersetzen Sie es durch die AWS Region, in der sich Ihr Cluster befindet. Ersetzen Sie *EXAMPLED539D4633E53DE1B71EXAMPLE* mit den im vorherigen Schritt zurückgegebenen Ausgaben.

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
               },
               "Action": "sts:AssumeRoleWithWebIdentity",
               "Condition": {
                   "StringEquals": {
                       "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com",
                       "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:aws-load-balancer-controller"
                   }
               }
           }
       ]
   }
   ```

1. Erstellen Sie die IAM-Rolle.

   ```
   aws iam create-role \
     --role-name AmazonEKSLoadBalancerControllerRole \
     --assume-role-policy-document file://"load-balancer-role-trust-policy.json"
   ```

1. Hängen Sie die erforderliche von Amazon EKS verwaltete IAM-Richtlinie an die IAM-Rolle an. Ersetzen Sie *111122223333* durch Ihre Konto-ID.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::111122223333:policy/AWSLoadBalancerControllerIAMPolicy \
     --role-name AmazonEKSLoadBalancerControllerRole
   ```

1. Kopieren Sie den folgenden Inhalt auf Ihr Gerät. Ersetzen Sie *111122223333* durch Ihre Konto-ID. Nachdem Sie den Text ersetzt haben, führen Sie den geänderten Befehl aus, um die Datei `aws-load-balancer-controller-service-account.yaml` zu erstellen.

   ```
   cat >aws-load-balancer-controller-service-account.yaml <<EOF
   apiVersion: v1
   kind: ServiceAccount
   metadata:
     labels:
       app.kubernetes.io/component: controller
       app.kubernetes.io/name: aws-load-balancer-controller
     name: aws-load-balancer-controller
     namespace: kube-system
     annotations:
       eks.amazonaws.com/role-arn: arn:aws: iam::111122223333:role/AmazonEKSLoadBalancerControllerRole
   EOF
   ```

1. Erstellen Sie das Kubernetes-Servicekonto in Ihrem Cluster. Das angegebene Kubernetes-Dienstkonto `aws-load-balancer-controller` ist mit der IAM-Rolle versehen, die Sie mit dem Namen erstellt haben. *AmazonEKSLoadBalancerControllerRole*

   ```
   kubectl apply -f aws-load-balancer-controller-service-account.yaml
   ```

## Schritt 2: `cert-manager` installieren
<a name="lbc-cert"></a>

Installieren Sie `cert-manager` mit einer der beiden folgenden Methoden, um die Zertifikatskonfiguration in die Webhooks einzufügen. Weitere Informationen finden Sie unter [Erste Schritte](https://cert-manager.io/docs/installation/#getting-started) in der *cert-manager-Dokumentation*.

Wir empfehlen die Verwendung der `quay.io`-Container-Registry, um `cert-manager` zu installieren. Sollten Ihre Knoten keinen Zugriff auf die `quay.io`-Container-Registry haben, installieren Sie `cert-manager` mithilfe von Amazon ECR (siehe unten).

**Example**  

1. Wenn die Knoten Zugriff auf die `quay.io`-Container-Registry haben, installieren Sie `cert-manager`, um die Zertifikatskonfiguration in die Webhooks einzufügen.

   ```
   kubectl apply \
       --validate=false \
       -f https://github.com/jetstack/cert-manager/releases/download/v1.13.5/cert-manager.yaml
   ```

1. Installieren Sie `cert-manager` mit einer der beiden folgenden Methoden, um die Zertifikatskonfiguration in die Webhooks einzufügen. Weitere Informationen finden Sie unter [Erste Schritte](https://cert-manager.io/docs/installation/#getting-started) in der *cert-manager-Dokumentation*.

1. Laden Sie das Manifest herunter.

   ```
   curl -Lo cert-manager.yaml https://github.com/jetstack/cert-manager/releases/download/v1.13.5/cert-manager.yaml
   ```

1. Rufen Sie die folgenden Images ab und verschieben Sie sie in ein Repository, auf das die Knoten Zugriff haben. Weitere Informationen zum Abrufen, Markieren und Verschieben der Images in ein eigenes Repository finden Sie unter [Kopieren eines Container-Images von einem Repository in ein anderes](copy-image-to-repository.md).

   ```
   quay.io/jetstack/cert-manager-cainjector:v1.13.5
   quay.io/jetstack/cert-manager-controller:v1.13.5
   quay.io/jetstack/cert-manager-webhook:v1.13.5
   ```

1. Ersetzen Sie `quay.io` im Manifest für die drei Images durch den Namen Ihrer eigenen Registrierung. Beim folgenden Befehl wird davon ausgegangen, dass der Name Ihres privaten Repositorys mit dem des Quell-Repositorys übereinstimmt. Ersetzen Sie *111122223333.dkr.ecr.region-code.amazonaws.com* durch Ihr privates Register.

   ```
   sed -i.bak -e 's|quay.io|111122223333.dkr.ecr.region-code.amazonaws.com|' ./cert-manager.yaml
   ```

1. Das Manifest anwenden.

   ```
   kubectl apply \
       --validate=false \
       -f ./cert-manager.yaml
   ```

## Schritt 3: AWS Load Balancer Controller installieren
<a name="lbc-install"></a>

1. Laden Sie die Controller-Spezifikation herunter. Weitere Informationen zum Controller finden Sie in der [Dokumentation](https://kubernetes-sigs.github.io/aws-load-balancer-controller/) auf GitHub.

   ```
   curl -Lo v2_14_1_full.yaml https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/download/v2.14.1/v2_14_1_full.yaml
   ```

1. Nehmen Sie die folgenden Änderungen an der Datei vor.

   1. Wenn Sie die Datei `v2_14_1_full.yaml` heruntergeladen haben, führen Sie den folgenden Befehl aus, um den Abschnitt `ServiceAccount` im Manifest zu entfernen. Wenn Sie diesen Abschnitt nicht entfernen, wird die erforderliche Annotation überschrieben, die Sie in einem vorherigen Schritt für das Servicekonto erstellt haben. Außerdem wird durch das Entfernen dieses Abschnitts das in einem vorherigen Schritt erstellte Servicekonto beibehalten, wenn Sie den Controller löschen.

      ```
      sed -i.bak -e '764,772d' ./v2_14_1_full.yaml
      ```

      Wenn Sie eine andere Dateiversion heruntergeladen haben, öffnen Sie die Datei in einem Editor und entfernen Sie die folgenden Zeilen.

      ```
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        labels:
          app.kubernetes.io/component: controller
          app.kubernetes.io/name: aws-load-balancer-controller
        name: aws-load-balancer-controller
        namespace: kube-system
      ---
      ```

   1. Ersetzen Sie `your-cluster-name` im `Deployment` `spec`-Abschnitt der Datei durch den Namen Ihres Clusters, indem Sie *my-cluster* durch den Namen Ihres Cluster ersetzen.

      ```
      sed -i.bak -e 's|your-cluster-name|my-cluster|' ./v2_14_1_full.yaml
      ```

   1. Wenn Ihre Knoten keinen Zugriff auf die Amazon-ECR-Image-Repositorys von Amazon EKS haben, müssen Sie das folgende Image abrufen und in ein Repository verschieben, auf das die Knoten Zugriff haben. Weitere Informationen zum Abrufen, Markieren und Verschieben von Images in ein eigenes Repository finden Sie unter [Kopieren eines Container-Images von einem Repository in ein anderes](copy-image-to-repository.md).

      ```
      public.ecr.aws/eks/aws-load-balancer-controller:v2.14.1
      ```

      Fügen Sie dem Manifest den Namen Ihrer Registry hinzu. Der folgende Befehl geht davon aus, dass der Name Ihres privaten Repositorys mit dem des Quell-Repositorys übereinstimmt, und fügt der Datei den Namen Ihrer privaten Registry hinzu. Ersetzen Sie *111122223333.dkr.ecr.region-code.amazonaws.com* durch Ihr Register. In dieser Zeile wird davon ausgegangen, dass Sie Ihr privates Repository genauso benannt haben wie das Quell-Repository. Andernfalls ändern Sie den Text `eks/aws-load-balancer-controller` nach den Namen Ihrer privaten Registrierung in den Namen Ihres Repositorys.

      ```
      sed -i.bak -e 's|public.ecr.aws/eks/aws-load-balancer-controller|111122223333.dkr.ecr.region-code.amazonaws.com/eks/aws-load-balancer-controller|' ./v2_14_1_full.yaml
      ```

   1. (Nur für Fargate oder eingeschränktes IMDS erforderlich)

      Wenn Sie den Controller auf EC2 Amazon-Knoten bereitstellen, die [eingeschränkten Zugriff auf den Amazon EC2 Instance Metadata Service (IMDS)](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node) haben, oder wenn Sie ihn auf Fargate- oder Amazon EKS-Hybridknoten bereitstellen, fügen Sie das `following parameters` unter hinzu. `- args:`

      ```
      [...]
      spec:
            containers:
              - args:
                  - --cluster-name=your-cluster-name
                  - --ingress-class=alb
                  - --aws-vpc-id=vpc-xxxxxxxx
                  - --aws-region=region-code
      
      
      [...]
      ```

1. Wenden Sie die Datei an.

   ```
   kubectl apply -f v2_14_1_full.yaml
   ```

1. Laden Sie das `IngressClass`- und `IngressClassParams`-Manifest in Ihren Cluster herunter.

   ```
   curl -Lo v2.14.1_ingclass.yaml https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/download/v2.14.1/v2_14_1_ingclass.yaml
   ```

1. Wenden Sie das Manifest auf Ihren Cluster an.

   ```
   kubectl apply -f v2_14_1_ingclass.yaml
   ```

## Schritt 4: Überprüfen, ob der Controller installiert ist
<a name="lbc-verify"></a>

1. Stellen Sie sicher, dass der Controller installiert ist.

   ```
   kubectl get deployment -n kube-system aws-load-balancer-controller
   ```

   Eine Beispielausgabe sieht wie folgt aus.

   ```
   NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
   aws-load-balancer-controller   2/2     2            2           84s
   ```

   Sie erhalten die vorherige Ausgabe, wenn Sie mit Helm bereitgestellt haben. Wenn Sie mit dem Kubernetes-Manifest bereitgestellt haben, haben Sie nur ein Replikat.

1. Bevor Sie den Controller zur Bereitstellung von AWS Ressourcen verwenden können, muss Ihr Cluster bestimmte Anforderungen erfüllen. Weitere Informationen erhalten Sie unter [Anwendungen und HTTP-Datenverkehr mit Application Load Balancers weiterleiten](alb-ingress.md) und [Weiterleitung von TCP- und UDP-Datenverkehr mit Network Load Balancers](network-load-balancing.md).