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.
Themen
- Voraussetzungen
- Schritt 1: Richten Sie Ihren Entwicklungscomputer ein
- Schritt 2: Erstellen Sie einen EKS Amazon-Cluster
- Schritt 3: Erstellen Sie ein ECR Amazon-Image-Repository
- Schritt 4: Quelldateien hinzufügen
- Schritt 5: AWS Rollen erstellen
- Schritt 6: AWS Rollen hinzufügen zu CodeCatalyst
- Schritt 7: Aktualisieren Sie das ConfigMap
- Schritt 8: Erstellen Sie einen Workflow und führen Sie ihn aus
- Schritt 9: Nehmen Sie eine Änderung an Ihren Quelldateien vor
- Bereinigen
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üreksctl
-
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:
-
Erstellen einer Entwicklungsumgebung in dieser Anleitung.
-
Installation von kubectl im EKSAmazon-Benutzerhandbuch.
-
Installation oder Aktualisierung von eksctl im EKSAmazon-Benutzerhandbuch.
-
Installation oder Aktualisierung der neuesten Version von, die AWS CLI im AWS Command Line Interface Benutzerhandbuch beschrieben ist.
Um eine Entwicklungsumgebung zu starten
Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/
. -
Navigieren Sie zu Ihrem Projekt,
codecatalyst-eks-project
. -
Wählen Sie im Navigationsbereich Code und dann Source Repositories aus.
-
Wählen Sie den Namen Ihres Quell-Repositorys,
codecatalyst-eks-source-repository
. -
Wählen Sie oben Create Dev Environment und dann AWS Cloud9 (im Browser) aus.
-
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
-
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
-
Geben Sie ein:
chmod +x ./kubectl
-
Geben Sie ein:
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
-
Geben Sie ein:
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
-
Geben Sie ein:
kubectl version --short --client
-
Vergewissern Sie sich, dass eine Version angezeigt wird.
Sie haben es jetzt installiert
kubectl
.
Um eksctl zu installieren und zu konfigurieren
Anmerkung
eksctl
ist nicht unbedingt erforderlich, da Sie stattdessen verwenden kubectl
können. eksctl
Hat jedoch den Vorteil, dass ein Großteil der Clusterkonfiguration automatisiert wird, und ist daher das für dieses Tutorial empfohlene Tool.
-
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
-
Geben Sie ein:
sudo cp /tmp/eksctl /usr/bin
-
Geben Sie ein:
eksctl version
-
Vergewissern Sie sich, dass eine Version angezeigt wird.
Sie haben es jetzt installiert
eksctl
.
Um zu überprüfen, ob das installiert AWS CLI ist
-
Geben Sie im Dev Environment-Terminal Folgendes ein:
aws --version
-
Ü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.
-
Erstellen Sie wie folgt einen IAM Identity Center-Benutzer:
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.
-
Wählen Sie im Navigationsbereich Users (Benutzer) und dann Add User (Benutzer hinzufügen) aus.
-
Geben Sie im Feld Nutzername Folgendes ein:
codecatalyst-eks-user
-
Wählen Sie unter Passwort die Option Einmalpasswort generieren aus, das Sie mit diesem Benutzer teilen können.
-
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.
-
Geben Sie im Feld Vorname Folgendes ein:
codecatalyst-eks-user
-
Geben Sie im Feld Nachname Folgendes ein:
codecatalyst-eks-user
-
Behalten Sie im Feld Anzeigename Folgendes bei:
codecatalyst-eks-user codecatalyst-eks-user
-
Wählen Sie Weiter.
-
Wählen Sie auf der Seite „Benutzer zu Gruppen hinzufügen“ die Option Weiter aus.
-
Ü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.
-
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.
-
Klicken Sie auf Close (Schließen).
-
Erstellen Sie wie folgt einen Berechtigungssatz:
-
Wählen Sie im Navigationsbereich die Option Berechtigungssätze und dann Berechtigungssatz erstellen aus.
-
Wählen Sie Vordefinierter Berechtigungssatz und dann aus AdministratorAccess. Diese Richtlinie gewährt allen volle Berechtigungen AWS-Services.
-
Wählen Sie Weiter.
-
Entfernen Sie im Feld Name des Berechtigungssatzes den Wert
AdministratorAccess
und geben Sie Folgendes ein:codecatalyst-eks-permission-set
-
Wählen Sie Weiter.
-
Überprüfen Sie auf der Seite Überprüfen und erstellen die Informationen und wählen Sie Erstellen aus.
-
-
Weisen Sie den Berechtigungssatz wie folgt zu
codecatalyst-eks-user
:-
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.
-
Wählen Sie Benutzer oder Gruppen zuweisen aus.
-
Wählen Sie die Registerkarte Users.
-
Aktivieren Sie das Kontrollkästchen neben
codecatalyst-eks-user
. -
Wählen Sie Weiter.
-
Aktivieren Sie das Kontrollkästchen neben
codecatalyst-eks-permission-set
. -
Wählen Sie Weiter.
-
Überprüfen Sie die Informationen und wählen Sie Senden.
Sie haben sie nun
codecatalyst-eks-permission-set
zugewiesencodecatalyst-eks-user
und an Sie AWS-Konto gebunden.
-
-
Rufen Sie
codecatalyst-eks-user
die Zugriffsschlüssel und das Sitzungstoken wie folgt ab:-
Stellen Sie sicher, dass Sie das AWS Zugangsportal URL sowie den Benutzernamen und das Einmalpasswort für haben
codecatalyst-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. -
Melden Sie sich ab AWS.
-
Fügen Sie das AWS Zugangsportal URL in die Adressleiste Ihres Browsers ein.
-
Melden Sie sich an mit:
-
Nutzername:
codecatalyst-eks-user
-
Passwort:
one-time-password
-
-
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.
-
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. -
Wählen Sie neben
codecatalyst-eks-permission-set
Befehlszeile oder programmatischer Zugriff aus. -
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.
-
-
Fügen Sie die Zugriffsschlüssel und das AWS CLI Sitzungstoken wie folgt zur hinzu:
-
Kehren Sie zu Ihrer CodeCatalyst Entwicklungsumgebung zurück.
-
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 „AktualisierenObtain 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:
-
Erste Schritte mit eksctl im Amazon-Benutzerhandbuch EKS
or
-
Erste Schritte mit der Konsole und AWS CLI im EKSAmazon-Benutzerhandbuch (dieses Thema enthält
kubectl
Anweisungen zum Erstellen des Clusters)
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.
-
Gehen Sie zu Ihrer Entwicklungsumgebung.
-
Erstellen Sie einen Cluster und Knoten:
eksctl create cluster --name
codecatalyst-eks-cluster
--regionus-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. -
-
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
-
Gehen Sie zu Ihrer Entwicklungsumgebung.
-
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 haben
codecatalyst-eks-image-repo
. -
Zeigen Sie die Details des ECR Amazon-Repositorys an:
aws ecr describe-repositories \ --repository-names codecatalyst-eks-image-repo
-
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
-
Gehen Sie zu Ihrer Entwicklungsumgebung.
-
Erstellen Sie in
codecatalyst-eks-source-repository
einen Ordner mit dem Namenpublic-html
. -
Erstellen Sie in
/public-html
eine Datei namensindex.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>
-
Geben Sie an der Terminal-Eingabeaufforderung Folgendes ein:
cd /projects/codecatalyst-eks-source-repository
-
Hinzufügen, Festschreiben und Push:
git add . git commit -m "add public-html/index.html" git push
Das
index.html
wird Ihrem Repository in einempublic-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
-
Erstellen Sie in
codecatalyst-eks-source-repository
eine Datei namensDockerfile
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. -
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
-
Erstellen Sie in einen
codecatalyst-eks-source-repository
Ordner mit dem Namen.Kubernetes
-
Erstellen Sie in
/Kubernetes
eine Datei namensdeployment.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
-
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-
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 spaceName
CodeCatalystWorkflowDevelopmentRole-
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.spaceName
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
-
Gehen Sie zu Ihrer Entwicklungsumgebung.
-
Erstellen Sie im
Cloud9-
Verzeichnis eine Datei namenslong-string
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-
Verzeichnis eine Datei namenslong-string
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-
Verzeichnis eine Datei namenslong-string
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
-
Geben Sie im Dev Environment-Terminal Folgendes ein:
cd /projects
-
Geben Sie ein:
aws iam create-policy \ --policy-name codecatalyst-eks-build-policy \ --policy-document file://codecatalyst-eks-build-policy.json
-
Drücken Sie die Eingabetaste.
-
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
-
Geben Sie ein:
aws iam create-policy \ --policy-name codecatalyst-eks-deploy-policy \ --policy-document file://codecatalyst-eks-deploy-policy.json
-
Drücken Sie die Eingabetaste.
-
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
-
Geben Sie ein:
aws iam create-role \ --role-name codecatalyst-eks-build-role \ --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
-
Drücken Sie die Eingabetaste.
-
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. -
Drücken Sie die Eingabetaste.
-
Geben Sie an der Terminal-Eingabeaufforderung Folgendes ein:
aws iam get-role \ --role-name codecatalyst-eks-build-role
-
Drücken Sie die Eingabetaste.
-
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
-
Geben Sie ein:
aws iam create-role \ --role-name codecatalyst-eks-deploy-role \ --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
-
Drücken Sie die Eingabetaste.
-
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. -
Drücken Sie die Eingabetaste.
-
Geben Sie ein:
aws iam get-role \ --role-name codecatalyst-eks-deploy-role
-
Drücken Sie die Eingabetaste.
-
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
-
Navigieren Sie in der CodeCatalyst Konsole zu Ihrem Bereich.
-
Wählen Sie oben Einstellungen aus.
-
Wählen Sie im Navigationsbereich AWS Konten aus. Eine Liste von Konten wird angezeigt.
-
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.
-
Wählen Sie den Anzeigenamen.
-
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.
-
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 diecodecatalyst.amazonaws.com
Dienstprinzipale umfasst. -
Fügen Sie aus der Dropdownliste Folgendes hinzu:
-
codecatalyst-eks-build-role
-
codecatalyst-eks-deploy-role
Anmerkung
Wenn Sie das sehen
The 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 -
-
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
--arnarn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role
--group system:masters --usernamecodecatalyst-eks-deploy-role
--regionus-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 derCodeCatalystWorkflowDevelopmentRole-
Rolle. Weitere Informationen über diese Rolle finden Sie unter Schritt 5: AWS Rollen erstellen.spaceName
-
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
-
Geben Sie im Dev Environment-Terminal Folgendes ein:
kubectl edit configmap -n kube-system aws-auth
Die ConfigMap Datei wird auf dem Bildschirm angezeigt.
-
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 derCodeCatalystWorkflowDevelopmentRole-
Rolle. Weitere Informationen über diese Rolle finden Sie unter Schritt 5: AWS Rollen erstellen.spaceName
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 derdeployment.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 imKubernetes
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 enthaltenedeployment.yaml
Datei. Die Aktion folgt dann den Anweisungen in derdeployment.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
-
Gehen Sie zur Konsole. CodeCatalyst
-
Navigiere zu deinem Projekt (
codecatalyst-eks-project
). -
Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.
-
Wählen Sie Workflow erstellen aus.
-
Wählen Sie für Quell-Repository die Option
codecatalyst-eks-source-repository
. -
Wählen Sie für Branch die Option
main
. -
Wählen Sie Create (Erstellen) aus.
-
Löschen Sie den YAML Beispielcode.
-
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 --regionus-west-2
| docker login --username AWS --password-stdin111122223333.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 derValue:
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
(imRun: 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
andcodecatalyst-eks-deploy-role
mit dem Namen derCodeCatalystWorkflowDevelopmentRole-
Rolle. Weitere Informationen über diese Rolle finden Sie unter Schritt 5: AWS Rollen erstellen.spaceName
-
-
(Optional) Wählen Sie „Validieren“, um sicherzustellen, dass der YAML Code gültig ist, bevor Sie ihn bestätigen.
-
Wählen Sie Commit (Übergeben).
-
Geben Sie im Dialogfeld „Workflow bestätigen“ Folgendes ein:
-
Entfernen Sie bei Nachricht bestätigen den Text und geben Sie Folgendes ein:
Add first workflow
-
Wählen Sie für Repository
codecatalyst-eks-source-repository
. -
Wählen Sie als Branch-Name main aus.
-
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
-
Wählen Sie im Navigationsbereich der CodeCatalyst Konsole CI/CD und dann Workflows aus.
-
Wählen Sie den Workflow aus, den Sie gerade erstellt haben,.
codecatalyst-eks-workflow
-
Wählen Sie BuildBackend, ob Sie den Baufortschritt sehen möchten.
-
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
Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie links unten Load Balancers aus.
-
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
-
-
Wählen Sie den richtigen Load Balancer aus und wählen Sie den Tab Beschreibung aus.
-
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
-
Gehen Sie zu Ihrer Entwicklungsumgebung.
-
Wechseln Sie an der Terminal-Eingabeaufforderung zu Ihrem Quell-Repository:
cd /projects/codecatalyst-eks-source-repository
-
Rufen Sie die neuesten Workflow-Änderungen ab:
git pull
-
Öffnen Sie
codecatalyst-eks-source-repository/public-html/index.html
. -
Ändern Sie in Zeile 14 den
Hello, World!
Text inTutorial complete!
. -
Hinzufügen, Festschreiben und Push:
git add . git commit -m "update index.html title" git push
Eine Workflow-Ausführung wird automatisch gestartet.
-
(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. -
Beobachten Sie den Fortschritt der Bereitstellung:
-
Wählen Sie in der CodeCatalyst Konsole im Navigationsbereich CI/CD und dann Workflows aus.
-
Wählen Sie
codecatalyst-eks-workflow
, ob Sie die letzte Ausführung anzeigen möchten. -
Wählen Sie und BuildBackend, DeployToEKSum den Fortschritt der Workflow-Ausführung zu sehen.
-
-
Stellen Sie wie folgt sicher, dass Ihre Anwendung aktualisiert wurde:
Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie links unten Load Balancers aus.
-
Wählen Sie den Load Balancer aus, der als Teil Ihrer Kubernetes-Bereitstellung erstellt wurde.
-
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.
-
(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
-
Löschen Sie Ihren Cluster:
-
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 Ihrekubectl
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 Ihrerkubectl
Anmeldeinformationen finden Sie unterWie behebe ich die Fehler „Es konnte keine Verbindung zum Server hergestellt werden“?. -
-
Bereinigen Sie in der AWS Konsole wie folgt:
-
Löschen Sie in Amazon ECR
codecatalyst-eks-image-repo
. -
Löschen Sie in IAM Identity Center:
-
codecatalyst-eks-user
-
codecatalyst-eks-permission-set
-
-
InIAM, löschen Sie:
-
codecatalyst-eks-build-role
-
codecatalyst-eks-deploy-role
-
codecatalyst-eks-build-policy
-
codecatalyst-eks-deploy-policy
-
-
-
Bereinigen Sie in der CodeCatalyst Konsole wie folgt:
-
Löschen
codecatalyst-eks-workflow
. -
Löschen
codecatalyst-eks-environment
. -
Löschen
codecatalyst-eks-source-repository
. -
Löschen Sie Ihre Entwicklungsumgebung.
-
Löschen
codecatalyst-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.