AWS-Fargate-Profil - Amazon EKS

AWS-Fargate-Profil

Bevor Sie Pods planen können, die in Fargate in Ihrem Cluster ausgeführt werden, müssen Sie mindestens ein Fargate-Profil definieren, das angibt, welche Pods Fargate beim Start verwendet.

Mit dem Fargate-Profil kann ein Administrator deklarieren, welche Pods in Fargate ausgeführt werden. Diese Deklaration erfolgt über die Selektoren des Profils. Jedes Profil kann bis zu fünf Selektoren umfassen, die einen Namespace und optionale Bezeichnungen enthalten. Sie müssen für jeden Selektor einen Namespace definieren. Das Bezeichnungsfeld besteht aus mehreren optionalen Schlüssel-Wert-Paaren. Pods, die mit einem Selektor übereinstimmen (indem ein Namespace für den Selektor und alle im Selektor angegebenen Bezeichnungen übereinstimmen), werden in Fargate geplant. Wenn ein Namespace-Selektor ohne Bezeichnungen definiert ist, versucht Amazon EKS, alle Pods, die in diesem Namespace ausgeführt werden, mithilfe des Profils in Fargate zu planen. Wenn ein zu planender Pod mit einem der Selektoren im Fargate-Profil übereinstimmt, wird dieser Pod auf geplant.

Wenn ein Pod mit mehreren Fargate-Profilen übereinstimmt, wählt Amazon EKS eines der Profile nach dem Zufallsprinzip aus. In diesem Fall können Sie angeben, welches Profil ein Pod verwenden soll, indem Sie der Pod-Spezifikation die folgende Kubernetes-Bezeichnung hinzufügen: eks.amazonaws.com/fargate-profile: <profile_name>. Der Pod muss jedoch weiterhin mit einem Selektor in diesem Profil übereinstimmen, damit er in Fargate geplant werden kann.

Wenn Sie ein Fargate-Profil erstellen, müssen Sie eine Pod-Ausführungsrolle für die Amazon-EKS-Komponenten angeben, die auf der Fargate-Infrastruktur mit dem Profil ausgeführt werden. Diese Rolle wird der Kubernetes Rollenbasierte Zugriffssteuerung (RBAC) des Clusters zur Autorisierung hinzugefügt, sodass das kubelet, das in der Fargate-Infrastruktur ausgeführt wird, beim Amazon EKS-Cluster registriert werden kann und in Ihrem Cluster als Knoten erscheint. Die Pod-Ausführungsrolle bietet auch IAM-Berechtigungen für die Fargate-Infrastruktur, um Lesezugriff auf Amazon ECR-Image-Repositorys zu ermöglichen. Weitere Informationen finden Sie unter Pod-Ausführungsrolle.

Fargate-Profile sind unveränderlich. Sie können jedoch ein neues aktuelles Profil erstellen, um ein vorhandenes Profil zu ersetzen, und dann das Original löschen, nachdem das aktualisierte Profil erstellt wurde.

Anmerkung

Alle Pods, die mit einem Fargate-Profil ausgeführt werden, werden gestoppt und als ausstehend gekennzeichnet, wenn das Profil gelöscht wird.

Wenn Fargate-Profile in einem Cluster den Status DELETING haben, müssen Sie warten, bis dieses Fargate-Profil gelöscht wurde, bevor Sie andere Profile in diesem Cluster erstellen können.

Fargate-Profilkomponenten

Die folgenden Komponenten sind in einem Fargate-Profil enthalten.

  • Pod-Ausführungsrolle – Wenn Ihr Cluster Pods auf AWS Fargate erstellt, muss der kubelet, der in der Fargate-Infrastruktur ausgeführt wird, in Ihrem Namen Aufrufe an AWS-APIs tätigen. Dies ist beispielsweise das Abrufen von Container-Images aus Amazon ECR. Die Amazon-EKS-Pod-Ausführungsrolle stellt die entsprechenden IAM-Berechtigungen bereit.

    Wenn Sie ein Fargate-Profil erstellen, müssen Sie eine Pod-Ausführungsrolle angeben, die mit Ihren Pods verwendet werden soll. Diese Rolle wird der Kubernetes Role Based Access Control (RBAC) des Clusters zur Autorisierung hinzugefügt. Auf diese Weise kann sich kubelet, das in der Fargate-Infrastruktur ausgeführt wird, bei Ihrem Amazon-EKS-Cluster registrieren und als Knoten in Ihrem Cluster angezeigt werden. Weitere Informationen finden Sie unter Pod-Ausführungsrolle.

  • Subnetze – Die IDs von Subnetzen, in denen Pods gestartet werden, die dieses Profil verwenden. Derzeit werden Pods, welche auf Fargate ausgeführt werden, keine öffentlichen IP-Adressen zugewiesen. Daher werden für diesen Parameter nur private Subnetze (ohne direkte Route zu einem Internet-Gateway) akzeptiert.

  • Selektoren – Die Selektoren, mit denen Pods, die dieses Fargate-Profil verwenden, übereinstimmen sollen. Jeder Selektor muss einen zugeordneten Namespace haben. Optional können Sie auch Bezeichnungen für einen Namespace angeben. Sie können bis zu fünf Selektoren in einem Fargate-Profil angeben. Ein Pod muss nur mit einem Selektor übereinstimmen, um mit dem Fargate-Profil ausgeführt zu werden.

  • Namespace – Sie müssen einen Namespace für einen Selektor angeben. Der Selektor stimmt nur mit Pods überein, die in diesem Namespace erstellt wurden. Sie können jedoch mehrere Selektoren erstellen, um mehrere Namespaces zu adressieren.

  • Bezeichnungen – Sie können optional Kubernetes-Bezeichnungen angeben, mit denen der Selektor übereinstimmen muss. Der Selektor stimmt nur mit Pods überein, die alle im Selektor angegebenen Bezeichnungen aufweisen.

Erstellen eines Fargate-Profils

In diesem Thema erstellen Sie ein Fargate-Profil. AWS Fargate mit Amazon EKS ist in allen Amazon EKS-Regionen außer China (Beijing), China (Ningxia), AWS GovCloud (USA-Ost) und AWS GovCloud (USA-West) verfügbar. Sie müssen auch eine Pod-Ausführungsrolle erstellt haben, die für Ihr Fargate-Profil verwendet werden soll. Weitere Informationen finden Sie unter Pod-Ausführungsrolle. Pods, die auf Fargate ausgeführt werden, werden nur in privaten Subnetzen unterstützt (mit NAT Gateway-Zugriff auf AWS-Services, aber ohne direkte Route zu einem Internet-Gateway). Daher müssen für die VPC Ihres Clusters private Subnetze verfügbar sein. Sie können ein Profil mit eksctl oder der AWS Management Console aus. Wählen Sie die Registerkarte mit dem Namen des Werkzeugs aus, mit dem Sie Ihr Fargate Profil erstellen möchten.

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

eksctl version

Weitere Informationen zur Installation oder zum Upgrade von eksctl finden Sie im Abschnitt Installieren oder Aktualisieren von eksctl.

eksctl

Erstellen eines Fargate-Profils mit eksctl

Erstellen Sie Ihr Fargate-Profil mit dem folgenden eksctl-Befehl und ersetzen Sie <variable text> (einschließlich <>) durch Ihre eigenen Werte. Sie müssen einen Namespace angeben. Die Option --labels ist jedoch nicht erforderlich.

eksctl create fargateprofile \ --cluster <cluster_name> \ --name <fargate_profile_name> \ --namespace <kubernetes_namespace> \ --labels <key=value>
AWS Management Console

So erstellen Sie ein Fargate-Profil für einen Cluster mit der 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. Klicken Sie auf die Registerkarte Konfiguration und dann auf die Registerkarte Berechnen.

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

  5. Geben Sie auf der Seite Fargate-Profil konfigurieren die folgenden Informationen ein und wählen Sie Weiter.

    1. Geben Sie unter Name einen eindeutigen Namen für Ihr Fargate-Profil ein.

    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-Service-Prinzipal angezeigt. Wenn keine Rollen aufgelistet sind, müssen Sie eine erstellen. Weitere Informationen finden Sie unter Pod-Ausführungsrolle.

    3. Wählen Sie für Subnets (Subnetze) die Subnetze aus, die für Ihre Pods verwendet werden sollen. Standardmäßig sind alle Subnetze in der VPC des Clusters ausgewählt. Für Pods, die auf Fargate ausgeführt werden, werden nur die privaten Subnetze unterstützt. Sie müssen alle öffentlichen Subnetze abwählen.

    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.

  6. Geben Sie auf der Seite Configure pods selection (Pods-Auswahl konfigurieren) die folgenden Informationen ein und wählen Sie Next (Weiter) aus.

    1. Geben Sie für Namespace einen Namespace ein, der mit Pods übereinstimmt, z. B. kube-system oder default.

    2. (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. Beispielsweise können Sie dem Selektor die Bezeichnung infrastructure: fargate hinzufügen, sodass nur Pods im angegebenen Namespace, die ebenfalls die infrastructure: fargate Kubernetes-Bezeichnung tragen, mit dem Selektor übereinstimmen.

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

Löschen eines Fargate-Profils

In diesem Thema löschen Sie ein Fargate-Profil.

Wenn Sie ein Fargate-Profil löschen, werden alle Pods gelöscht, die in Fargate mit dem Profil geplant wurden. Wenn diese Pods mit einem anderen Fargate-Profil übereinstimmen, werden sie mit diesem Profil in Fargate geplant. Wenn sie nicht mehr mit einem der Fargate-Profile übereinstimmen, werden sie nicht in Fargate geplant und ggf. als ausstehend gekennzeichnet.

Nur ein Fargate-Profil in einem Cluster kann sich jeweils im DELETING-Status befinden. Warten Sie, bis das Löschen eines Fargate-Profils abgeschlossen ist, bevor Sie andere Profile in diesem Cluster löschen können.

Sie können ein Profil mit eksctl, AWS Management Console oder AWS CLI löschen. Wählen Sie die Registerkarte mit dem Namen des Werkzeugen aus, mit dem Sie Ihr Profil löschen möchten.

eksctl

Verwenden Sie den folgenden Befehl, um ein Profil aus einem Cluster zu löschen. Ersetzen Sie <example values> (einschließlich <>) durch Ihre eigenen Werte.

eksctl delete fargateprofile --name <my-profile> --cluster <my-cluster>
AWS Management Console

So löschen Sie ein Fargate-Profil in einem Cluster mit der 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, in dem Sie das Fargate-Profil löschen möchten.

  3. Wählen Sie die Registerkarte Konfiguration und dann die Registerkarte Berechnen.

  4. Wählen Sie das zu löschende Fargate-Profil und dann Löschen aus.

  5. Geben Sie auf der Seite <cluster_name> löschen den Namen des Clusters ein und wählen Sie zum Löschen Bestätigen.

AWS CLI

Verwenden Sie den folgenden Befehl, um ein Profil aus einem Cluster zu löschen. Ersetzen Sie <example values> (einschließlich <>) durch Ihre eigenen Werte.

aws eks delete-fargate-profile --fargate-profile-name <my-profile> --cluster-name <my-cluster>