Google Cloud Deploy-Ausführungsumgebungen verwenden

Eine Google Cloud Deploy-Ausführungsumgebung ist die Umgebung, in der Google Cloud Deploy Rendering- und Bereitstellungsvorgänge ausführt. Eine Ausführungsumgebung besteht aus folgenden Elementen:

  • Der Cloud Build-Worker-Pool (Standard oder Privat), in dem Google Cloud Deploy Render- und Bereitstellungsvorgänge ausführt.

  • Das Dienstkonto (Standard oder Alternativ), das Google Cloud Deploy zum Ausführen dieser Aktionen aufruft.

  • Der Speicherort (Standard oder Alternativ) für gerenderte Manifeste in Cloud Storage.

In diesem Artikel werden die Standardausführungsumgebung, die Dienstkonten und der Speicher für Google Cloud Deploy beschrieben, sowie Gründe und Vorgehensweisen für die Änderung dieser Standardeinstellungen.

Standardeinstellungen

Im Folgenden finden Sie die Standardwerte, die Google Cloud Deploy zum Ausführen, zum Rendering, zur Bereitstellung sowie zum Speichern von Assets, darunter gerenderte Manifeste, verwendet:

  • Standard-Worker-Pool

    Google Cloud Deploy wird standardmäßig im Cloud Build-Standard-Worker-Pool ausgeführt. Sie können Google Cloud Deploy aber auch für die Verwendung eines privaten Cloud Build-Worker-Pools konfigurieren.

    Weitere Informationen zu Worker-Pools finden Sie in der Cloud Build-Übersicht zu Standardpools und privaten Pools.

  • Standardausführungsdienstkonto

    Google Cloud Deploy verwendet standardmäßig das Compute Engine-Standarddienstkonto.

  • Standardmäßiger Google Cloud Deploy-Speicherort

    Dieser Wert ist der Cloud Storage-Bucket, in dem Google Cloud Deploy Ihre gerenderten Manifeste speichert. Standardmäßig erstellt Google Cloud Deploy einen Cloud Storage-Bucket in der Region, in der sich auch die Google Cloud Deploy-Ressourcen befinden. Dies hat das folgende Format:

    <location>.deploy-artifacts.<project ID>.appspot.com

In folgenden Abschnitten werden die Umstände beschrieben, unter denen Sie diese Werte ändern würden, sowie Links zu entsprechenden Anleitungen.

Standard- und private Worker-Pools

Standardausführungsumgebung ist der Cloud Build-Standardpool. Der Standard-Worker-Pool ist eine sichere, gehostete Umgebung mit Zugriff auf das öffentliche Internet. In diesem Pool werden von anderen Arbeitslasten isolierte Rendering- und Bereitstellungsvorgänge ausgeführt.

Private Worker-Pools sind private, dedizierte Pools, die tiefer angepasst werden können als der standardmäßige Worker-Pool. Diese Anpassung kann die Möglichkeit bieten, auf Ressourcen in einem privaten Netzwerk zuzugreifen.

Wie der standardmäßige Worker-Pool werden private Worker-Pools von Cloud Build gehostet und vollständig verwaltet. Diese Pools können ohne Infrastruktur eingerichtet oder aktualisiert, hochskaliert oder auf null herunterskaliert werden.

In der Übersicht über private Pools von Cloud Build werden Standard-Worker-Pools und private Worker-Pools ausführlicher beschrieben. Dort findet sich auch eine Tabelle, in der die Funktionen verglichen werden.

Google Cloud Deploy-Ausführungsumgebung ändern

Unter folgenden Umständen können Sie die Google Cloud Deploy-Ausführungsumgebung ändern:

  • Sie möchten eine Bereitstellung in einem privaten Google Kubernetes Engine-Cluster vornehmen.

  • Sie möchten Rendering- oder Bereitstellungsvorgänge oder beides in einer Umgebung ausführen, die von anderen Organisationen isoliert ist.

  • Sie möchten, dass diese Vorgänge in einer Umgebung ausgeführt werden, die nicht mit dem öffentlichen Internet verbunden ist.

  • Sie möchten separate Umgebungen für Rendering und Bereitstellung erstellen.

  • Sie möchten ein dediziertes Dienstkonto mit Berechtigungen verwenden, die für Ihre Nutzung spezifischer sind als die im Standarddienstkonto verfügbaren Berechtigungen.

  • Sie möchten gerenderte Manifeste an einem anderen Speicherort als dem standardmäßigen Cloud Storage-Bucket speichern.

Die Konfiguration aller drei Teile der Ausführungsumgebung (Worker-Pool, Dienstkonto und Speicher) erfolgt pro Ziel in der YAML-Konfiguration der einzelnen Ziele.

Vom Standardpool zu einem privaten Pool wechseln

Sie konfigurieren Worker-Pools pro Ziel, sodass der Pool für RENDER oder DEPLOY (oder beides) nur für das jeweilige Ziel verwendet wird.

Sie müssen nichts unternehmen, um den Standard-Worker-Pool sowohl für Rendering- als auch für Bereitstellungsvorgänge zu verwenden.

Folgendes Beispiel zeigt eine Zielkonfiguration, die einen privaten Worker-Pool für DEPLOY und den Standard-Worker-Pool für RENDER angibt:

executionConfigs:
- privatePool:
    workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
  usages:
  - DEPLOY
- defaultPool:
  usages:
  - RENDER

Weitere Informationen zum Konfigurieren privater Pools für Ziele finden Sie in der Dokumentation zur Konfiguration der Lieferpipeline.

Standardpool für RENDER und DEPLOY verwenden

Wenn Sie defaultPool konfigurieren, um die Nutzungen (RENDER | DEPLOY) ohne alternatives Dienstkonto oder Speicherort festzulegen, fügen Sie leere geschweifte Klammern hinzu: defaultPool: {}.

Vom Standarddienstkonto zum benutzerdefinierten Ausführungsdienstkonto wechseln

Wie beim Worker-Pool können Sie ein alternatives Dienstkonto angeben, das für Rendering oder Bereitstellung (oder beides) pro Ziel verwendet werden soll. Fügen Sie dazu folgende Zeile in die Zielkonfiguration ein, nach dem workerPool-Element:

serviceAccount: "[name]@[project_name].iam.googleapis.com"

Das angegebene Dienstkonto muss die clouddeploy.jobRunner-Rolle haben, wie im Dokument Google Cloud Deploy-Dienstkonten beschrieben.

Weitere Einzelheiten zu dieser Konfiguration finden Sie unter Zieldefinitionen.

Speicherort ändern

Um den Storage-Bucket vom Google Cloud Deploy-Standard zu ändern, fügen Sie folgende Zeile der Zieldefinition in der privatePool- oder defaultPool-Stanza hinzu:

artifactStorage: "gs://[bucket_name]/[dir]"

Diese Konfiguration ändert sich, wo die gerenderten Manifeste gespeichert werden. Sie wirkt sich jedoch nicht darauf aus, wo die Renderingquelle gespeichert wird.

Bereitstellung für einen privaten Cluster in einem Virtual Private Cloud-Netzwerk

Sie können ein Ziel für die Bereitstellung in einem privaten GKE-Cluster konfigurieren, der mit einem Virtual Private Cloud-Netzwerk verbunden ist:

  1. Privaten Cluster erstellen

    Ein privater Cluster ist ein VPC-nativer Cluster, dessen Knoten und Pods standardmäßig vom öffentlichen Internet isoliert sind.

  2. Erstellen Sie in Cloud Build einen privaten Worker-Pool, den Sie für die Bereitstellung in diesem privaten Cluster verwenden können.

  3. Konfigurieren Sie die Ausführungsumgebung für die Verwendung dieses privaten Pools.

    Sie müssen diesen Pool für RENDER verwenden. Sie können ihn auch für DEPLOY verwenden. Hier ein Beispiel mit beiden:

    executionConfigs:
    - privatePool:
        workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
      usages:
      - RENDER
      - DEPLOY
    

Weitere Informationen finden Sie unter Auf private GKE-Cluster mit privaten Cloud Build-Pools zugreifen.

Hinweise zu Projekten und Berechtigungen

Es ist einfach, ein Ziel für die Verwendung eines privaten Worker-Pools zu konfigurieren, der in einem privaten Cluster Bereitstellungen ausführen kann. Es sind jedoch einige Dinge zu beachten, wenn sich Ressourcen in verschiedenen Projekten befinden.

Wenn sich Google Cloud Deploy und der Worker-Pool in separaten Projekten befinden

Für die Kommunikation mit einem privaten Pool, der Zugriff auf eine VPC hat und sich in einem anderen Projekt als Ihr Ziel befindet, benötigt der Google Cloud Deploy-Dienst-Agent ausreichende Berechtigungen zur Kommunikation diesem Projekt.

Das Ausführungsdienstkonto benötigt außerdem Berechtigungen für den Zugriff auf den Cloud Storage-Bucket.

Wenn sich der Worker-Pool und der Cluster in separaten Projekten befinden

Befindet sich der private GKE-Cluster in einem anderen Projekt als der private Worker-Pool, benötigt das Ausführungs-Dienstkonto ausreichende Berechtigungen zur Kommunikation mit dem Projekt, in dem sich der Cluster befindet.

Google Cloud Deploy in einem VPC Service Controls-Perimeter verwenden

Google Cloud Deploy unterstützt (in der Betaphase) VPC Service Controls.

Folgen Sie der Kurzanleitung für VPC Service Controls, um einen Dienstperimeter einzurichten.

Beschränkungen

  • Sie müssen einen privaten Cloud Build-Worker-Pool für die Ausführungsumgebung des Ziels verwenden – also weder ein Hybridpool noch den Standard-Worker-Pool.

  • Das Projekt, das den Worker-Pool enthält, und das Projekt, das Ihre Google Cloud-Deploy-Ressourcen enthält, müssen sich im selben VPC Service Controls-Sicherheitsperimeter befinden.

  • GKE-Cluster, die Sie im VPC Service Controls-Perimeter bereitstellen, müssen private Cluster sein.

    Informationen zum Einrichten eines privaten Pools für einen privaten Cluster finden Sie in dieser Anleitung.

Nächste Schritte