Erste Schritte mit der AWS Fargate Verwendung von Amazon EKS - Amazon EKS

Helfen Sie mit, diese Seite zu verbessern

Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle zu verbessern.

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.

Erste Schritte mit der AWS Fargate Verwendung von Amazon EKS

Wichtig

AWS Fargate mit Amazon EKS ist in AWS GovCloud (USA-Ost) und AWS GovCloud (US-West) nicht verfügbar.

In diesem Thema wird beschrieben, wie Sie AWS Fargate mit Pods der Ausführung Ihres Amazon EKS-Clusters beginnen können.

Wenn Sie den Zugriff auf den öffentlichen Endpunkt Ihres Clusters mithilfe von CIDR-Blöcken einschränken, empfehlen wir, dass Sie auch den privaten Endpunktzugriff aktivieren. Auf diese Weise können Fargate-Pods mit dem Cluster kommunizieren. Wenn der private Endpunkt nicht aktiviert ist, müssen die CIDR-Blöcke, die Sie für den öffentlichen Zugriff angeben, die Ausgangsquellen aus Ihrer VPC enthalten. Weitere Informationen finden Sie unter Zugriffskontrolle für den Amazon-EKS-Cluster-Endpunkt.

Voraussetzung

Einen vorhandenen -Cluster. Wenn Sie noch keinen Amazon-EKS-Cluster haben, lesen Sie Erste Schritte mit Amazon EKS.

Sicherstellen, dass vorhandene Knoten mit Fargate-Pods kommunizieren können

Wenn Sie mit einem neuen Cluster ohne Knoten oder einem Cluster nur mit verwalteten Knotengruppen arbeiten, können Sie mit Erstellen einer Fargate-Pod-Ausführungsrolle fortfahren.

Angenommen, Sie arbeiten mit einem vorhandenen Cluster, dem bereits Knoten zugeordnet sind. Stellen Sie sicher, dass Pods auf diesen Knoten frei mit den Pods kommunizieren können, die auf Fargate ausgeführt werden. Pods, die auf Fargate ausgeführt werden, werden automatisch so konfiguriert, dass die Cluster-Sicherheitsgruppe für den Cluster verwendet wird, dem sie zugeordnet sind. Stellen Sie sicher, dass alle vorhandenen Knoten im Cluster Datenverkehr an und von der Cluster-Sicherheitsgruppe senden und empfangen können. Verwaltete Knotengruppen werden automatisch für die Verwendung der Cluster-Sicherheitsgruppe konfiguriert, sodass Sie diese nicht ändern oder auf diese Kompatibilität überprüfen müssen.

Für bestehende Knotengruppen, die mit eksctl oder den von Amazon EKS verwalteten AWS CloudFormation Vorlagen erstellt wurden, können Sie die Cluster-Sicherheitsgruppe manuell zu den Knoten hinzufügen. Alternativ können Sie die Auto-Scaling-Gruppestartvorlage für die Knotengruppe ändern, um die Cluster-Sicherheitsgruppe an die Instances anzuhängen. Weitere Informationen finden Sie unter Ändern der Sicherheitsgruppen einer Instance im Amazon-VPC-Benutzerhandbuch.

Sie können im Abschnitt Netzwerk für den Cluster AWS Management Console nach einer Sicherheitsgruppe für Ihren Cluster suchen. Sie können dies auch mit dem folgenden AWS CLI Befehl tun. Wenn Sie diesen Befehl verwenden, ersetzen Sie my-cluster durch den Namen Ihres Clusters.

aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId

Erstellen einer Fargate-Pod-Ausführungsrolle

Wenn Ihr Cluster erstellt wird Pods AWS Fargate, müssen die Komponenten, die auf der Fargate-Infrastruktur ausgeführt werden, in Ihrem Namen AWS API-Aufrufe tätigen. Die Amazon-EKS-Pod-Ausführungsrolle stellt die entsprechenden IAM-Berechtigungen bereit. Informationen zum Erstellen einer AWS Fargate Pod Ausführungsrolle finden Sie unterIAM-Rolle zur Ausführung von Amazon-EKS-Pod.

Anmerkung

Wenn Sie den Cluster mithilfe von eksctl und der Option --fargate erstellt haben, verfügt der Cluster bereits über eine Pod-Ausführungsrolle, die Sie in der IAM-Konsole mit dem Muster eksctl-my-cluster-FargatePodExecutionRole-ABCDEFGHIJKL finden können. Wenn Sie Ihre Fargate-Profile mit eksctl anlegen, erstellt eksctl Ihre Pod-Ausführungsrolle, sofern noch keine erstellt wurde.

Erstellen eines Fargate-Profils für Ihren Cluster

Bevor Sie Pods planen können, die in Fargate in Ihrem Cluster ausgeführt werden, müssen Sie ein Fargate-Profil definieren, das angibt, welche Pods Fargate beim Start verwenden soll. Weitere Informationen finden Sie unter AWS Fargate Profil.

Anmerkung

Wenn Sie Ihren Cluster mithilfe von eksctl und der Option --fargate erstellt haben, wurde bereits ein Fargate-Profil für Ihren Cluster mit Selektoren für alle Pods in den kube-system- und default-Namespaces erstellt. Gehen Sie wie folgt vor, um Fargate-Profile für alle anderen Namespaces zu erstellen, die Sie mit Fargate verwenden möchten.

Sie können ein Fargate-Profil mit eksctl oder AWS Management Console erstellen.

eksctl

Für diesen Vorgang ist eksctl Version 0.183.0 oder höher erforderlich. Sie können Ihre -Version mit dem folgenden Befehl überprüfen:

eksctl version

Eine Installations- und Upgrade-Anleitung für eksctl finden Sie in der Dokumentation zu eksctl unter Installation.

Erstellen eines Fargate-Profils mit eksctl

Erstellen Sie Ihr Fargate-Profil mit dem folgenden eksctl-Befehl und ersetzen Sie jede example value durch Ihre eigenen Werte. Sie müssen einen Namespace angeben. Die Option --labels ist jedoch nicht erforderlich.

eksctl create fargateprofile \ --cluster my-cluster \ --name my-fargate-profile \ --namespace my-kubernetes-namespace \ --labels key=value

Sie können bestimmte Platzhalter für my-kubernetes-namespace- und key=value-Labels verwenden. Weitere Informationen finden Sie unter Fargate-Profil-Platzhalter.

AWS Management Console
Um ein Fargate-Profil für einen Cluster mit dem zu erstellen AWS Management Console
  1. Öffnen Sie die Amazon EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie den Cluster aus, für den Sie ein Fargate-Profil erstellen möchten.

  3. Wählen Sie die Registerkarte Compute (Datenverarbeitung) aus.

  4. Wählen Sie unter Fargate-Profile die Option Fargate-Profil hinzufügen aus.

  5. Auf der Seite Konfigurieren des Fargate Profils führen Sie folgende Schritte aus:

    1. Geben Sie unter Name einen Namen für Ihr Fargate-Profil ein. Der Name muss eindeutig sein.

    2. Wählen Sie für Pod-Ausführungsrolle die Pod-Ausführungsrolle aus, die mit Ihrem Fargate-Profil verwendet werden soll. Es werden nur IAM-Rollen mit dem eks-fargate-pods.amazonaws.com.rproxy.goskope.com-Service-Prinzipal angezeigt. Wenn keine Rollen aufgelistet sind, müssen Sie eine erstellen. Weitere Informationen finden Sie unter IAM-Rolle zur Ausführung von Amazon-EKS-Pod.

    3. Ändern Sie die ausgewählten Subnetze nach Bedarf.

      Anmerkung

      Für Pods, die auf Fargate ausgeführt werden, werden nur private Subnetze unterstützt.

    4. Für Tags können Sie Ihr Fargate-Profil wahlweise markieren. Diese Tags werden nicht an andere Ressourcen weitergegeben, die dem Profil zugeordnet sind, z. B. Pods.

    5. Wählen Sie Weiter aus.

  6. Führen Sie auf der Seite Configure Pod selection (-Auswahl konfigurieren) die folgenden Schritte aus:

    1. Geben Sie für Namespace einen Namespace ein, der mit Pods übereinstimmt.

      • Sie können bestimmte Namespaces für den Abgleich verwenden, z. B. kube-system oder default.

      • Sie können bestimmte Platzhalter verwenden (z. B. prod-*), um mehrere Namespaces abzugleichen (z. B. prod-deployment und prod-test). Weitere Informationen finden Sie unter Fargate-Profil-Platzhalter.

    2. (Optional) Fügen Sie dem Selektor Kubernetes-Labels hinzu. Fügen Sie sie insbesondere demjenigen hinzu, dem die Pods im angegebenen Namespace entsprechen müssen.

      • Sie können dem Selektor das Label infrastructure: fargate hinzufügen, sodass nur Pods im angegebenen Namespace, die ebenfalls die infrastructure: fargate-Kubernetes-Bezeichnung tragen, mit dem Selektor übereinstimmen.

      • Sie können bestimmte Platzhalter verwenden (z. B. key?: value?), um mehrere Namespaces abzugleichen (z. B. keya: valuea und keyb: valueb). Weitere Informationen finden Sie unter Fargate-Profil-Platzhalter.

    3. Wählen Sie Weiter.

  7. Überprüfen Sie auf der Seite Überprüfen und erstellen die Informationen für Ihr -Profil und wählen Sie Erstellen aus.

Aktualisieren: CoreDNS

Standardmäßig ist CoreDNS zum Ausführen in der Amazon-EC2-Infrastruktur auf Amazon-EKS-Clustern konfiguriert. Wenn Sie Ihre Pods auf Fargate in Ihrem Cluster nur ausführen möchten, führen Sie die folgenden Schritte aus.

Anmerkung

Wenn Sie einen Cluster mit eksctl unter Verwendung von --fargate-Option erstellt haben, können Sie zu Nächste Schritte springen.

  1. Erstellen Sie jedes Fargate-Profil für CoreDNS mit dem folgenden Befehl. Ersetzen Sie my-cluster durch den Namen Ihres Clusters, 111122223333 durch die ID Ihres Kontos, AmazonEKSFargatePodExecutionRole durch den Namen Ihrer Pod-Ausführungsrolle und 0000000000000001, 0000000000000002 und 0000000000000003 durch die IDs Ihrer privaten Subnetze. Wenn Sie über keine Pod-Ausführungsrolle verfügen, müssen Sie zuerst eine erstellen.

    Wichtig

    Der Rollen-ARN darf als Pfad nur / enthalten. Wenn der Name Ihrer Rolle also beispielsweise development/apps/my-role lautet, müssen Sie ihn beim Angeben des ARN für die Rolle in my-role ändern. Das Format des Rollen-ARN muss arn:aws:iam::111122223333:role/role-name sein.

    aws eks create-fargate-profile \ --fargate-profile-name coredns \ --cluster-name my-cluster \ --pod-execution-role-arn arn:aws:iam::111122223333:role/AmazonEKSFargatePodExecutionRole \ --selectors namespace=kube-system,labels={k8s-app=kube-dns} \ --subnets subnet-0000000000000001 subnet-0000000000000002 subnet-0000000000000003
  2. Verwenden Sie den folgenden Befehl, um die eks.amazonaws.com/compute-type : ec2-Anmerkung aus den CoreDNS-Pods zu entfernen.

    kubectl patch deployment coredns \ -n kube-system \ --type json \ -p='[{"op": "remove", "path": "/spec/template/metadata/annotations/eks.amazonaws.com~1compute-type"}]'

Nächste Schritte

  • Mit dem folgenden Workflow können Sie mit der Migration Ihrer vorhandenen Anwendungen zum Ausführen in Fargate beginnen.

    1. Erstellen Sie ein Fargate-Profil das dem Kubernetes-Namespace und den Kubernetes-Labels Ihrer Anwendung entspricht.

    2. Löschen Sie alle vorhandenen Pods, und erstellen Sie sie neu, sodass sie in Fargate geplant sind. Mit dem folgenden Befehl wird beispielsweise ein Rollout der coredns-Bereitstellung ausgelöst. Sie können den Namespace und den Bereitstellungstyp ändern, um Ihre spezifischen Pods zu aktualisieren.

      kubectl rollout restart -n kube-system deployment coredns
  • Stellen Sie das Application Load Balancing auf Amazon EKS bereit, um Ingress-Objekte für Ihre Pods zuzulassen, die auf Fargate ausgeführt werden.

  • Sie können Vertical Pod Autoscaler verwenden, um die CPU und den Speicher für Ihre Fargate-Pods anfänglich richtig zu dimensionieren, und dann Horizontal Pod Autoscaler verwenden, um diese Pods zu skalieren. Wenn Sie möchten, dass der Vertical Pod Autoscaler Pods mit höheren CPU- und Speicherkombinationen automatisch erneut in Fargate bereitstellt, stellen Sie den Modus für den Vertical-Pod-Autoscaler-Modus entweder auf Auto oder Recreate. Dies dient der Gewährleistung einer korrekten Funktion. Weitere Informationen finden Sie in der Vertical Pod Autoscaler-Dokumentation auf GitHub.

  • Sie können den AWS Distro für OpenTelemetry(ADOT)-Kollektor zur Anwendungsüberwachung durch Befolgen dieser Anweisungen einrichten.