Tutorial: Bereitstellen einer Anwendung in Amazon EKS - Amazon CodeCatalyst

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.

Tutorial: Bereitstellen einer Anwendung in Amazon EKS

In diesem Tutorial erfahren Sie, wie Sie mithilfe eines CodeCatalyst Amazon-Workflows, Amazon EKS und einiger anderer Services eine containerisierte Anwendung in Amazon Elastic Kubernetes Service bereitstellen. AWS Bei der bereitgestellten Anwendung handelt es sich um ein einfaches „Hello, World!“ Website, die auf einem Docker-Image des Apache-Webservers basiert. Das Tutorial führt Sie durch die erforderlichen Vorbereitungsarbeiten wie das Einrichten einer Entwicklungsmaschine und eines Amazon EKS-Clusters und beschreibt anschließend, wie Sie einen Workflow erstellen, um die Anwendung zu erstellen und sie im Cluster bereitzustellen.

Nach Abschluss der ersten Bereitstellung werden Sie im Tutorial angewiesen, eine Änderung an Ihrer Anwendungsquelle vorzunehmen. Diese Änderung führt dazu, dass ein neues Docker-Image erstellt und mit neuen Revisionsinformationen in Ihr Docker-Image-Repository übertragen wird. Die neue Version des Docker-Images wird dann in Amazon EKS bereitgestellt.

Tipp

Anstatt sich durch dieses Tutorial zu arbeiten, können Sie einen Blueprint verwenden, der ein vollständiges Amazon EKS-Setup für Sie durchführt. Sie müssen den EKS App Deployment Blueprint verwenden. Weitere Informationen finden Sie unter Ein Projekt mit einem Blueprint erstellen.

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen:

Schritt 1: Richten Sie Ihren Entwicklungscomputer ein

Der erste Schritt in diesem Tutorial besteht darin, einen Entwicklungscomputer mit einigen Tools zu konfigurieren, die Sie in diesem Tutorial verwenden werden. Diese Tools sind:

  • das eksctl Hilfsprogramm — für die Cluster-Erstellung

  • das kubectl Hilfsprogramm — eine Voraussetzung für eksctl

  • das AWS CLI — auch eine Voraussetzung für eksctl

Sie können diese Tools auf Ihrem vorhandenen Entwicklungscomputer installieren, falls Sie einen haben, oder Sie können eine CodeCatalyst Entwicklungsumgebung verwenden, die cloudbasiert ist. Der Vorteil einer CodeCatalyst Entwicklungsumgebung besteht darin, dass sie einfach hoch- und heruntergefahren werden kann und in andere CodeCatalyst Dienste integriert ist, sodass Sie dieses Tutorial in weniger Schritten durcharbeiten können.

In diesem Tutorial wird davon ausgegangen, dass Sie eine CodeCatalyst Entwicklungsumgebung verwenden.

Die folgenden Anweisungen beschreiben eine schnelle Methode, um eine CodeCatalyst Entwicklungsumgebung zu starten und sie mit den erforderlichen Tools zu konfigurieren. Genauere Anweisungen finden Sie unter:

Um eine Entwicklungsumgebung zu starten
  1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

  2. Navigieren Sie zu Ihrem Projekt,codecatalyst-eks-project.

  3. Wählen Sie im Navigationsbereich Code und dann Quell-Repositories aus.

  4. Wählen Sie den Namen Ihres Quell-Repositorys,codecatalyst-eks-source-repository.

  5. Wählen Sie oben Create Dev Environment und dann AWS Cloud9 (im Browser) aus.

  6. Vergewissern Sie sich, dass In vorhandenem Zweig und Hauptbereich arbeiten ausgewählt sind, und wählen Sie dann Create aus.

    Ihre Entwicklungsumgebung wird in einem neuen Browser-Tab gestartet, in den Ihr Repository (codecatalyst-eks-source-repository) geklont wird.

Um kubectl zu installieren und zu konfigurieren
  1. Geben Sie im Dev Environment-Terminal Folgendes ein:

    curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl
  2. Geben Sie ein:

    chmod +x ./kubectl
  3. Geben Sie ein:

    mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
  4. Geben Sie ein:

    echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
  5. Geben Sie ein:

    kubectl version --short --client
  6. Vergewissern Sie sich, dass eine Version angezeigt wird.

    Sie haben es jetzt installiertkubectl.

Um eksctl zu installieren und zu konfigurieren
Anmerkung

eksctlist nicht unbedingt erforderlich, da Sie stattdessen verwenden kubectl können. eksctlHat jedoch den Vorteil, dass ein Großteil der Clusterkonfiguration automatisiert wird, und ist daher das für dieses Tutorial empfohlene Tool.

  1. Geben Sie im Dev Environment-Terminal Folgendes ein:

    curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
  2. Geben Sie ein:

    sudo cp /tmp/eksctl /usr/bin
  3. Geben Sie ein:

    eksctl version
  4. Vergewissern Sie sich, dass eine Version angezeigt wird.

    Sie haben es jetzt installierteksctl.

Um zu überprüfen, ob das installiert AWS CLI ist
  1. Geben Sie im Dev Environment-Terminal Folgendes ein:

    aws --version
  2. Überprüfen Sie, ob eine Version angezeigt wird, um zu überprüfen, ob die installiert AWS CLI ist.

    Führen Sie die verbleibenden Verfahren aus, um die AWS CLI mit den erforderlichen Zugriffsberechtigungen zu konfigurieren AWS.

Um das zu konfigurieren AWS CLI

Sie müssen das AWS CLI mit Zugriffsschlüsseln und einem Sitzungstoken konfigurieren, um ihm Zugriff auf AWS Dienste zu gewähren. Die folgenden Anweisungen bieten eine schnelle Möglichkeit, die Schlüssel und das Token zu konfigurieren. Wenn Sie jedoch detaillierte Anweisungen wünschen, finden Sie AWS CLI im AWS Command Line Interface Benutzerhandbuch unter Konfiguration von.

  1. Erstellen Sie wie folgt einen IAM Identity Center-Benutzer:

    1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS IAM Identity Center Konsole unter https://console.aws.amazon.com/singlesignon/.

      (Möglicherweise müssen Sie Aktivieren auswählen, wenn Sie sich noch nie bei IAM Identity Center angemeldet haben.)

      Anmerkung

      Stellen Sie sicher, dass Sie sich mit dem anmelden AWS-Konto , der mit Ihrem CodeCatalyst Bereich verbunden ist. Sie können überprüfen, welches Konto verbunden ist, indem Sie zu Ihrem Bereich navigieren und den Tab AWS-Konten auswählen. Weitere Informationen finden Sie unter Einen Raum schaffen.

    2. Wählen Sie im Navigationsbereich Users (Benutzer) und dann Add User (Benutzer hinzufügen) aus.

    3. Geben Sie im Feld Nutzername Folgendes ein:

      codecatalyst-eks-user
    4. Wählen Sie unter Passwort die Option Einmalpasswort generieren aus, das Sie mit diesem Benutzer teilen können.

    5. Geben Sie in den Feldern E-Mail-Adresse und E-Mail-Adresse bestätigen eine E-Mail-Adresse ein, die noch nicht in IAM Identity Center existiert.

    6. Geben Sie im Feld Vorname Folgendes ein:

      codecatalyst-eks-user
    7. Geben Sie im Feld Nachname Folgendes ein:

      codecatalyst-eks-user
    8. Behalten Sie im Feld Anzeigename Folgendes bei:

      codecatalyst-eks-user codecatalyst-eks-user
    9. Wählen Sie Weiter aus.

    10. Wählen Sie auf der Seite Benutzer zu Gruppen hinzufügen die Option Weiter aus.

    11. Überprüfen Sie auf der Seite Benutzer überprüfen und hinzufügen die Informationen und wählen Sie Benutzer hinzufügen aus.

      Ein Dialogfeld mit einem Einmalkennwort wird angezeigt.

    12. Wählen Sie Kopieren und fügen Sie dann die Anmeldeinformationen in eine Textdatei ein. Die Anmeldeinformationen bestehen aus der URL des AWS Zugriffsportals, einem Benutzernamen und einem Einmalkennwort.

    13. Klicken Sie auf Schließen.

  2. Erstellen Sie wie folgt einen Berechtigungssatz:

    1. Wählen Sie im Navigationsbereich die Option Berechtigungssätze und dann Berechtigungssatz erstellen aus.

    2. Wählen Sie Vordefinierter Berechtigungssatz und dann aus AdministratorAccess. Diese Richtlinie gewährt allen volle Berechtigungen AWS-Services.

    3. Wählen Sie Weiter aus.

    4. Entfernen Sie im Feld Name des Berechtigungssatzes den Wert AdministratorAccess und geben Sie Folgendes ein:

      codecatalyst-eks-permission-set
    5. Wählen Sie Weiter aus.

    6. Überprüfen Sie auf der Seite Überprüfen und erstellen die Informationen und wählen Sie Erstellen aus.

  3. Weisen Sie den Berechtigungssatz wie folgt zucodecatalyst-eks-user:

    1. Wählen Sie im Navigationsbereich das Kontrollkästchen neben dem aus AWS-Konten, bei dem Sie derzeit angemeldet sind AWS-Konto , und aktivieren Sie es anschließend.

    2. Wählen Sie Benutzer oder Gruppen zuweisen aus.

    3. Wählen Sie die Registerkarte Users.

    4. Aktivieren Sie das Kontrollkästchen nebencodecatalyst-eks-user.

    5. Wählen Sie Weiter aus.

    6. Aktivieren Sie das Kontrollkästchen nebencodecatalyst-eks-permission-set.

    7. Wählen Sie Weiter aus.

    8. Überprüfen Sie die Informationen und wählen Sie Senden aus.

      Sie haben sie nun codecatalyst-eks-permission-set zugewiesen codecatalyst-eks-user und an Sie AWS-Konto gebunden.

  4. Rufen Sie codecatalyst-eks-user die Zugriffsschlüssel und das Sitzungstoken wie folgt ab:

    1. Stellen Sie sicher, dass Sie die URL des AWS Zugriffsportals sowie den Benutzernamen und das Einmalpasswort für habencodecatalyst-eks-user. Sie hätten diese Informationen früher in einen Texteditor kopieren sollen.

      Anmerkung

      Wenn Ihnen diese Informationen nicht vorliegen, rufen Sie die codecatalyst-eks-user Detailseite im IAM Identity Center auf und wählen Sie Passwort zurücksetzen, Einmalpasswort generieren [...] , und klicken Sie erneut auf Passwort zurücksetzen, um die Informationen auf dem Bildschirm anzuzeigen.

    2. Melden Sie sich ab AWS.

    3. Fügen Sie die URL des AWS Zugangsportals in die Adressleiste Ihres Browsers ein.

    4. Melden Sie sich an mit:

      • Nutzername:

        codecatalyst-eks-user
      • Passwort:

        one-time-password

    5. Geben Sie unter Neues Passwort einrichten ein neues Passwort ein und wählen Sie Neues Passwort festlegen aus.

      Auf dem Bildschirm erscheint ein AWS-KontoFeld.

    6. Wählen Sie AWS-Kontound wählen Sie dann den Namen des Benutzers und des AWS-Konto Berechtigungssatzes aus, dem Sie den codecatalyst-eks-user Benutzer zugewiesen haben.

    7. Wählen Sie neben codecatalyst-eks-permission-set Befehlszeile oder programmatischer Zugriff aus.

    8. Kopieren Sie die Befehle in der Mitte der Seite. Sie sehen etwa wie folgt aus:

      export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="session-token"

      ... wobei Session-Token eine lange zufällige Zeichenfolge ist.

  5. Fügen Sie die Zugriffsschlüssel und das Sitzungstoken wie AWS CLI folgt hinzu:

    1. Kehren Sie zu Ihrer CodeCatalyst Entwicklungsumgebung zurück.

    2. Fügen Sie an der Terminal-Eingabeaufforderung die Befehle ein, die Sie kopiert haben. Drücken Sie die Eingabetaste.

      Sie haben das jetzt AWS CLI mit Zugriffsschlüsseln und einem Sitzungstoken konfiguriert. Sie können es jetzt verwenden AWS CLI , um die für dieses Tutorial erforderlichen Aufgaben zu erledigen.

      Wichtig

      Wenn Sie während dieses Tutorials zu irgendeinem Zeitpunkt Meldungen sehen, die den folgenden ähneln:

      Unable to locate credentials. You can configure credentials by running "aws configure".

      Oder:

      ExpiredToken: The security token included in the request is expired

      ... das liegt daran, dass Ihre AWS CLI Sitzung abgelaufen ist. Führen Sie in diesem Fall den aws configure Befehl nicht aus. Verwenden Sie stattdessen die Anweisungen in Schritt 4 dieses Verfahrens, das mit „Aktualisieren Obtain codecatalyst-eks-user's access key and session token Sie Ihre Sitzung“ beginnt.

Schritt 2: Erstellen Sie einen Amazon EKS-Cluster

In diesem Abschnitt erstellen Sie einen Cluster in Amazon EKS. Die folgenden Anweisungen beschreiben eine schnelle Methode zum Erstellen des Clusters mithilfe voneksctl. Wenn Sie jedoch detaillierte Anweisungen wünschen, finden Sie unter:

Anmerkung

Private Cluster werden von der CodeCatalyst Integration mit Amazon EKS nicht unterstützt.

Bevor Sie beginnen

Stellen Sie sicher, dass Sie die folgenden Aufgaben auf Ihrem Entwicklungscomputer abgeschlossen haben:

  • Das eksctl Hilfsprogramm wurde installiert.

  • Das kubectl Hilfsprogramm wurde installiert.

  • Habe das installiert AWS CLI und mit Zugriffsschlüsseln und einem Sitzungstoken konfiguriert.

Informationen zur Ausführung dieser Aufgaben finden Sie unterSchritt 1: Richten Sie Ihren Entwicklungscomputer ein.

So erstellen Sie einen Cluster
Wichtig

Verwenden Sie nicht die Benutzeroberfläche des Amazon EKS-Service, um den Cluster zu erstellen, da der Cluster dann nicht korrekt konfiguriert wird. Verwenden Sie das eksctl Hilfsprogramm, wie in den folgenden Schritten beschrieben.

  1. Gehen Sie zu Ihrer Entwicklungsumgebung.

  2. Erstellen Sie einen Cluster und Knoten:

    eksctl create cluster --name codecatalyst-eks-cluster --region us-west-2

    Wobei gilt:

    • codecatalyst-eks-clusterwird durch den Namen ersetzt, den Sie Ihrem Cluster geben möchten.

    • us-west-2 wird durch Ihre Region ersetzt.

    Nach 10 bis 20 Minuten wird eine Meldung ähnlich der folgenden angezeigt:

    EKS cluster "codecatalyst-eks-cluster" in "us-west-2" region is ready

    Anmerkung

    Während AWS der Erstellung Ihres Clusters werden mehrere waiting for CloudFormation stack Meldungen angezeigt. Das ist normal.

  3. Stellen Sie sicher, dass Ihr Cluster erfolgreich erstellt wurde:

    kubectl cluster-info

    Es wird eine Meldung ähnlich der folgenden angezeigt, die auf eine erfolgreiche Clustererstellung hinweist:

    Kubernetes master is running at https://long-string.gr7.us-west-2.eks.amazonaws.com CoreDNS is running at https://long-string.gr7.us-west-2.eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Schritt 3: Erstellen Sie ein Amazon ECR-Image-Repository

In diesem Abschnitt erstellen Sie ein privates Image-Repository in Amazon Elastic Container Registry (Amazon ECR). Dieses Repository speichert das Docker-Image für das Tutorial.

Weitere Informationen zu Amazon ECR finden Sie im Amazon Elastic Container Registry User Guide.

Um ein Bild-Repository in Amazon ECR zu erstellen
  1. Gehen Sie zu Ihrer Entwicklungsumgebung.

  2. Erstellen Sie ein leeres Repository in Amazon ECR:

    aws ecr create-repository --repository-name codecatalyst-eks-image-repo

    codecatalyst-eks-image-repoErsetzen Sie es durch den Namen, den Sie dem Amazon ECR-Repository geben möchten.

    In diesem Tutorial wird davon ausgegangen, dass Sie Ihrem Repository codecatalyst-eks-image-repo einen Namen gegeben haben.

  3. Zeigen Sie die Details des Amazon ECR-Repositorys an:

    aws ecr describe-repositories \ --repository-names codecatalyst-eks-image-repo
  4. Notieren Sie sich den “repositoryUri”: Wert, zum Beispiel. 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo

    Sie benötigen ihn später, wenn Sie das Repository zu Ihrem Workflow hinzufügen.

Schritt 4: Quelldateien hinzufügen

In diesem Abschnitt fügen Sie Anwendungsquelldateien zu Ihrem Quell-Repository hinzu (codecatalyst-eks-source-repository). Sie bestehen aus:

  • Eine index.html Datei — Zeigt ein „Hallo, Welt!“ Nachricht im Browser.

  • Ein Dockerfile — Beschreibt das Basis-Image, das für Ihr Docker-Image verwendet werden soll, und die Docker-Befehle, die darauf angewendet werden sollen.

  • Eine deployment.yaml Datei — Das Kubernetes-Manifest, das den Kubernetes-Service und die Bereitstellung definiert.

Die Ordnerstruktur sieht wie folgt aus:

|— codecatalyst-eks-source-repository |— Kubernetes |— deployment.yaml |— public-html | |— index.html |— Dockerfile

index.html

In der index.html Datei wird die Meldung „Hello, World!“ angezeigt Nachricht im Browser.

Um die Datei index.html hinzuzufügen
  1. Gehen Sie zu Ihrer Entwicklungsumgebung.

  2. Erstellen Sie in codecatalyst-eks-source-repository einen Ordner mit dem Namenpublic-html.

  3. Erstellen Sie in /public-html eine Datei namens index.html mit dem folgenden Inhalt:

    <html> <head> <title>Hello World</title> <style> body { background-color: black; text-align: center; color: white; font-family: Arial, Helvetica, sans-serif; } </style> </head> <body> <h1>Hello, World!</h1> </body> </html>
  4. Geben Sie an der Terminal-Eingabeaufforderung Folgendes ein:

    cd /projects/codecatalyst-eks-source-repository
  5. Hinzufügen, Festschreiben und Push:

    git add . git commit -m "add public-html/index.html" git push

    Das index.html wird Ihrem Repository in einem public-html Ordner hinzugefügt.

Dockerfile

Das Dockerfile beschreibt das zu verwendende Basis-Decker-Image und die darauf anzuwendenden Docker-Befehle. Weitere Informationen zum Dockerfile finden Sie in der Dockerfile-Referenz.

Das hier angegebene Dockerfile gibt an, dass das Apache 2.4-Basisimage () verwendet werden soll. httpd Es enthält auch Anweisungen zum Kopieren einer index.html aufgerufenen Quelldatei in einen Ordner auf dem Apache-Server, der Webseiten bereitstellt. Die EXPOSE Anweisung in der Dockerfile teilt Docker mit, dass der Container auf Port 80 lauscht.

Um das Dockerfile hinzuzufügen
  1. Erstellen Sie in codecatalyst-eks-source-repository eine Datei namens Dockerfile mit dem folgenden Inhalt:

    FROM httpd:2.4 COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html EXPOSE 80

    Geben Sie keine Dateierweiterung an.

    Wichtig

    Das Dockerfile muss sich im Stammordner Ihres Repositorys befinden. Der Docker build Befehl des Workflows erwartet, dass es dort vorhanden ist.

  2. Hinzufügen, Festschreiben und Push:

    git add . git commit -m "add Dockerfile" git push

    Das Dockerfile wird zu Ihrem Repository hinzugefügt.

deployment.yaml

In diesem Abschnitt fügen Sie Ihrem Repository eine deployment.yaml Datei hinzu. Die deployment.yaml Datei ist ein Kubernetes-Manifest, das zwei auszuführende Kubernetes-Ressourcentypen oder -arten definiert: einen „Dienst“ und eine „Bereitstellung“.

  • Der „Service“ stellt einen Load Balancer in Amazon EC2 bereit. Der Load Balancer stellt Ihnen eine mit dem Internet verbundene öffentliche URL und einen Standardport (Port 80) zur Verfügung, über den Sie zu „Hello, World!“ navigieren können Anwendung.

  • Bei der „Bereitstellung“ werden drei Pods bereitgestellt, und jeder Pod enthält einen Docker-Container mit dem Namen „Hello, World!“ Anwendung. Die drei Pods werden auf den Knoten bereitgestellt, die bei der Erstellung des Clusters erstellt wurden.

Das Manifest in diesem Tutorial ist kurz. Ein Manifest kann jedoch eine beliebige Anzahl von Kubernetes-Ressourcentypen wie Pods, Jobs, Ingresses und Netzwerkrichtlinien enthalten. Außerdem können Sie mehrere Manifestdateien verwenden, wenn Ihre Bereitstellung komplex ist.

Um eine deployment.yaml-Datei hinzuzufügen
  1. Erstellen Sie in einen codecatalyst-eks-source-repository Ordner mit dem Namen. Kubernetes

  2. Erstellen Sie in /Kubernetes eine Datei namens deployment.yaml mit dem folgenden Inhalt:

    apiVersion: v1 kind: Service metadata: name: my-service labels: app: my-app spec: type: LoadBalancer selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: app: my-app spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: codecatalyst-eks-container # The $REPOSITORY_URI and $IMAGE_TAG placeholders will be replaced by actual values supplied by the build action in your workflow image: $REPOSITORY_URI:$IMAGE_TAG ports: - containerPort: 80
  3. Hinzufügen, Festschreiben und Push:

    git add . git commit -m "add Kubernetes/deployment.yaml" git push

    Die deployment.yaml Datei wird Ihrem Repository in einem Ordner mit dem Namen hinzugefügtKubernetes.

Sie haben jetzt alle Ihre Quelldateien hinzugefügt.

Nehmen Sie sich einen Moment Zeit, um Ihre Arbeit zu überprüfen und sicherzustellen, dass Sie alle Dateien in den richtigen Ordnern abgelegt haben. Die Ordnerstruktur ist wie folgt:

|— codecatalyst-eks-source-repository |— Kubernetes |— deployment.yaml |— public-html | |— index.html |— Dockerfile

Schritt 5: AWS Rollen erstellen

In diesem Abschnitt erstellen Sie AWS IAM-Rollen, die Ihr CodeCatalyst Workflow benötigt, um zu funktionieren. Diese Rollen sind:

  • Build-Rolle — Erteilt der CodeCatalyst Build-Aktion (im Workflow) die Berechtigung, auf Ihr AWS Konto zuzugreifen und in Amazon ECR und Amazon EC2 zu schreiben.

  • Rolle bereitstellen — Erteilt der Cluster-Aktion CodeCatalyst Deploy to Kubernetes (im Workflow) die Berechtigung, auf Ihr AWS Konto und Amazon EKS zuzugreifen.

Weitere Informationen zu IAM-Rollen finden Sie unter IAM-Rollen im Benutzerhandbuch.AWS Identity and Access Management

Anmerkung

Um Zeit zu sparen, können Sie anstelle der beiden zuvor aufgeführten Rollen eine einzelne CodeCatalystWorkflowDevelopmentRole-spaceName Rolle, die so genannte Rolle, erstellen. Weitere Informationen finden Sie unter Die CodeCatalystWorkflowDevelopmentRole-spaceNameRolle für Ihr Konto und Ihren Bereich erstellen. Beachten Sie, dass die CodeCatalystWorkflowDevelopmentRole-spaceName Rolle über sehr umfangreiche Berechtigungen verfügt, was ein Sicherheitsrisiko darstellen kann. Wir empfehlen, diese Rolle nur in Tutorials und Szenarien zu verwenden, in denen die Sicherheit weniger wichtig ist. In diesem Tutorial wird davon ausgegangen, dass Sie die beiden zuvor aufgeführten Rollen erstellen.

Führen Sie die folgenden Verfahren aus, um die Build- und Deploy-Rollen zu erstellen.

1. Um eine Vertrauensrichtlinie für beide Rollen zu erstellen
  1. Gehen Sie zu Ihrer Entwicklungsumgebung.

  2. Erstellen Sie im Cloud9-long-string Verzeichnis eine Datei namens codecatalyst-eks-trust-policy.json mit dem folgenden Inhalt:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
2. Um die Build-Richtlinie für die Build-Rolle zu erstellen
  • Erstellen Sie im Cloud9-long-string Verzeichnis eine Datei namens codecatalyst-eks-build-policy.json mit dem folgenden Inhalt:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:*", "ec2:*" ], "Resource": "*" } ] }
    Anmerkung

    Wenn die Rolle zum ersten Mal zum Ausführen von Workflow-Aktionen verwendet wird, verwenden Sie den Platzhalter in der Ressourcenrichtlinien-Anweisung und grenzen Sie dann die Richtlinie mit dem Ressourcennamen ab, sobald sie verfügbar ist.

    "Resource": "*"
3. Um die Bereitstellungsrichtlinie für die Bereitstellungsrolle zu erstellen
  • Erstellen Sie im Cloud9-long-string Verzeichnis eine Datei namens codecatalyst-eks-deploy-policy.json mit dem folgenden Inhalt:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*" } ] }
    Anmerkung

    Wenn die Rolle zum ersten Mal zum Ausführen von Workflow-Aktionen verwendet wird, verwenden Sie den Platzhalter in der Ressourcenrichtlinien-Anweisung und grenzen Sie dann die Richtlinie mit dem Ressourcennamen ab, sobald sie verfügbar ist.

    "Resource": "*"

Sie haben Ihrer Entwicklungsumgebung jetzt drei Richtliniendokumente hinzugefügt. Ihre Verzeichnisstruktur sieht jetzt wie folgt aus:

|— Cloud9-long-string |— .c9 |— codecatalyst-eks-source-repository |— Kubernetes |— public-html |— Dockerfile codecatalyst-eks-build-policy.json codecatalyst-eks-deploy-policy.json codecatalyst-eks-trust-policy.json
4. Um die Build-Richtlinie hinzuzufügen AWS
  1. Geben Sie im Dev Environment-Terminal Folgendes ein:

    cd /projects
  2. Geben Sie ein:

    aws iam create-policy \ --policy-name codecatalyst-eks-build-policy \ --policy-document file://codecatalyst-eks-build-policy.json
  3. Drücken Sie die Eingabetaste.

  4. Notieren Sie sich den "arn": Wert in der Befehlsausgabe, zum Beispielarn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy. Sie benötigen diesen ARN später.

5. Um die Bereitstellungsrichtlinie hinzuzufügen AWS
  1. Geben Sie ein:

    aws iam create-policy \ --policy-name codecatalyst-eks-deploy-policy \ --policy-document file://codecatalyst-eks-deploy-policy.json
  2. Drücken Sie die Eingabetaste.

  3. Notieren Sie sich in der Befehlsausgabe den "arn": Wert der Bereitstellungsrichtlinie, arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy z. B. Sie benötigen diesen ARN später.

6. Um die Build-Rolle zu erstellen
  1. Geben Sie ein:

    aws iam create-role \ --role-name codecatalyst-eks-build-role \ --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
  2. Drücken Sie die Eingabetaste.

  3. Geben Sie ein:

    aws iam attach-role-policy \ --role-name codecatalyst-eks-build-role \ --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy

    Wobei arn:aws:iam: :111122223333:policy/ codecatalyst-eks-build-policy durch den ARN der Build-Richtlinie ersetzt wird, die Sie zuvor notiert haben.

  4. Drücken Sie die Eingabetaste.

  5. Geben Sie an der Terminal-Eingabeaufforderung Folgendes ein:

    aws iam get-role \ --role-name codecatalyst-eks-build-role
  6. Drücken Sie die Eingabetaste.

  7. Notieren Sie sich den "Arn": Wert der Rolle, zum Beispielarn:aws:iam::111122223333:role/codecatalyst-eks-build-role. Sie benötigen diesen ARN später.

7. Um die Bereitstellungsrolle zu erstellen
  1. Geben Sie ein:

    aws iam create-role \ --role-name codecatalyst-eks-deploy-role \ --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
  2. Drücken Sie die Eingabetaste.

  3. Geben Sie ein:

    aws iam attach-role-policy \ --role-name codecatalyst-eks-deploy-role \ --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy

    Wobei arn:aws:iam: :111122223333:policy/ codecatalyst-eks-deploy-policy durch den ARN der Bereitstellungsrichtlinie ersetzt wird, die Sie zuvor notiert haben.

  4. Drücken Sie die Eingabetaste.

  5. Geben Sie ein:

    aws iam get-role \ --role-name codecatalyst-eks-deploy-role
  6. Drücken Sie die Eingabetaste.

  7. Notieren Sie sich den "Arn": Wert der Rolle, zum Beispielarn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role. Sie benötigen diesen ARN später.

Sie haben jetzt Build- und Deploy-Rollen erstellt und deren ARNs notiert.

Schritt 6: AWS Rollen hinzufügen CodeCatalyst

In diesem Schritt fügen Sie die Build-Rolle (codecatalyst-eks-build-role) und die Bereitstellungsrolle (codecatalyst-eks-deploy-role) zu der Rolle hinzu AWS-Konto , die Sie mit Ihrem Bereich verbunden haben. Dadurch sind die Rollen für die Verwendung in Ihrem Workflow verfügbar.

Um Build- und Deploy-Rollen zu Ihrem hinzuzufügen AWS-Konto
  1. Navigieren Sie in der CodeCatalyst Konsole zu Ihrem Bereich.

  2. Wählen Sie oben Einstellungen aus.

  3. Wählen Sie im Navigationsbereich AWS Konten aus. Eine Liste von Konten wird angezeigt.

  4. Kopieren Sie in die Spalte CodeCatalyst Amazon-Anzeigename den Anzeigenamen der AWS-Konto Stelle, in der Sie Ihre Build- und Deploy-Rollen erstellt haben. (Es könnte eine Zahl sein.) Sie benötigen diesen Wert später, wenn Sie Ihren Workflow erstellen.

  5. Wählen Sie den Anzeigenamen.

  6. Wählen Sie in der AWS Managementkonsole die Option Rollen verwalten aus.

    Die Seite „IAM-Rolle zu Amazon CodeCatalyst Space hinzufügen“ wird angezeigt. Möglicherweise müssen Sie sich anmelden, um auf die Seite zuzugreifen.

  7. Wählen Sie Eine bestehende Rolle hinzufügen, die Sie in IAM erstellt haben.

    Eine Dropdownliste wird angezeigt. In der Liste werden die Build- und Deploy-Rollen sowie alle anderen IAM-Rollen mit einer Vertrauensrichtlinie angezeigt, die auch die Dienstprinzipale codecatalyst-runner.amazonaws.com und die codecatalyst.amazonaws.com Dienstprinzipale umfasst.

  8. Fügen Sie aus der Dropdownliste Folgendes hinzu:

    • codecatalyst-eks-build-role

    • codecatalyst-eks-deploy-role

    Anmerkung

    Wenn Sie das sehenThe security token included in the request is invalid, liegt es möglicherweise daran, dass Sie nicht über die richtigen Berechtigungen verfügen. Um dieses Problem zu beheben, melden Sie sich ab und melden Sie sich mit dem AWS Konto wieder an, das Sie bei der Erstellung Ihres CodeCatalyst Bereichs verwendet haben. AWS

  9. Kehren Sie zur CodeCatalyst Konsole zurück und aktualisieren Sie die Seite.

    Die Rollen Build und Deploy sollten jetzt unter IAM-Rollen angezeigt werden.

    Diese Rollen sind jetzt für die Verwendung in CodeCatalyst Workflows verfügbar.

Schritt 7: Aktualisieren Sie das ConfigMap

Sie müssen die Bereitstellungsrolle, die Sie in Schritt 5: AWS Rollen erstellen der ConfigMap Kubernetes-Datei erstellt haben, hinzufügen, damit die Cluster-Aktion Deploy to Kubernetes (in Ihrem Workflow) auf Ihren Cluster zugreifen und mit ihm interagieren kann. Sie können eksctl oder verwenden, kubectl um diese Aufgabe auszuführen.

Um die ConfigMap Kubernetes-Datei mit eksctl zu konfigurieren
  • Geben Sie im Dev Environment-Terminal Folgendes ein:

    eksctl create iamidentitymapping --cluster codecatalyst-eks-cluster --arn arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role --group system:masters --username codecatalyst-eks-deploy-role --region us-west-2

    Wobei gilt:

    • codecatalyst-eks-clusterwird durch den Clusternamen des Amazon EKS-Clusters ersetzt.

    • arn:aws:iam: :111122223333:role/ codecatalyst-eks-deploy-role wird durch den ARN der Bereitstellungsrolle ersetzt, in der Sie erstellt haben. Schritt 5: AWS Rollen erstellen

    • codecatalyst-eks-deploy-role(neben) wird durch den Namen der Bereitstellungsrolle ersetzt, in der Sie sie --username erstellt haben. Schritt 5: AWS Rollen erstellen

      Anmerkung

      Wenn Sie sich entschieden haben, keine Bereitstellungsrolle zu erstellen, codecatalyst-eks-deploy-roleersetzen Sie sie durch den Namen der CodeCatalystWorkflowDevelopmentRole-spaceName Rolle. Weitere Informationen über diese Rolle finden Sie unter Schritt 5: AWS Rollen erstellen.

    • us-west-2 wird durch Ihre Region ersetzt.

    Einzelheiten zu diesem Befehl finden Sie unter IAM-Benutzer und -Rollen verwalten.

    Eine Meldung ähnlich der folgenden wird angezeigt:

    2023-06-09 00:58:29 [ℹ]  checking arn arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role against entries in the auth ConfigMap
    2023-06-09 00:58:29 [ℹ]  adding identity "arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role" to auth ConfigMap
Um die ConfigMap Kubernetes-Datei mit kubectl zu konfigurieren
  1. Geben Sie im Dev Environment-Terminal Folgendes ein:

    kubectl edit configmap -n kube-system aws-auth

    Die ConfigMap Datei wird auf dem Bildschirm angezeigt.

  2. Fügen Sie den Text in roter Kursivschrift hinzu:

    # Please edit the object below. Lines beginning with a '#' will be ignored,
    # and an empty file will abort the edit. If an error occurs while saving this file will be
    # reopened with the relevant failures.
    #
    apiVersion: v1
    data:
      mapRoles: |
        - groups:
          - system:bootstrappers
          - system:nodes
          rolearn: arn:aws:iam::111122223333:role/eksctl-codecatalyst-eks-cluster-n-NodeInstanceRole-16BC456ME6YR5
          username: system:node:{{EC2PrivateDNSName}}
        - groups:
          - system:masters
          rolearn: arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role
          username: codecatalyst-eks-deploy-role
      mapUsers: |
        []
    kind: ConfigMap
    metadata:
      creationTimestamp: "2023-06-08T19:04:39Z"
      managedFields:
      ...

    Wobei gilt:

    • arn:aws:iam: :111122223333:role/ codecatalyst-eks-deploy-role wird durch den ARN der Bereitstellungsrolle ersetzt, in der Sie erstellt haben. Schritt 5: AWS Rollen erstellen

    • codecatalyst-eks-deploy-role(neben) wird durch den Namen der Bereitstellungsrolle ersetzt, in der Sie sie username: erstellt haben. Schritt 5: AWS Rollen erstellen

      Anmerkung

      Wenn Sie sich entschieden haben, keine Bereitstellungsrolle zu erstellen, codecatalyst-eks-deploy-roleersetzen Sie sie durch den Namen der CodeCatalystWorkflowDevelopmentRole-spaceName Rolle. Weitere Informationen über diese Rolle finden Sie unter Schritt 5: AWS Rollen erstellen.

    Einzelheiten finden Sie unter Aktivieren des IAM-Prinzipalzugriffs auf Ihren Cluster im Amazon EKS-Benutzerhandbuch.

Sie haben jetzt der Bereitstellungsrolle und damit der Aktion Deploy to Amazon EKS system:masters Berechtigungen für Ihren Kubernetes-Cluster erteilt.

Schritt 8: Erstellen Sie einen Workflow und führen Sie ihn aus

In diesem Schritt erstellen Sie einen Workflow, der Ihre Quelldateien zu einem Docker-Image zusammenbaut und das Image dann in Tree-Pods in Ihrem Amazon EKS-Cluster bereitstellt.

Der Workflow besteht aus den folgenden Bausteinen, die nacheinander ausgeführt werden:

  • Ein Trigger — Dieser Trigger startet die Workflow-Ausführung automatisch, wenn Sie eine Änderung an Ihr Quell-Repository übertragen. Weitere Informationen zu Auslösern finden Sie unter Automatisches Starten einer Workflow-Ausführung mit Triggern.

  • Eine Build-Aktion (BuildBackend) — Beim Auslösen erstellt die Aktion das Docker-Image mithilfe der Dockerfile und überträgt das Image an Amazon ECR. Die Build-Aktion aktualisiert auch die $IMAGE_TAG Variablen $REPOSITORY_URI und in der deployment.yaml Datei mit den richtigen Werten und erstellt dann ein Ausgabeartefakt aus dieser Datei und allen anderen Dateien im Ordner. Kubernetes In diesem Tutorial ist die einzige Datei im Kubernetes Ordner, deployment.yaml aber Sie könnten weitere Dateien hinzufügen. Das Artefakt wird als Eingabe für die Bereitstellungsaktion verwendet, die als Nächstes folgt.

    Weitere Informationen zur Build-Aktion finden Sie unterBauen mit Workflows.

  • Eine Bereitstellungsaktion (DeployToEKS) — Nach Abschluss der Build-Aktion sucht die Bereitstellungsaktion nach dem von der Build-Aktion (Manifests) generierten Ausgabeartefakt und findet die darin enthaltene deployment.yaml Datei. Die Aktion folgt dann den Anweisungen in der deployment.yaml Datei, um drei Pods auszuführen, von denen jeder ein einzelnes „Hello, World!“ enthält Docker-Container — in Ihrem Amazon EKS-Cluster.

So erstellen Sie ein Workflow
  1. Gehen Sie zur Konsole. CodeCatalyst

  2. Navigiere zu deinem Projekt (codecatalyst-eks-project).

  3. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

  4. Wählen Sie Workflow erstellen aus.

  5. Wählen Sie für Quell-Repository die Optioncodecatalyst-eks-source-repository.

  6. Wählen Sie für Branch die Optionmain.

  7. Wählen Sie Erstellen.

  8. Löschen Sie den YAML-Beispielcode.

  9. Fügen Sie den folgenden YAML-Code hinzu, um eine neue Workflow-Definitionsdatei zu erstellen:

    Anmerkung

    Weitere Informationen zur Workflow-Definitionsdatei finden Sie unterYAML-Workflow-Definition.

    Name: codecatalyst-eks-workflow SchemaVersion: 1.0 Triggers: - Type: PUSH Branches: - main Actions: BuildBackend: Identifier: aws/build@v1 Environment: Name: codecatalyst-eks-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-eks-build-role Inputs: Sources: - WorkflowSource Variables: - Name: REPOSITORY_URI Value: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo - Name: IMAGE_TAG Value: ${WorkflowSource.CommitId} Configuration: Steps: #pre_build: - Run: echo Logging in to Amazon ECR... - Run: aws --version - Run: aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com #build: - Run: echo Build started on `date` - Run: echo Building the Docker image... - Run: docker build -t $REPOSITORY_URI:latest . - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG #post_build: - Run: echo Build completed on `date` - Run: echo Pushing the Docker images... - Run: docker push $REPOSITORY_URI:latest - Run: docker push $REPOSITORY_URI:$IMAGE_TAG # Replace the variables in deployment.yaml - Run: find Kubernetes/ -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g" - Run: find Kubernetes/ -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g" - Run: cat Kubernetes/* # The output artifact will be a zip file that contains Kubernetes manifest files. Outputs: Artifacts: - Name: Manifests Files: - "Kubernetes/*" DeployToEKS: DependsOn: - BuildBackend Identifier: aws/kubernetes-deploy@v1 Environment: Name: codecatalyst-eks-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-eks-deploy-role Inputs: Artifacts: - Manifests Configuration: Namespace: default Region: us-west-2 Cluster: codecatalyst-eks-cluster Manifests: Kubernetes/

    Ersetzen Sie im vorherigen Code:

    • Beide Instanzen von codecatalyst-eks-environmentmit dem Namen der Umgebung, in der Sie erstellt habenVoraussetzungen.

    • Beide Instanzen von codecatalyst-account-connectionmit dem Anzeigenamen Ihrer Kontoverbindung. Der Anzeigename kann eine Zahl sein. Weitere Informationen finden Sie unter Schritt 6: AWS Rollen hinzufügen CodeCatalyst.

    • codecatalyst-eks-build-rolemit dem Namen der Build-Rolle, in der Sie sie erstellt habenSchritt 5: AWS Rollen erstellen.

    • 111122223333.dkr. ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo(in der Value: Eigenschaft) mit der URI des Amazon ECR-Repositorys, in dem Sie es erstellt haben. Schritt 3: Erstellen Sie ein Amazon ECR-Image-Repository

    • 111122223333.dkr. ecr.us-west-2.amazonaws.com (im Run: aws ecr Befehl) mit der URI des Amazon ECR-Repositorys ohne das Bildsuffix (). /codecatalyst-eks-image-repo

    • codecatalyst-eks-deploy-rolemit dem Namen der Bereitstellungsrolle, in der Sie sie erstellt haben. Schritt 5: AWS Rollen erstellen

    • Beide Instanzen von us-west-2 mit Ihrem AWS Regionalcode. Eine Liste der Regionalcodes finden Sie unter Regionale Endpunkte in der. Allgemeine AWS-Referenz

    Anmerkung

    Wenn Sie sich entschieden haben, keine Build- und Deploy-Rollen zu erstellen, ersetzen Sie codecatalyst-eks-build-roleund codecatalyst-eks-deploy-roledurch den Namen der CodeCatalystWorkflowDevelopmentRole-spaceName Rolle. Weitere Informationen über diese Rolle finden Sie unter Schritt 5: AWS Rollen erstellen.

  10. (Optional) Wählen Sie „Validieren“, um sicherzustellen, dass der YAML-Code gültig ist, bevor Sie ihn festschreiben.

  11. Wählen Sie Commit (Übergeben).

  12. Geben Sie im Dialogfeld „Workflow bestätigen“ Folgendes ein:

    1. Entfernen Sie bei Nachricht bestätigen den Text und geben Sie Folgendes ein:

      Add first workflow
    2. Wählen Sie für Repositorycodecatalyst-eks-source-repository.

    3. Wählen Sie als Branch-Name die Option main aus.

    4. Wählen Sie Commit (Übergeben).

    Sie haben jetzt einen Workflow erstellt. Eine Workflow-Ausführung wird aufgrund des oben im Workflow definierten Triggers automatisch gestartet. Insbesondere wenn Sie die workflow.yaml Datei in Ihr Quell-Repository übertragen (und per Push) haben, hat der Trigger die Workflow-Ausführung gestartet.

Um den Fortschritt der Workflow-Ausführung zu sehen
  1. Wählen Sie im Navigationsbereich der CodeCatalyst Konsole CI/CD und dann Workflows aus.

  2. Wählen Sie den Workflow aus, den Sie gerade erstellt haben,. codecatalyst-eks-workflow

  3. Wählen Sie BuildBackend, ob Sie den Baufortschritt sehen möchten.

  4. Wählen Sie DeployToEKS, um den Fortschritt der Bereitstellung zu sehen.

    Weitere Informationen zum Anzeigen von Ausführungsdetails finden Sie unterStatus und Details der Workflow-Ausführung anzeigen.

Um die Bereitstellung zu überprüfen
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie links unten Load Balancers aus.

  3. Wählen Sie den Load Balancer aus, der als Teil Ihrer Kubernetes-Bereitstellung erstellt wurde. Wenn Sie sich nicht sicher sind, welchen Load Balancer Sie wählen sollen, suchen Sie auf der Registerkarte „Tags“ nach den folgenden Tags:

    • kubernetes.io/service-name

    • kubernetes.io/cluster/ekstutorialcluster

  4. Wählen Sie den richtigen Load Balancer aus und wählen Sie den Tab Beschreibung aus.

  5. Kopieren Sie den DNS-Namenswert und fügen Sie ihn in die Adressleiste Ihres Browsers ein.

    Das „Hallo, Welt!“ In Ihrem Browser wird eine Webseite angezeigt, die darauf hinweist, dass Sie Ihre Anwendung erfolgreich bereitgestellt haben.

Schritt 9: Nehmen Sie eine Änderung an Ihren Quelldateien vor

In diesem Abschnitt nehmen Sie eine Änderung an der index.html Datei in Ihrem Quell-Repository vor. Diese Änderung veranlasst den Workflow, ein neues Docker-Image zu erstellen, es mit einer Commit-ID zu kennzeichnen, es an Amazon ECR weiterzuleiten und es in Amazon ECS bereitzustellen.

Um die Datei index.html zu ändern
  1. Gehen Sie zu Ihrer Entwicklungsumgebung.

  2. Wechseln Sie an der Terminal-Eingabeaufforderung zu Ihrem Quell-Repository:

    cd /projects/codecatalyst-eks-source-repository
  3. Rufen Sie die neuesten Workflow-Änderungen ab:

    git pull
  4. Öffnen Sie codecatalyst-eks-source-repository/public-html/index.html.

  5. Ändern Sie in Zeile 14 den Hello, World! Text inTutorial complete!.

  6. Hinzufügen, Festschreiben und Push:

    git add . git commit -m "update index.html title" git push

    Eine Workflow-Ausführung wird automatisch gestartet.

  7. (Optional) Geben Sie ein:

    git show HEAD

    Notieren Sie sich die Commit-ID für die index.html Änderung. Diese Commit-ID wird dem Docker-Image zugeordnet, das durch die Workflow-Ausführung bereitgestellt wird, die Sie gerade gestartet haben.

  8. Beobachten Sie den Fortschritt der Bereitstellung:

    1. Wählen Sie in der CodeCatalyst Konsole im Navigationsbereich CI/CD und dann Workflows aus.

    2. Wählen Siecodecatalyst-eks-workflow, ob Sie die letzte Ausführung anzeigen möchten.

    3. Wählen Sie und DeployToEKS BuildBackend, um den Fortschritt der Workflow-Ausführung zu sehen.

  9. Stellen Sie wie folgt sicher, dass Ihre Anwendung aktualisiert wurde:

    1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Wählen Sie links unten Load Balancers aus.

    3. Wählen Sie den Load Balancer aus, der als Teil Ihrer Kubernetes-Bereitstellung erstellt wurde.

    4. Kopieren Sie den DNS-Namenswert und fügen Sie ihn in die Adressleiste Ihres Browsers ein.

      Das 'Tutorial ist abgeschlossen! ' In Ihrem Browser wird eine Webseite angezeigt, die darauf hinweist, dass Sie erfolgreich eine neue Version Ihrer Anwendung bereitgestellt haben.

  10. (Optional) Wechseln Sie in AWS zur Amazon ECR-Konsole und überprüfen Sie, ob das neue Docker-Image mit der Commit-ID aus Schritt 7 dieses Verfahrens gekennzeichnet wurde.

Bereinigen

Sie sollten Ihre Umgebung bereinigen, damit Ihnen die in diesem Tutorial verwendeten Speicher- und Rechenressourcen nicht unnötig in Rechnung gestellt werden.

So räumen Sie auf
  1. Löschen Sie Ihren Cluster:

    1. Geben Sie im Dev Environment-Terminal Folgendes ein:

      eksctl delete cluster --region=us-west-2 --name=codecatalyst-eks-cluster

      Wobei gilt:

      • us-west-2 wird durch Ihre Region ersetzt.

      • codecatalyst-eks-clusterwird durch den Namen des Clusters ersetzt, den Sie erstellt haben.

      Nach 5-10 Minuten werden der Cluster und die zugehörigen Ressourcen gelöscht, einschließlich, aber nicht beschränkt auf AWS CloudFormation Stacks, Knotengruppen (in Amazon EC2) und Load Balancer.

    Wichtig

    Wenn der eksctl delete cluster Befehl nicht funktioniert, müssen Sie möglicherweise Ihre AWS Anmeldeinformationen oder Ihre Anmeldeinformationen aktualisieren. kubectl Wenn Sie sich nicht sicher sind, welche Anmeldeinformationen Sie aktualisieren sollen, aktualisieren Sie zuerst die AWS Anmeldeinformationen. Informationen zum Aktualisieren Ihrer AWS Anmeldeinformationen finden Sie unterWie behebe ich die Fehler „Anmeldeinformationen konnten nicht gefunden werden“ und ExpiredToken „“?. Informationen zum Aktualisieren Ihrer kubectl Anmeldeinformationen finden Sie unterWie behebe ich die Fehler „Es konnte keine Verbindung zum Server hergestellt werden“?.

  2. Bereinigen Sie in der AWS Konsole wie folgt:

    1. Löschen codecatalyst-eks-image-repo Sie in Amazon ECR.

    2. Löschen Sie im IAM Identity Center:

      1. codecatalyst-eks-user

      2. codecatalyst-eks-permission-set

    3. Löschen Sie in IAM:

      • codecatalyst-eks-build-role

      • codecatalyst-eks-deploy-role

      • codecatalyst-eks-build-policy

      • codecatalyst-eks-deploy-policy

  3. Bereinigen Sie in der CodeCatalyst Konsole wie folgt:

    1. Löschencodecatalyst-eks-workflow.

    2. Löschencodecatalyst-eks-environment.

    3. Löschencodecatalyst-eks-source-repository.

    4. Löschen Sie Ihre Entwicklungsumgebung.

    5. Löschencodecatalyst-eks-project.

In diesem Tutorial haben Sie gelernt, wie Sie mithilfe eines CodeCatalyst Workflows und einer Cluster-Aktion „Deploy to Kubernetes“ eine Anwendung für einen Amazon EKS-Service bereitstellen.