Tutorial: Eine Anwendung auf Amazon bereitstellen 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: Eine Anwendung auf Amazon bereitstellen EKS

In diesem Tutorial erfahren Sie, wie Sie eine containerisierte Anwendung mithilfe eines CodeCatalyst Amazon-Workflows, Amazon und einiger anderer Services in Amazon Elastic Kubernetes Service bereitstellen. EKS 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, z. B. das Einrichten eines Entwicklungscomputers und eines EKS Amazon-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 aufgefordert, 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 EKS Amazon-Setup für Sie durchführt. Sie müssen den EKSApp-Deployment-Blueprint verwenden. Weitere Informationen finden Sie unter Ein Projekt mit einem Blueprint erstellen.

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen:

  • Sie benötigen einen CodeCatalyst Amazon-Bereich mit einem verbundenen AWS Konto. Weitere Informationen finden Sie unter Einen Raum schaffen.

  • In Ihrem Bereich benötigen Sie ein leeres Projekt mit dem Namen:

    codecatalyst-eks-project

    Verwenden Sie die Option Von vorne beginnen, um dieses Projekt zu erstellen.

    Weitere Informationen finden Sie unter Ein leeres Projekt in Amazon erstellen CodeCatalyst.

  • In Ihrem Projekt benötigen Sie ein leeres CodeCatalyst Quell-Repository mit dem Namen:

    codecatalyst-eks-source-repository

    Weitere Informationen finden Sie unter Speichern Sie Code mit Quell-Repositorys in und arbeiten Sie gemeinsam daran CodeCatalyst.

  • In Ihrem Projekt benötigen Sie eine CodeCatalyst CI/CD-Umgebung (keine Entwicklungsumgebung) namens:

    codecatalyst-eks-environment

    Konfigurieren Sie diese Umgebung wie folgt:

    • Wählen Sie einen beliebigen Typ, z. B. „Keine Produktion“.

    • Connect dein AWS Konto damit.

    • Wählen Sie für die IAMStandardrolle eine beliebige Rolle aus. Sie werden später eine andere Rolle angeben.

    Weitere Informationen finden Sie unter Einsatz in AWS-Konten und VPCs.

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. Eine ausführliche Anleitung 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 Source 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 weitere Informationen unter Konfiguration von AWS CLI im AWS Command Line Interface Benutzerhandbuch.

  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. Du kannst überprüfen, welches Konto verbunden ist, indem du zu deinem Bereich navigierst und den Tab AWSKonten auswählst. 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 vorhanden ist.

    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.

    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 dem AWS ZugriffsportalURL, einem Benutzernamen und einem Einmalkennwort.

    13. Klicken Sie auf Close (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.

    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.

    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.

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

    7. Wählen Sie Weiter.

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

      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 das AWS Zugangsportal URL 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 Sie diese Informationen nicht haben, gehen Sie zur codecatalyst-eks-user Detailseite in IAM Identity Center 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 das AWS Zugangsportal URL 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"

      ... wo session-token ist eine lange zufällige Zeichenfolge.

  5. Fügen Sie die Zugriffsschlüssel und das AWS CLI Sitzungstoken wie folgt zur 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 EKS Amazon-Cluster

In diesem Abschnitt erstellen Sie einen Cluster in AmazonEKS. 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 nicht unterstütztEKS.

Bevor Sie beginnen

Stellen Sie sicher, dass Sie die folgenden Aufgaben auf Ihrem Entwicklungscomputer ausgeführt 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 EKS Amazon-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-cluster wird durch den Namen ersetzt, den Sie Ihrem Cluster geben möchten.

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

    Nach 10 bis 20 Minuten erscheint eine Meldung, die der folgenden ähnelt:

    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 ECR Amazon-Image-Repository

In diesem Abschnitt erstellen Sie ein privates Image-Repository in Amazon Elastic Container Registry (AmazonECR). 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 zu erstellen ECR
  1. Gehen Sie zu Ihrer Entwicklungsumgebung.

  2. Erstellen Sie ein leeres Repository in AmazonECR:

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

    Ersetzen codecatalyst-eks-image-repo mit dem Namen, den Sie dem ECR Amazon-Repository geben möchten.

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

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

    aws ecr describe-repositories \ --repository-names codecatalyst-eks-image-repo
  4. Notieren Sie sich den “repositoryUri”: Wert, zum Beispiel111122223333.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 bereit. EC2 Der Load Balancer stellt Ihnen einen mit dem Internet verbundenen öffentlichen URL und standardmäßigen Port (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 Text „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 an Amazon ECR und Amazon zu schreibenEC2.

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

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

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. Das brauchst du 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 das 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

    Wo arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy wird durch die ARN Build-Richtlinie ersetzt, die Sie zuvor angegeben 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. Das brauchst du 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

    Wo arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy wird durch die ARN Bereitstellungsrichtlinie ersetzt, 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. Das brauchst du ARN später.

Sie haben jetzt Build- und Deploy-Rollen erstellt und diese notiertARNs.

Schritt 6: AWS Rollen hinzufügen zu 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 Rollen verwalten aus.

    Die Seite IAMRolle 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 aus, in der Sie sie erstellt haben IAM.

    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 IAMRollen 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-cluster wird durch den Clusternamen des EKS Amazon-Clusters ersetzt.

    • arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role wird durch die Rolle ARN der Bereitstellungsrolle ersetzt, in der Sie sie erstellt habenSchritt 5: AWS Rollen erstellen.

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

      Anmerkung

      Wenn Sie sich entschieden haben, keine Bereitstellungsrolle zu erstellen, ersetzen Sie codecatalyst-eks-deploy-role mit dem 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 IAMBenutzer 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 die Rolle ARN der Bereitstellungsrolle ersetzt, die Sie in Schritt 5: AWS Rollen erstellen erstellt haben.

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

      Anmerkung

      Wenn Sie sich entschieden haben, keine Bereitstellungsrolle zu erstellen, ersetzen Sie codecatalyst-eks-deploy-role mit dem 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 EKSAmazon-Benutzerhandbuch.

Sie haben jetzt der Bereitstellungsrolle und damit der EKS Aktion Deploy to Amazon 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 EKS Amazon-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 mithilfe von 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-Cluster. EKS

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 Create (Erstellen) aus.

  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 unterYAMLWorkflow-Definition.

    Anmerkung

    Im folgenden YAML Code können Sie die Connections: Abschnitte weglassen, wenn Sie möchten. Wenn Sie diese Abschnitte weglassen, müssen Sie sicherstellen, dass die im Feld Standardrolle angegebene IAM Rolle in Ihrer Umgebung die unter beschriebenen Berechtigungen und Vertrauensrichtlinien für beide Rollen enthält. Schritt 6: AWS Rollen hinzufügen zu CodeCatalyst Weitere Informationen zum Einrichten einer Umgebung mit einer IAM Standardrolle finden Sie unterErstellen einer Umgebung.

    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-environment mit dem Namen der Umgebung, in der Sie erstellt habenVoraussetzungen.

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

    • codecatalyst-eks-build-role mit 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 dem URI des ECR Amazon-Repositorys, in dem Sie es erstellt habenSchritt 3: Erstellen Sie ein ECR Amazon-Image-Repository.

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

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

    • 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 Rollen zu erstellen, zu erstellen und bereitzustellen, ersetzen Sie codecatalyst-eks-build-role and codecatalyst-eks-deploy-role mit dem 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 bestätigen.

  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 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 DeployToEKSdiese Option, 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 EC2 Amazon-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 DNSNamenswert 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 auf 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 BuildBackend, DeployToEKSum den Fortschritt der Workflow-Ausführung zu sehen.

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

    1. Öffnen Sie die EC2 Amazon-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 DNSNamenswert 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 zur ECR Amazon-Konsole und überprüfen Sie, ob das neue Docker-Image mit der Commit-ID aus Schritt 7 dieses Verfahrens gekennzeichnet wurde. AWS

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-cluster wird 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 AmazonEC2) und Load Balancer.

    Wichtig

    Wenn der eksctl delete cluster Befehl nicht funktioniert, müssen Sie möglicherweise Ihre AWS Anmeldeinformationen oder Ihre kubectl Anmeldeinformationen aktualisieren. 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 Sie in Amazon ECRcodecatalyst-eks-image-repo.

    2. Löschen Sie in IAM Identity Center:

      1. codecatalyst-eks-user

      2. codecatalyst-eks-permission-set

    3. InIAM, löschen Sie:

      • 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 EKS Amazon-Service bereitstellen.