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.
Erste Schritte mit AWS Fargate für Ihren Cluster
In diesem Thema wird der Einstieg in die Ausführung von Pods auf AWS Fargate mit Ihrem Amazon-EKS-Cluster beschrieben.
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 Cluster-API-Server-Endpunkt.
Voraussetzung
Einen vorhandenen -Cluster. Wenn Sie noch über keinen Amazon-EKS-Cluster verfügen, lesen Sie Erste Schritte mit Amazon EKS.
Schritt 1: 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 (siehe Vereinfachung des Knotenlebenszyklus mit verwalteten Knotengruppen), können Sie mit Schritt 2: Fargate-Pod-Ausführungsrolle erstellen fortfahren.
Angenommen, Sie arbeiten mit einem vorhandenen Cluster, dem bereits Knoten zugeordnet sind. Stellen Sie sicher, dass die Pods auf diesen Knoten problemlos mit den Pods kommunizieren können, die in Fargate ausgeführt werden. Pods, die in 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 in Ihrem Cluster Datenverkehr an die Cluster-Sicherheitsgruppe senden und von dieser empfangen können. Verwaltete Knotengruppen werden automatisch so konfiguriert, dass sie auch die Cluster-Sicherheitsgruppe verwenden. Sie müssen sie also nicht ändern oder auf Kompatibilität prüfen (siehe Vereinfachung des Knotenlebenszyklus mit verwalteten Knotengruppen).
Bei vorhandenen 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 in der AWS-Managementkonsole im Abschnitt Netzwerk für den Cluster nach einer Sicherheitsgruppe für Ihren Cluster suchen. Führen Sie dazu den folgenden AWS-CLI-Befehl aus. 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
Schritt 2: Fargate-Pod-Ausführungsrolle erstellen
Wenn Ihr Cluster Pods in AWS-Fargate erstellt, müssen die Komponenten, die in der Fargate-Infrastruktur ausgeführt werden, in Ihrem Namen Aufrufe an AWS-APIs senden. Die Amazon-EKS-Pod-Ausführungsrolle stellt die entsprechenden IAM-Berechtigungen bereit. Informationen zur Erstellung einer AWS-Fargate-Pod-Ausführungsrolle finden Sie unter IAM-Rolle für die Ausführung von Amazon-EKS-Pods.
Anmerkung
Wenn Sie den Cluster mithilfe von eksctl und der --fargate-Option 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.
Schritt 3: Fargate Profil für Ihren Cluster erstellen
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 Festlegung, welche Pods beim Start AWS Fargate verwenden.
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 mit einem dieser Tools ein Fargate-Profil erstellen:
eksctl
Für diesen Vorgang ist eksctl Version 0.214.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
So erstellen Sie ein Fargate-Profil 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 Platzhalter für Fargate-Profile .
AWS-Managementkonsole
So erstellen Sie ein Fargate-Profil mit AWS-Managementkonsole
-
Öffnen Sie die Amazon-EKS-Konsole
. -
Wählen Sie den Cluster aus, für den Sie ein Fargate-Profil erstellen möchten.
-
Wählen Sie die Registerkarte Compute (Datenverarbeitung) aus.
-
Wählen Sie unter Fargate-Profile die Option Fargate-Profil hinzufügen aus.
-
Auf der Seite Konfigurieren des Fargate Profils führen Sie folgende Schritte aus:
-
Geben Sie unter Name einen Namen für Ihr Fargate-Profil ein. Der Name muss eindeutig sein.
-
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.govskope.ca-Service-Prinzipal angezeigt. Wenn keine Rollen aufgelistet sind, müssen Sie eine erstellen. Weitere Informationen finden Sie unter IAM-Rolle für die Ausführung von Amazon-EKS-Pods. -
Ändern Sie die ausgewählten Subnetze nach Bedarf.
Anmerkung
Für Pods, die in Fargate ausgeführt werden, werden nur private Subnetze unterstützt.
-
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.
-
Wählen Sie Weiter aus.
-
-
Führen Sie auf der Seite Pod-Auswahl konfigurieren die folgenden Schritte aus:
-
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-systemoderdefault. -
Sie können bestimmte Platzhalter verwenden (z. B.
prod-*), um mehrere Namespaces abzugleichen (z. B.prod-deploymentundprod-test). Weitere Informationen finden Sie unter Platzhalter für Fargate-Profile .
-
-
(Optional) Fügen Sie dem Selektor Kubernetes-Markierungen 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: fargatehinzufügen, sodass nur Pods im angegebenen Namespace, die ebenfalls dieinfrastructure: 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: valueaundkeyb: valueb). Weitere Informationen finden Sie unter Platzhalter für Fargate-Profile .
-
-
Wählen Sie Weiter aus.
-
-
Überprüfen Sie auf der Seite Überprüfen und erstellen die Informationen für Ihr -Profil und wählen Sie Erstellen aus.
Schritt 4: CoreDNS aktualisieren
Standardmäßig ist CoreDNS zum Ausführen in der Amazon-EC2-Infrastruktur auf Amazon-EKS-Clustern konfiguriert. Wenn Sie Ihre Pods nur in Fargate in Ihrem Cluster 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.
-
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<000000000000000a>,<000000000000000b>und<000000000000000c>durch die IDs Ihrer privaten Subnetze. Wenn Sie über keine Pod-Ausführungsrolle verfügen, müssen Sie zuerst eine erstellen (siehe Schritt 2: Fargate-Pod-Ausführungsrolle erstellen).Wichtig
Der Rollen-ARN darf als Pfad nur
/enthalten. Wenn der Name Ihrer Rolle also beispielsweisedevelopment/apps/AmazonEKSFargatePodExecutionRolelautet, müssen Sie ihn beim Angeben des ARN für die Rolle inAmazonEKSFargatePodExecutionRoleändern. Das Format des Rollen-ARN mussarn:aws:iam::<111122223333>:role/<AmazonEKSFargatePodExecutionRole>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-<000000000000000a> subnet-<000000000000000b> subnet-<000000000000000c> -
Lösen Sie die Einführung der
coredns-Bereitstellung aus.kubectl rollout restart -n kube-system deployment coredns
Nächste Schritte
-
Mit dem folgenden Workflow können Sie mit der Migration Ihrer vorhandenen Anwendungen zum Ausführen in Fargate beginnen.
-
Erstellen eines Fargate-Profils, das mit dem Kubernetes-Namespace und den Kubernetes-Labels Ihrer Anwendung übereinstimmt.
-
Löschen Sie alle vorhandenen Pods und erstellen Sie sie neu, damit sie auf Fargate geplant werden. Ändern Sie
<namespace>und<deployment-type>, um Ihre spezifischen Pods zu aktualisieren.kubectl rollout restart -n <namespace> deployment <deployment-type>
-
-
Stellen Sie das Anwendungen und HTTP-Datenverkehr mit Application Load Balancers weiterleiten bereit, um Eingangsobjekte für Ihre Pods zuzulassen, die auf Fargate ausgeführt werden.
-
Sie können Pod-Ressourcen mit Vertical Pod Autoscaler anpassen verwenden, um die CPU und den Speicher für Ihre Fargate- anfänglich richtig zu dimensionieren, und dann Fargate Pods verwenden, um Skalierung von Pod-Bereitstellungen mit Horizontal Pod Autoscaler diese Pods zu skalieren. Wenn Sie möchten, dass der Vertical Pod Autoscaler
Automit höheren CPU- und Speicherkombinationen automatisch erneut in Fargate bereitstellt, stellen Sie den Modus für den Vertical-Pod-Autoscaler-Modus entweder auf oderRecreate. 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.