Erste Schritte mit Amazon EKS – AWS Management Console und AWS CLI - Amazon EKS

Erste Schritte mit Amazon EKS – AWS Management Console und AWS CLI

Dieser Leitfaden hilft Ihnen beim Erstellen aller erforderlichen Ressourcen für die ersten Schritte mit Amazon Elastic Kubernetes Service (Amazon EKS) mithilfe von AWS Management Console und AWS CLI. In diesem Leitfaden erstellen Sie jede Ressource manuell. Am Ende dieses Tutorials haben Sie einen laufenden Amazon-EKS-Cluster, auf dem Sie Anwendungen bereitstellen können.

Die Verfahren in diesem Handbuch geben Ihnen vollständige Einsichten in die Erstellung der einzelnen Ressourcen und in die Interaktionen der Ressourcen. Wenn die Mehrzahl der Ressourcen automatisch für Sie erstellt werden soll, verwenden Sie die eksctl-CLI, um Ihre Cluster- und Knoten zu erstellen. Weitere Informationen finden Sie unter Erste Schritte mit Amazon EKS – eksctl.

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen, müssen Sie die folgenden Werkzeuge und Ressourcen installieren und konfigurieren, die Sie zum Erstellen und Verwalten eines Amazon-EKS-Clusters benötigen.

Schritt 1: Erstellen Sie Ihre Amazon-EKS-Cluster

Wichtig

Für einen möglichst einfachen und schnellen Einstieg enthält dieses Thema Schritte zum Erstellen eines Clusters mit Standardeinstellungen. Bevor Sie einen Cluster für den Produktionseinsatz erstellen, empfehlen wir Ihnen, sich mit allen Einstellungen vertraut zu machen und einen Cluster mit den Einstellungen bereitzustellen, die Ihren Anforderungen entsprechen. Weitere Informationen finden Sie unter Erstellen eines Amazon-EKS-Clusters. Einige Einstellungen können nur aktiviert werden, wenn Sie Ihren Cluster erstellen.

Um Ihren Cluster zu erstellen

  1. Erstellen Sie eine Amazon VPC mit öffentlichen und privaten Subnetzen, die die Amazon-EKS-Anforderungen erfüllt. Ersetzen Sie region-code durch eine AWS-Region, die von Amazon EKS unterstützt wird. Eine Liste der AWS-Regionen finden Sie unter Endpunkte von Amazon EKS und Kontingente im allgemeinen Referenzleitfaden für AWS.Sie können my-eks-vpc-stack mit einem beliebigen Namen ersetzen, den Sie wählen.

    aws cloudformation create-stack \ --region region-code \ --stack-name my-eks-vpc-stack \ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
    Tipp

    Für eine Liste aller Ressourcen, die der vorherige Befehl erstellt hat, öffnen Sie die AWS CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation. Wählen Sie das my-eks-vpc-stack-Stack, und wählen Sie dann die Registerkarte Ressourcen.

  2. Erstellen Sie eine Cluster-IAM-Rolle und fügen Sie ihr die erforderliche von Amazon EKS IAM verwaltete Richtlinie hinzu. Kubernetes von Amazon EKS verwaltete Cluster rufen andere AWS-Services in Ihrem Namen auf, um die Ressourcen zu verwalten, die Sie mit dem Service verwenden.

    1. Kopieren Sie den folgenden Inhalt in eine Datei namens eks-cluster-role-trust-policy.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Erstellen Sie die -Rolle.

      aws iam create-role \ --role-name myAmazonEKSClusterRole \ --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    3. Hängen Sie die erforderliche von Amazon EKS verwaltete IAM-Richtlinie an die Rolle an.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name myAmazonEKSClusterRole
  3. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

    Stellen Sie sicher, dass die oben rechts in der Konsole angezeigte AWS-Region die AWS-Region ist, in der Sie den Cluster erstellen möchten. Andernfalls wählen Sie das Dropdown-Menü neben dem Namen der AWS-Region und anschließend die zu verwendende AWS-Region aus.

  4. Wählen Sie Add cluster (Cluster hinzufügen) und dann Create (Erstellen) aus. Wenn diese Option nicht angezeigt wird, wählen Sie zunächst im linken Navigationsbereich Clusters (Cluster) aus.

  5. Führen Sie auf der Seite Configure cluster (Cluster konfigurieren) die folgenden Schritte aus:

    1. Geben Sie einen Namen für Ihren Cluster ein, z. B. my-cluster. Der Name darf nur alphanumerische Zeichen (wobei die Groß- und Kleinschreibung beachtet werden muss) und Bindestriche enthalten. Er muss mit einem alphabetischen Zeichen beginnen und darf nicht mehr als 100 Zeichen umfassen.

    2. Für Cluster Service Role wählen Sie myAmazonEKSClusterRole aus.

    3. Belassen Sie die restlichen Einstellungen auf ihren Standardwerten und wählen Sie Weiter aus.

  6. Gehen Sie auf der Seite Netzwerk angeben wie folgt vor:

    1. Wählen Sie in der Dropdown-Liste VPC (VPC) die ID der VPC aus, die Sie in einem vorherigen Schritt erstellt haben. Es ist so etwas wie vpc-00x0000x000x0x000 | my-eks-vpc-stack-VPC.

    2. Belassen Sie die restlichen Einstellungen auf ihren Standardwerten und wählen Sie Weiter aus.

  7. Wählen Sie auf der Seite Protokollierung konfigurieren die Option Weiter aus.

  8. Wählen Sie auf der Seite Überprüfen und erstellen die Option Erstellen aus.

    Rechts neben dem Clusternamen lautet der Clusterstatus für einige Minuten Erstellen, bis der Cluster-Bereitstellungsprozess abgeschlossen ist. Fahren Sie nicht mit dem nächsten Schritt fort, bis der Status Aktiv lautet.

    Anmerkung

    Sie erhalten möglicherweise eine Fehlermeldung, dass eine der Availability Zones in Ihrer Anfrage nicht über genügend Kapazität zum Erstellen eines Amazon-EKS-Clusters verfügt. Wenn dies der Fall ist, enthält die Fehlerausgabe die Availability Zones, die einen neuen Cluster unterstützen können. Versuchen Sie, Ihren Cluster mit mindestens zwei Subnetzen erneut zu erstellen, die sich in den unterstützten Availability Zones für Ihr Konto befinden. Weitere Informationen finden Sie unter Unzureichende Kapazität.

Schritt 2: Konfigurieren Sie Ihren Computer für die Kommunikation mit Ihrem Cluster

In diesem Abschnitt erstellen Sie eine kubeconfig-Datei für Ihren Cluster. Die Einstellungen in dieser Datei ermöglichen der kubectl-CLI die Kommunikation mit Ihrem Cluster.

Konfigurieren Sie Ihren Computer wie folgt für die Kommunikation mit Ihrem Cluster

  1. Erstellen oder aktualisieren Sie eine kubeconfig-Datei für Ihren Cluster. Ersetzen Sie region-code durch die AWS-Region, in der Sie Ihren Cluster erstellt haben. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

    aws eks update-kubeconfig --region region-code --name my-cluster

    Standardmäßig wird die config-Datei in ~/.kube erstellt oder die Konfiguration des neuen Clusters wird einer vorhandenen config-Datei in ~/.kube hinzugefügt.

  2. Testen Sie Ihre Konfiguration.

    kubectl get svc
    Anmerkung

    Wenn Sie Autorisierungs- oder Ressourcenfehler erhalten, finden Sie weitere Informationen unter Nicht autorisiert oder Zugriff verweigert (kubectl) im Thema zur Fehlerbehebung.

    Die Beispielausgabe lautet wie folgt.

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m

Schritt 3: Erstellen von Knoten

Wichtig

Für einen möglichst einfachen und schnellen Einstieg enthält dieses Thema Schritte zum Erstellen von Knoten mit Standardeinstellungen. Bevor Sie Knoten für den Produktionseinsatz erstellen, empfehlen wir Ihnen, sich mit allen Einstellungen vertraut zu machen und Knoten mit den Einstellungen bereitzustellen, die Ihren Anforderungen entsprechen. Weitere Informationen finden Sie unter Amazon-EKS-Knoten. Einige Einstellungen können nur aktiviert werden, wenn Sie Ihre Knoten erstellen.

Sie können einen Cluster mit einem der folgenden Knotentypen erstellen. Weitere Informationen zu den einzelnen Typen finden Sie unter Amazon-EKS-Knoten. Nachdem Ihr Cluster bereitgestellt wurde, können Sie andere Knotentypen hinzufügen.

  • Fargate – Linux – Wählen Sie diesen Knotentyp, wenn Sie Linux-Anwendungen auf AWS Fargate ausführen möchten. Fargate ist eine Serverless-Compute-Engine, mit der Sie Kubernetes-pods bereitstellen können, ohne Amazon-EC2-Instances zu verwalten.

  • Verwaltete Knoten – LinuxWählen Sie diesen Knotentyp aus für die Ausführung von Amazon-Linux-Anwendungen auf Amazon-EC2-Instances. Obwohl dies in diesem Handbuch nicht behandelt wird, können Sie auch selbstverwaltete Windows- und Bottlerocket-Knoten zu Ihrem Cluster hinzufügen.

Fargate – Linux

Erstellen eines Fargate-Profils. Wenn Kubernetes-pods mit Kriterien bereitgestellt werden, die den im Profil definierten Kriterien entsprechen, werden die pods in Fargate bereitgestellt.

Ein Fargate-Profil erstellen

  1. Erstellen Sie eine IAM-Rolle und fügen Sie ihr die erforderliche von Amazon EKS IAM verwaltete Richtlinie hinzu. Wenn Ihr Cluster pods in der Fargate-Infrastruktur erstellt, müssen die Komponenten, die in der Fargate-Infrastruktur ausgeführt werden, in Ihrem Namen Aufrufe an AWS-APIs senden. Auf diese Weise können sie Aktionen wie das Abrufen von Container-Images aus Amazon ECR oder das Weiterleiten von Protokollen an andere AWS-Services durchführen. Die Amazon-EKS-pod-Ausführungsrolle stellt die entsprechenden IAM-Berechtigungen bereit.

    1. Kopieren Sie den folgenden Inhalt in eine Datei namens pod-execution-role-trust-policy.json. Ersetzen Sie region-code durch die AWS-Region, in der sich Ihr Cluster befindet. Wenn Sie dieselbe Rolle für alle AWS-Regionen in Ihrem Konto verwenden möchten, ersetzen Sie region-code durch *. Ersetzen Sie 111122223333 durch Ihre Konto-ID und my-cluster durch den Namen Ihres Clusters. Wenn Sie dieselbe Rolle für alle Cluster in Ihrem Konto verwenden möchten, ersetzen Sie my-cluster durch *.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Erstellen einer IAM-pod-Ausführungsrolle

      aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
    3. Hängen Sie die erforderliche von Amazon EKS verwaltete IAM-Richtlinie an die Rolle an.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole
  2. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  3. Wählen Sie auf der Cluster-Seite den my-cluster-Cluster aus.

  4. Führen Sie auf der Seite my-cluster die folgenden Schritte aus:

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

    2. Wählen Sie unter Fargate Profiles (Fargate-Profile) die Option Add Fargate Profile (Fargate-Profil hinzufügen) aus.

  5. Gehen Sie auf der Seite Configure Fargate Profile (Fargate-Profil konfigurieren) wie folgt vor:

    1. Geben Sie unter Name einen eindeutigen Namen für Ihr Fargate-Profil ein, wie z. B. my-profile.

    2. Wählen Sie für die Pod execution role (Pod-Ausführungsrolle) die Rolle AmazonEKSFargatePodExecutionRole aus, die Sie im vorherigen Schritt erstellt haben.

    3. Wählen Sie die Dropdown-Liste Subnets (Subnetze) aus und deaktivieren Sie alle Subnetze mit Public im Namen. Für pods, die auf Fargate ausgeführt werden, werden nur private Subnetze unterstützt.

    4. Wählen Sie Next (Weiter).

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

    1. Geben Sie für Namespace default ein.

    2. Wählen Sie Next (Weiter).

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

  8. Nach einigen Minuten ändert sich der Status im Abschnitt Konfiguration der Fargate-Gruppe von Wird erstellt auf Aktiv. Fahren Sie nicht mit dem nächsten Schritt fort, bis der Status Aktiv lautet.

  9. Wenn Sie vorhaben, alle pods auf Fargate (keine auf Amazon-EC2-Knoten) bereitzustellen, führen Sie die folgenden Schritte aus, um ein weiteres Fargate-Profil zu erstellen und den Standard-Namenslöser (CoreDNS) auf Fargate auszuführen.

    Anmerkung

    Wenn Sie das nicht tun, haben Sie zu diesem Zeitpunkt keine Knoten.

    1. Auf der Seite Fargate Profile (Fargate-Profil) wählen Sie my-profile aus.

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

    3. Geben Sie unter Name CoreDNS ein.

    4. Wählen Sie für die Pod execution role (Pod-Ausführungsrolle) die Rolle AmazonEKSFargatePodExecutionRole aus, die Sie im vorherigen Schritt erstellt haben.

    5. Wählen Sie die Dropdown-Liste Subnets (Subnetze) aus und deaktivieren Sie alle Subnetze mit Public im Namen. Für pods, die auf Fargate ausgeführt werden, werden nur private Subnetze unterstützt.

    6. Wählen Sie Next (Weiter).

    7. Geben Sie für Namespace kube-system ein.

    8. Klicken Sie auf Übereinstimmung von Labels und wählen Sie dann Label hinzufügen aus.

    9. Geben Sie k8s-app für Key(Schlüssel) und kube-dns für Value (Wert) ein. Dies ist notwendig, damit der Standardname-Resolver (CoreDNS) auf Fargate bereitgestellt werden kann.

    10. Wählen Sie Next (Weiter).

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

    12. Verwenden Sie den folgenden Befehl, um die standardmäßige 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"}]'
    Anmerkung

    Das System erstellt und verteilt zwei Knoten basierend auf der von Ihnen hinzugefügten Fargate-Profilbeschriftung. Sie werden nichts in den Knotengruppen sehen, weil sie nicht für Fargate-Knoten anwendbar sind, aber Sie sehen die neuen Knoten in der Registerkarte Übersicht.

Managed nodes – Linux

Erstellen Sie eine verwaltete Knotengruppe und geben Sie die Subnetze und Knoten-IAM-Rolle an, welche Sie in den vorherigen Schritten erstellt haben.

Erstellen Ihrer verwalteten Amazon-EC2-Linux-Knotengruppe

  1. Erstellen Sie eine Knoten-IAM-Rolle und fügen Sie ihr die erforderliche von Amazon EKS IAM verwaltete Richtlinie hinzu. Der Amazon EKS-Knoten-kubelet-Daemon ruft AWS-APIs in Ihrem Namen auf. Knoten erhalten über ein IAM-Instance-Profil und zugehörige Richtlinien Berechtigungen für diese API-Aufrufe.

    1. Kopieren Sie den folgenden Inhalt in eine Datei namens node-role-trust-policy.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Erstellen Sie die Knoten-IAM-Rolle.

      aws iam create-role \ --role-name myAmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-policy.json"
    3. Hängen Sie die erforderlichen verwalteten IAM-Richtlinien an die Rolle an.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name myAmazonEKSNodeRole
  2. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  3. Wählen Sie den Namen des Clusters aus, den Sie in Schritt 1: Erstellen Sie Ihre Amazon-EKS-Cluster erstellt haben, z. B. my-cluster.

  4. Führen Sie auf der Seite my-cluster die folgenden Schritte aus:

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

    2. Wählen Sie Add Node Group (Knotengruppe hinzufügen) aus.

  5. Führen Sie auf der Seite Configure Node Group (Knotengruppe konfigurieren) die folgenden Schritte aus:

    1. Für Name geben Sie einen eindeutigen Namen für die verwaltete Knotengruppe ein, wie z. B. my-nodegroup. Der Name darf nur alphanumerische Zeichen (wobei die Groß- und Kleinschreibung beachtet werden muss) und Bindestriche enthalten. Er muss mit einem alphabetischen Zeichen beginnen und darf nicht mehr als 100 Zeichen umfassen.

    2. Für Name der Knoten-IAM-Rolle wählen Sie die Rolle myAmazonEKSNodeRole aus, die Sie im vorherigen Schritt erstellt haben. Wir empfehlen, dass jede Knotengruppe ihre eigene eindeutige IAM-Rolle verwendet.

    3. Wählen Sie Next (Weiter).

  6. Akzeptieren Sie auf der Seite Computing- und Skalierungskonfiguration festlegen die Standardwerte und wählen Sie Weiter aus.

  7. Akzeptieren Sie auf der Seite Netzwerk angeben die Standardwerte und wählen Sie Weiter aus.

  8. Überprüfen Sie auf der Seite Review and create (Überprüfen und Erstellen) die Konfiguration der verwalteten Knoten, und wählen Sie Create (Erstellen).

  9. Nach einigen Minuten ändert sich der Status im Abschnitt Konfiguration der Knotengruppe von Wird erstellt auf Aktiv. Fahren Sie nicht mit dem nächsten Schritt fort, bis der Status Aktiv lautet.

Schritt 4: Ressourcen anzeigen

Sie können Ihre Knoten und Kubernetes-Workloads anzeigen.

So zeigen Sie Ihre Knoten und Workloads an

  1. Wählen Sie im linken Navigationsbereich die Option Cluster aus. Wählen Sie in der Liste Clusters (Cluster) den Namen des erstellten Clusters aus, z. B. my-cluster.

  2. Wählen Sie auf der Seite my-cluster Folgendes aus:

    1. Registerkarte Compute (Datenverarbeitung) – Es wird eine Liste der Knoten angezeigt, die für den Cluster bereitgestellt wurden. Sie können den Namen eines Knotens auswählen, um weitere Informationen darüber anzuzeigen.

    2. Registerkarte Ressources (Ressourcen) – Es werden alle Kubernetes-Ressourcen angezeigt, die standardmäßig in einem Amazon-EKS-Cluster bereitgestellt werden. Wählen Sie einen Ressourcentyp in der Konsole aus, um mehr über ihn zu erfahren.

Schritt 5: Löschen von Ressourcen

Nachdem Sie mit dem Cluster und den Knoten fertig sind, die Sie für dieses Tutorial erstellt haben, sollten Sie die Ressourcen, die Sie erstellt haben, löschen. Wenn Sie vor dem Löschen der Ressourcen mehr mit diesem Cluster tun möchten, lesen Sie Nächste Schritte.

So löschen Sie die Ressourcen, die Sie in diesem Leitfaden erstellt haben

  1. Löschen Sie alle von Ihnen erstellten Knotengruppen oder Fargate-Profile.

    1. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

    2. Wählen Sie im linken Navigationsbereich die Option Cluster aus. Wählen Sie my-cluster in der Liste der Cluster aus.

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

    4. Wenn Sie eine Knotengruppe erstellt haben, Sie die Knotengruppe my-nodegroup und dann Delete (Löschen) aus. Geben Sie my-nodegroup ein und klicken Sie auf Delete (Löschen).

    5. Wählen Sie dies für jedes von Ihnen erstellte Fargate-Profil und dann Delete (Löschen) aus. Geben Sie den Namen des Profils ein und wählen Sie dann Löschen aus.

      Anmerkung

      Wenn Sie ein zweites Fargate-Profil löschen, müssen Sie möglicherweise warten, bis das erste Profil gelöscht wurde.

    6. Fahren Sie nicht fort, bis die Knotengruppe oder Fargate-Profile gelöscht sind.

  2. Löschen Sie den -Cluster.

    1. Wählen Sie im linken Navigationsbereich die Option Cluster aus. Wählen Sie my-cluster in der Liste der Cluster aus.

    2. Wählen Sie Delete cluster (Cluster löschen) aus.

    3. Geben Sie my-cluster ein und wählen Sie Delete (Löschen). Fahren Sie nicht fort, bis der Cluster gelöscht wurde.

  3. Löschen Sie den VPC-AWS CloudFormation-Stack, den Sie erstellt haben.

    1. Öffnen Sie die AWS CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation.

    2. Wählen Sie den my-eks-vpc-stack-Stack und anschließend Delete Löschen aus.

    3. Wählen Sie im Bestätigungsdialogfeld my-eks-vpc-stack löschen Stack löschen aus.

  4. Löschen Sie die IAM-Rollen, die Sie erstellt haben.

    1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

    2. Wählen Sie im linken Navigationsbereich Roles aus.

    3. Wählen Sie jede von Ihnen erstellte Rolle aus der Liste (myAmazonEKSClusterRole sowie AmazonEKSFargatePodExecutionRolee oder myAmazonEKSNodeRole) aus. Klicken Sie auf Delete (Löschen), geben Sie den angeforderten Bestätigungstext ein und wählen Sie Delete (Löschen) aus.

Nächste Schritte

Die folgenden Dokumentationsthemen helfen Ihnen bei der Erweiterung der Funktionalität Ihres Clusters.