Ressourcen in einer Flotte bereitstellen
In dieser Anleitung erfahren Sie, wie Sie mit einem Flottenpaket Kubernetes-Ressourcenmanifeste in einer Flotte von Clustern bereitstellen. Mit GitOps-Tools wie den Flottenpaketen von Config Sync können Sie die Konfigurationsverwaltung für eine große Anzahl von Clustern skalieren.
In dieser Anleitung führen Sie die folgenden Aufgaben aus:
- Git-Repository mit Cloud Build verbinden
- Cluster erstellen und bei einer Flotte registrieren
- Config Sync als Flottenstandard installieren
- Ressourcen aus Ihrem Repository in Ihrer Clusterflotte bereitstellen
Hinweis
-
Installieren Sie die Google Cloud CLI.
-
Konfigurieren Sie die gcloud CLI für die Verwendung Ihrer föderierten Identität.
Weitere Informationen finden Sie unter Mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Cloud de Confiance Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Cloud de Confiance -Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Cloud de Confiance -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Cloud de Confiance Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Cloud de Confiance .
-
Prüfen Sie, ob für Ihr Cloud de Confiance Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die APIs für GKE, Config Delivery (Fleet-Pakete), Cloud Build und Developer Connect:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable container.googleapis.com
configdelivery.googleapis.com cloudbuild.googleapis.com developerconnect.googleapis.com - Ein GitHub-Konto erstellen oder Zugriff darauf haben.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Cloud de Confiance by S3NS:
Mit Git verbinden
Ihr Git-Repository enthält die Ressourcen, die Sie für eine Flotte bereitstellen möchten. Wenn Sie diese Ressourcen mit einem Flottenpaket bereitstellen möchten, müssen Sie Ihr Git-Repository mit Cloud Build verbinden.
Git-Repository erstellen
In dieser Anleitung wird GitHub als Git-Anbieter verwendet. So erstellen Sie ein neues GitHub-Repository:
Öffnen Sie GitHub in Ihrem Webbrowser.
Melden Sie sich gegebenenfalls in Ihrem GitHub-Konto an. Wenn Sie Zugriff auf andere Organisationen oder Teams auf GitHub haben, achten Sie darauf, das Repository mit Ihrem privaten Konto zu erstellen.
Wählen Sie in der Symbolleiste Hinzufügen add und dann Neues Repository aus.
Geben Sie
fleet-package-tutorialals Namen des Repositorys ein.Lassen Sie Öffentlich als Sichtbarkeit des Repositorys ausgewählt.
Wählen Sie Repository erstellen aus.
Repository mit Cloud Build verbinden
Der Flottenpaketdienst von Config Sync verwendet Cloud Build, um die Kubernetes-Ressourcen aus Ihrem Git-Repository zu synchronisieren und abzurufen.
So verbinden Sie Ihr GitHub-Repository mit Cloud Build:
Öffnen Sie in der Cloud de Confiance -Console die Seite „Cloud Build“ und wählen Sie Repositories aus.
Achten Sie darauf, dass Sie sich auf der Seite Repositories der 2. Generation befinden. Wählen Sie bei Bedarf Repositories ansehen (2. Generation) aus.
Klicken Sie auf Hostverbindung erstellen.
Wählen Sie im Menü Region die Option us-central1 (Iowa) aus.
Geben Sie im Feld Name
fleet-package-quickstart-connectionals Namen für die Verbindung ein.Klicken Sie auf Verbinden.
Wenn Sie Cloud Build zum ersten Mal mit Ihrem GitHub-Konto verbinden, führen Sie die folgenden Schritte aus:
- Akzeptieren Sie die Anfrage für Ihr GitHub-OAuth-Token. Das Token wird in Secret Manager zur Verwendung mit der Cloud Build-GitHub-Verbindung gespeichert. Klicken Sie auf Weiter.
- Installieren Sie Cloud Build in Ihrem GitHub-Repository. Wählen Sie In neuem Konto installieren aus.
- Wählen Sie im neuen GitHub-Fenster das GitHub-Konto aus, in dem Sie zuvor die Fork von Cymbal Bank erstellt haben. In einer Produktionsumgebung können Sie andere Konten oder Repositories auswählen, für die Sie den Zugriff delegiert haben.
- Folgen Sie den Authentifizierungsaufforderungen, um Ihre Identität in GitHub zu bestätigen.
- Wählen Sie im GitHub-Fenster für den Zugriff auf das Cloud Build-Repository die Option Nur Repositories auswählen aus.
- Wählen Sie im Drop-down-Menü mit den Repositorys Ihr
fleet-package-tutorial-Repository aus. - Klicken Sie auf Speichern.
Klicken Sie auf der Cloud Build-Seite in der Cloud de Confiance Console auf Repository verknüpfen, um ein neues Git-Repository mit Cloud Build zu verbinden.
Wählen Sie im Menü Verbindung die Option
fleet-package-quickstart-connectionaus.Wählen Sie im Menü Repositories Ihr
fleet-package-tutorial-Repository aus.Klicken Sie auf Verknüpfen.
Flotte einrichten
In diesem Abschnitt richten Sie Ihre Flotte ein, indem Sie Cluster erstellen, sie bei einer Flotte registrieren und Config Sync als Flottenpaket installieren.
Cluster erstellen
In dieser Anleitung wird gezeigt, wie Sie zwei Cluster erstellen, um zu demonstrieren, wie Sie Flottenpakete verwenden können, um Ressourcen in mehreren Clustern bereitzustellen.
So erstellen Sie die beiden Cluster und registrieren sie in der Flotte Ihres Projekts:
Erstellen Sie einen GKE-Cluster.
gcloud container clusters create-auto cluster1 \ --project=PROJECT_ID \ --region=REGION \ --fleet-project=PROJECT_ID \ --release-channel=rapidErsetzen Sie Folgendes:
PROJECT_IDdurch Ihre Projekt-ID,REGIONdurch die Region, in der Sie den Cluster erstellen möchten, z. B.us-central1.
Zweiten GKE-Cluster erstellen:
gcloud container clusters create-auto cluster2 \ --project=PROJECT_ID \ --region=REGION \ --fleet-project=PROJECT_ID \ --release-channel=rapid
Config Sync als Flottenstandard installieren
Damit Sie den Flottenpaketdienst verwenden können, muss Config Sync auf beiden Clustern installiert sein. Sie können Config Sync auf mehreren Clustern gleichzeitig und auf allen zukünftigen Clustern installieren, die in der Flotte registriert sind. Führen Sie dazu die folgenden Schritte aus:
Rufen Sie in der Cloud de Confiance Console die Seite Feature Manager auf.
Klicken Sie im Bereich Config Sync auf Konfigurieren.
Klicken Sie auf Flotteneinstellungen anpassen. Wählen Sie im angezeigten Dialogfeld die Version von Config Sync aus, die installiert werden soll.
Klicken Sie auf Konfigurieren.
Klicken Sie im Bestätigungsdialogfeld Flotteneinstellungen konfigurieren auf Bestätigen. Wenn Sie Config Sync noch nicht aktiviert haben, wird durch Klicken auf Bestätigen auch die
anthosconfigmanagement.googleapis.comAPI aktiviert.Wählen Sie in der Tabelle Cluster in der Flotte beide Cluster aus und klicken Sie dann auf Mit Flotteneinstellungen synchronisieren. Dadurch wird Config Sync mit den von Ihnen konfigurierten Einstellungen in beiden Clustern installiert.
Es kann einige Minuten dauern, bis die Cluster synchronisiert sind. Sie können mit den nächsten Schritten fortfahren, wenn Config Sync als Installed (Installiert) angezeigt wird.
Dienstkonto für Cloud Build einrichten
Führen Sie die folgenden Schritte aus, um das Dienstkonto zu erstellen und Cloud Build die erforderlichen Berechtigungen zu erteilen:
Erstellen Sie das Dienstkonto:
gcloud iam service-accounts create "quickstart-service-account"Gewähren Sie dem Dienstkonto die Berechtigung, Ressourcen aus Ihrem Git-Repository abzurufen. Fügen Sie dazu eine IAM-Richtlinienbindung für die Rolle „Resource Bundle Publisher“ hinzu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:quickstart-service-account@PROJECT_ID.s3ns.iam.gserviceaccount.com" \ --role='roles/configdelivery.resourceBundlePublisher'Wählen Sie bei Aufforderung
Noneals Bedingung für die Richtlinie aus.Gewähren Sie dem Dienstkonto die Berechtigung zum Schreiben von Protokollen, indem Sie eine IAM-Richtlinienbindung für die Rolle Logs Writer hinzufügen:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:quickstart-service-account@PROJECT_ID.s3ns.iam.gserviceaccount.com" \ --role='roles/logging.logWriter'Wählen Sie bei Aufforderung
Noneals Bedingung für die Richtlinie aus.Fügen Sie eine IAM-Richtlinienbindung für die Rolle Artifact Registry Writer hinzu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:quickstart-service-account@PROJECT_ID.s3ns.iam.gserviceaccount.com" \ --role='roles/artifactregistry.writer'Wählen Sie bei Aufforderung
Noneals Bedingung für die Richtlinie aus.
Ressourcen in Ihrer Flotte bereitstellen
In dieser Anleitung fügen Sie Ihrem Git-Repository ein Kubernetes-Manifest mit einem Nginx-Deployment hinzu, veröffentlichen eine Release und erstellen dann ein Flottenpaket, um die Nginx-Anwendung bereitzustellen.
Kubernetes-Manifest in Ihr Repository übertragen
So fügen Sie Ihre Ressourcen zu GitHub hinzu und veröffentlichen eine Version:
Klicken Sie in einem Browserfenster Ihres GitHub-Repositorys auf Datei hinzufügen und dann auf Neue Datei erstellen.
Benennen Sie die Datei in
deployment.yamlum und fügen Sie den folgenden Inhalt ein:apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx:1.14.2 name: nginx ports: - containerPort: 80Klicken Sie auf Änderungen übernehmen....
Lassen Sie im Bestätigungsdialogfeld die Option Commit direkt in den
main-Zweig durchführen ausgewählt und klicken Sie dann auf Änderungen übernehmen.Wählen Sie auf der Hauptseite Ihres Repositorys in der Seitenleiste Releases aus.
Wählen Sie oben auf der Seite Neuen Release entwerfen aus.
Wählen Sie das Menü Tag auswählen aus und geben Sie
v1.0.0als Tag ein. Klicken Sie auf Neues Tag erstellen.Klicken Sie auf Release veröffentlichen.
Ressourcen mit einem Flottenpaket in Clustern bereitstellen
Erstellen Sie ein neues Flottenpaket, um die neue Ressource bereitzustellen:
Dieses Flottenpaket richtet sich an alle Cluster in Ihrer Flotte, da es keine Cluster-Auswahl (im Abschnitt
target.fleet) definiert. Es ist so konfiguriert, dass die Bereitstellungsvariante (abgeleitet aus Ihrerdeployment.yaml-Datei) für alle diese Cluster bereitgestellt wird.Erstellen Sie in Cloud Shell eine Datei namens
fleet-package.yamlmit folgendem Inhalt:resourceBundleSelector: cloudBuildRepository: name: projects/PROJECT_ID/locations/us-central1/connections/fleet-package-quickstart-connection/repositories/REPOSITORY_NAME tag: v1.0.0 serviceAccount: projects/PROJECT_ID/serviceAccounts/quickstart-service-account@PROJECT_ID.s3ns.iam.gserviceaccount.com path: # Match all files (including deployment.yaml) to generate variants variantsPattern: "*.yaml" target: fleet: project: projects/PROJECT_ID rolloutStrategy: rolling: maxConcurrent: 1 variantSelector: # Explicitly match the variant generated from "deployment.yaml" variantNameTemplate: "deployment"Ersetzen Sie
REPOSITORY_NAMEdurch den Repository-Namen aus Cloud Build. Dies ist normalerweise im FormatUSERNAME-REPOSITORY_NAME.Erstellen Sie das Flottenpaket, um mit dem Roll-out zu beginnen:
gcloud container fleet packages create fp-nginx \ --source=fleet-package.yaml \ --project=PROJECT_IDPrüfen Sie, ob das Flottenpaket erstellt wurde:
gcloud container fleet packages listSie können auf den bereitgestellten Link klicken, um die Streaming-Logs für den Cloud Build-Job aufzurufen.
Das Fleet-Paket beginnt mit der Einführung der Kubernetes-Ressourcen in Ihrer Flotte.
Rufen Sie auf der Google Kubernetes Engine-Seite der Cloud de Confiance Console die Seite Arbeitslasten auf, um eine aggregierte Ansicht der Arbeitslasten anzuzeigen, die in allen Ihren GKE-Clustern bereitgestellt werden:
Es kann einige Minuten dauern, bis die Arbeitslasten verfügbar sind. Möglicherweise treten auch Verfügbarkeitsfehler auf, während Autopilot Ihre Ressourcenanfragen für das neue Deployment anpasst.
Da
maxConcurrent:in der Definition des Flottenpakets auf1festgelegt ist, wartet die Flottenpaket-API, bisnginx-deploymentvollständig in einem Cluster bereitgestellt wurde, bevor die Bereitstellung im zweiten Cluster gestartet wird. Wenn Sie die Einführungsstrategie aufmaxConcurrent: 2oder höher geändert haben, werden die Ressourcen gleichzeitig in beiden Clustern bereitgestellt.Nach einigen Minuten werden in beiden Clustern zwei neue Arbeitslasten für
nginx-deploymentangezeigt. Möglicherweise müssen Sie die Seite aktualisieren.
Sie können verschiedene Bereitstellungsstrategien mit Flottenpaketen weiter untersuchen. Sie können Ihrer Flotte beispielsweise einen neuen Cluster hinzufügen, um zu beobachten, dass Ihre Arbeitslast automatisch in diesem neuen Cluster bereitgestellt wird. Weitere Informationen zu Bereitstellungsstrategien und ‑varianten finden Sie unter Flottenpakete bereitstellen.
Bereinigen
Löschen Sie das Projekt von Cloud de Confiance zusammen mit den Ressourcen, damit Ihrem Konto von Cloud de Confiance die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
- Wechseln Sie in der Cloud de Confiance -Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
So löschen Sie Ihr Repository:
Klicken Sie in einem Webbrowser Ihres GitHub-Repositorys unter Ihrem Repository-Namen auf Einstellungen.
Klicken Sie auf der Seite „Allgemeine Einstellungen“ (standardmäßig ausgewählt) im Abschnitt „Gefahrenzone“ auf Dieses Repository löschen.
Klicken Sie auf Ich möchte dieses Repository löschen.
Lesen Sie die Warnungen und klicken Sie auf Ich habe die Auswirkungen gelesen und verstanden.
Geben Sie im Textfeld den Namen Ihres Repositorys ein, um zu prüfen, ob Sie das richtige Repository löschen.
Klicken Sie auf Dieses Repository löschen.
Nächste Schritte
- Weitere Informationen zu Flottenpaketen
- Informationen zum Bereitstellen von Flottenpaketen
- Sehen Sie sich das Tutorial zu skalierbaren Apps an. In dieser Reihe von Anleitungen erfahren Sie, wie Sie moderne Anwendungsumgebungen in GKE bereitstellen, ausführen und verwalten. Dazu gehört die Anleitung Änderungsmanagement zentralisieren, in der die Skalierung von Konfigurationsänderungen mit Flottenpaketen behandelt wird.