Multi-Cluster-Dienste mit freigegebener VPC einrichten


Auf dieser Seite werden gängige Multi-Cluster-Dienste (MCS) beschrieben. Die auf dieser Seite vorgestellten Szenarien haben folgende Eigenschaften:

  • Zwei GKE-Cluster: Der erste GKE-Cluster ist in der Flotte seines eigenen Projekts registriert. Dies ist das Flottenhostprojekt. Der zweite GKE-Cluster ist bei derselben Flotte registriert, befindet sich aber je nach Szenario möglicherweise nicht im selben Projekt. Beide GKE-Cluster sind VPC-native Cluster.
  • Dasselbe VPC-Netzwerk: Beide GKE-Cluster verwenden Subnetze im selben freigegebenen VPC-Netzwerk.
  • Workload Identity-Föderation für GKE ist in beiden Clustern aktiviert.

Terminologie

Die Begriffe Freigegebenes VPC-Hostprojekt und GKE-Flotten-Hostprojekt haben unterschiedliche Bedeutungen.

  • Das freigegebenen VPC-Hostprojekt ist das Projekt, das das freigegebene VPC-Netzwerk enthält.
  • Das Hostprojekt der GKE-Flotten ist das Projekt mit der Flotte, bei der Sie die Cluster registrieren.

Scenarios

In der folgenden Tabelle sind gängige MCS-Szenarien beschrieben:

Szenario Flotten-Hostprojekt (Projekt mit dem ersten Cluster) Den Speicherort des zweiten Clusters.
Cluster im selben freigegebenen VPC-Dienstprojekt Ein freigegebenes VPC-Dienstprojekt Dasselbe freigegebene VPC-Dienstprojekt wie der erste Cluster
Hostprojekt einer freigegebenen VPC als Flotten-Hostprojekt (ein Cluster im Hostprojekt der freigegebenen VPC, ein zweiter Cluster in einem Dienstprojekt einer freigegebenen VPC) Das freigegebene VPC-Hostprojekt Ein freigegebenes VPC-Dienstprojekt
Cluster in verschiedenen freigegebenen VPC-Dienstprojekten Ein freigegebenes VPC-Dienstprojekt Ein anderes freigegebenes VPC-Dienstprojekt

Voraussetzungen

Bevor Sie eine projektübergreifende Konfiguration von MCS einrichten, sollten Sie sich mit folgenden Themen vertraut machen:

Cluster im selben freigegebenen VPC-Dienstprojekt

Dieser Abschnitt enthält eine Beispiel-MCS-Konfiguration mit zwei vorhandenen GKE-Clustern, die sich im selben freigegebenen VPC-Dienstprojekt befinden:

  • Beide Cluster verwenden dasselbe freigegebene VPC-Netzwerk in SHARED_VPC_HOST_PROJ.
  • Der erste VPC-native GKE-Cluster FIRST_CLUSTER_NAME mit aktivierter Workload Identity-Föderation für GKE wird im FLEET_HOST_PROJ erstellt. Das Flotten-Hostprojekt ist ein Dienstprojekt, das in diesem Szenario mit SHARED_VPC_HOST_PROJ verbunden ist.
  • Der zweite VPC-native GKE-Cluster SECOND_CLUSTER_NAME mit aktivierter Workload Identity-Föderation für GKE wird ebenfalls in der FLEET_HOST_PROJ erstellt.

Erforderliche APIs aktivieren

Aktivieren Sie die erforderlichen APIs. Die Ausgabe des Google Cloud CLI zeigt an, ob eine API bereits aktiviert wurde.

  1. Aktivieren Sie die Cloud DNS API:

    gcloud services enable dns.googleapis.com \
        --project SHARED_VPC_HOST_PROJ
    

    In diesem Szenario ist das Hostprojekt des Gerätepools ein Dienstprojekt, das mit dem freigegebenen VPC-Hostprojekt verbunden ist. Die Cloud DNS API muss im Hostprojekt der freigegebenen VPC aktiviert sein, da sich dort das freigegebene VPC-Netzwerk befindet. GKE erstellt von Cloud DNS verwaltete private Zonen im Hostprojekt und autorisiert sie für das freigegebene VPC-Netzwerk.

  2. Aktivieren Sie die GKE Hub API (Fleet). Die GKE Hub API darf nur Flotten-Hostprojekt aktiviert sein.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    Durch Aktivieren dieser API im Flotten-Hostprojekt wird das folgende Dienstkonto erstellt bzw. geprüft, ob es vorhanden ist: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com.

  3. Aktivieren Sie Cloud Service Mesh, Resource Manager und Multi-Cluster Service Discovery APIs im Hostprojekt der Flotte:

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project FLEET_HOST_PROJ
    

Multi-Cluster-Dienste im Flotten-Hostprojekt aktivieren

  1. Aktivieren Sie Multi-Cluster-Dienste im Flotten-Hostprojekt:

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    Durch die Aktivierung von Multi-Cluster-Diensten im Flotten-Hostprojekt wird das folgende Dienstkonto erstellt bzw. sichergestellt, dass es existiert: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com.

IAM-Bindungen erstellen

  1. Erstellen Sie eine IAM-Bindung, die dem MCS-Dienstkonto des Flotten-Hostprojekts die MCS-Dienst-Agent-Rolle im freigegebenen VPC-Hostprojekt zuweist:

    gcloud projects add-iam-policy-binding SHARED_VPC_HOST_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  2. Erstellen Sie eine IAM-Bindung, die dem MCS-Dienstkonto des Flotten-Hostprojekts die Rolle „Netzwerknutzer“ für sein eigenes Projekt zuweist:

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    Da dieses Szenario die Workload Identity-Föderation für GKE verwendet, benötigt das MCS-Importer-GKE-Dienstkonto des Flotten-Hostprojekts die Rolle „Netzwerknutzer“ für sein eigenes Projekt.

    Ersetzen Sie dabei Folgendes:

    • SHARED_VPC_HOST_PROJ: Projekt-ID des freigegebenen VPC-Hostprojekts.
    • FLEET_HOST_PROJ_NUMBER: Projektnummer des Flotten-Hostprojekts, also das Dienstprojekt der freigegebenen VPC für dieses Szenario.
    • FLEET_HOST_PROJ: Die Projekt-ID des Projekts des ersten Clusters.

Cluster in der Flotte registrieren

  1. Registrieren Sie den ersten Cluster in der Flotte: Das Flag --gke-cluster kann für diesen Befehl verwendet werden, da sich der erste Cluster im selben Projekt wie die Flotte befindet, für die er registriert wird.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

    Ersetzen Sie dabei Folgendes:

    • MEMBERSHIP_NAME_1: Eine eindeutige Kennung für diesen Cluster in dieser Flotte. Sie können beispielsweise den Namen des ersten GKE-Clusters verwenden.
    • FLEET_HOST_PROJ: Die Projekt-ID des Flotten-Hostprojekts, die in diesem Szenario mit dem Hostprojekt der freigegebenen VPC identisch ist.
    • LOCATION: Bei zonalen Clustern die Compute Engine-Zone, die den Cluster enthält; bei regionalen Clustern die Compute Engine-Region, die den Cluster enthält.
    • FIRST_CLUSTER_NAME: Der Name des ersten Clusters.
  2. Registrieren Sie den zweiten Cluster im Flotten-Hostprojekt. Das Flag --gke-cluster kann für diesen Befehl verwendet werden, da sich der zweite Cluster ebenfalls im Flotten-Hostprojekt befindet.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/SECOND_CLUSTER_NAME
    

    Ersetzen Sie dabei Folgendes:

    • MEMBERSHIP_NAME_2: Eine eindeutige Kennung für diesen Cluster in dieser Flotte. Sie können beispielsweise den Namen des zweiten GKE-Clusters verwenden.
    • FLEET_HOST_PROJ: Die Projekt-ID des Flotten-Hostprojekts, die in diesem Szenario mit dem Hostprojekt der freigegebenen VPC identisch ist.
    • LOCATION: Bei zonalen Clustern die Compute Engine-Zone, die den Cluster enthält; bei regionalen Clustern die Compute Engine-Region, die den Cluster enthält.
    • SECOND_CLUSTER_NAME: Der Name des zweiten Clusters.

Gemeinsamen Namespace für die Cluster erstellen

  1. Sorgen Sie dafür, dass jeder Cluster einen Namespace hat, in dem Dienste freigegeben werden sollen. Erstellen Sie bei Bedarf einen Namespace, indem Sie den folgenden Befehl in jedem Cluster verwenden:

    kubectl create ns NAMESPACE
    

    Ersetzen Sie NAMESPACE durch einen Namen für den Namespace.

Freigegebenes VPC-Hostprojekt als Flotten-Hostprojekt

Dieser Abschnitt enthält eine beispielhafte MCS-Konfiguration mit zwei vorhandenen GKE-Clustern:

  • Der erste VPC-native GKE-Cluster FIRST_CLUSTER_NAME mit aktivierter Workload Identity-Föderation für GKE wurde im FLEET_HOST_PROJ erstellt. In diesem Szenario ist das Flotten-Hostprojekt auch das freigegebene VPC-Hostprojekt.
  • Der zweite VPC-native GKE-Cluster SECOND_CLUSTER_NAME mit aktivierter Workload Identity-Föderation für GKE wurde im SECOND_CLUSTER_PROJ erstellt.

Erforderliche APIs aktivieren

Aktivieren Sie die erforderlichen APIs. Die Ausgabe des Google Cloud CLI zeigt an, ob eine API bereits aktiviert wurde.

  1. Aktivieren Sie die Cloud DNS API:

    gcloud services enable dns.googleapis.com \
        --project FLEET_HOST_PROJ
    

    In diesem Szenario ist das Flotten-Hostprojekt auch das freigegebene VPC-Hostprojekt. Die Cloud DNS API muss im Hostprojekt der freigegebenen VPC aktiviert sein, da sich dort das freigegebene VPC-Netzwerk befindet. GKE erstellt von Cloud DNS verwaltete private Zonen im Hostprojekt und autorisiert sie für das freigegebene VPC-Netzwerk.

  2. Aktivieren Sie die GKE Hub API (Fleet). Die GKE Hub API darf nur Flotten-Hostprojekt aktiviert sein.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    Durch Aktivieren der GKE Hub API im Flotten-Hostprojekt wird das folgende Dienstkonto erstellt bzw. sichergestellt, dass es existiert: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com.

  3. Aktivieren Sie Cloud Service Mesh, Resource Manager und Multi-Cluster Service Discovery APIs sowohl im Flotten-Hostprojekt als auch im Projekt des zweiten Clusters:

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project FLEET_HOST_PROJ
    
    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project SECOND_CLUSTER_PROJ
    

Multi-Cluster-Dienste im Flotten-Hostprojekt aktivieren

  1. Aktivieren Sie Multi-Cluster-Dienste im Flotten-Hostprojekt:

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    Durch die Aktivierung von Multi-Cluster-Diensten im Flotten-Hostprojekt wird das folgende Dienstkonto erstellt bzw. sichergestellt, dass es existiert: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com.

IAM-Bindungen erstellen

  1. Erstellen Sie die IAM-Bindung, die dem GKE-Dienstkonto des Flotten-Hostprojekts die Rolle des GKE-Dienst-Agents für das Projekt des zweiten Clusters zuweist:

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com" \
        --role roles/gkehub.serviceAgent
    
  2. Erstellen Sie eine IAM-Bindung, die dem MCS-Dienstkonto des Flotten-Hostprojekts die Rolle des MCS-Dienst-Agents im Projekt des zweiten Clusters zuweist:

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  3. Erstellen Sie eine IAM-Bindung, die dem MCS-Dienstkonto jedes Projekts die Rolle „Netzwerknutzer“ für sein eigenes Projekt zuweist:

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    
    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:SECOND_CLUSTER_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    Da dieses Szenario die Workload Identity-Föderation für GKE verwendet, benötigt das GKE-Dienstkonto des MCS-Importers für jedes Projekt die Rolle „Netzwerknutzer“ für sein eigenes Projekt.

    Ersetzen Sie dabei Folgendes:

    • SECOND_CLUSTER_PROJ: Die Projekt-ID des Projekts des zweiten Clusters.
    • FLEET_HOST_PROJ: Die Projekt-ID des Projekts des ersten Clusters.
    • FLEET_HOST_PROJ_NUMBER: Die Projektnummer des Flotten-Hostprojekts, die mit dem freigegebenen VPC-Hostprojekt für dieses Szenario übereinstimmt

Cluster in der Flotte registrieren

  1. Registrieren Sie den ersten Cluster in der Flotte: Das Flag --gke-cluster kann für diesen Befehl verwendet werden, da sich der erste Cluster im selben Projekt wie die Flotte befindet, für die er registriert wird.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

    Ersetzen Sie dabei Folgendes:

    • MEMBERSHIP_NAME_1: Eine eindeutige Kennung für diesen Cluster in dieser Flotte. Sie können beispielsweise den Namen des ersten GKE-Clusters verwenden.
    • FLEET_HOST_PROJ: Die Projekt-ID des Flotten-Hostprojekts, die in diesem Szenario mit dem Hostprojekt der freigegebenen VPC identisch ist.
    • LOCATION: Bei zonalen Clustern die Compute Engine-Zone, die den Cluster enthält; bei regionalen Clustern die Compute Engine-Region, die den Cluster enthält.
    • FIRST_CLUSTER_NAME: Der Name des ersten Clusters.
  2. Registrieren Sie den zweiten Cluster in der Flotte: Das Flag --gke-uri muss für diesen Befehl verwendet werden, da sich der zweite Cluster nicht im selben Projekt wie die Flotte befindet. Sie können den vollständigen Cluster-URI durch Ausführen von gcloud container clusters list --uri abrufen.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-uri https://container.googleapis.com/v1/projects/SECOND_CLUSTER_PROJ/locations/LOCATION/clusters/SECOND_CLUSTER_NAME
    

    Ersetzen Sie dabei Folgendes:

    • MEMBERSHIP_NAME_2: Eine eindeutige Kennung für diesen Cluster in dieser Flotte. Sie können beispielsweise den Namen des zweiten GKE-Clusters verwenden.
    • FLEET_HOST_PROJ: Die Projekt-ID des Flotten-Hostprojekts, die in diesem Szenario mit dem Hostprojekt der freigegebenen VPC identisch ist.
    • LOCATION: Ersetzen Sie LOCATION durch:
      • die Compute Engine-Zone des Clusters, wenn der Cluster ein zonaler Cluster ist
      • die Compute Engine-Region des Clusters, wenn der Cluster ein regionaler Cluster ist
    • SECOND_CLUSTER_PROJECT: Das Projekt, das den zweiten Cluster enthält.
    • SECOND_CLUSTER_NAME: Der Name des zweiten Clusters.

Gemeinsamen Namespace für die Cluster erstellen

  1. Sorgen Sie dafür, dass jeder Cluster einen Namespace hat, in dem Dienste freigegeben werden sollen. Erstellen Sie bei Bedarf einen Namespace, indem Sie den folgenden Befehl in jedem Cluster verwenden:

    kubectl create ns NAMESPACE
    

    Ersetzen Sie NAMESPACE durch einen Namen für den Namespace.

Cluster in verschiedenen freigegebenen VPC-Dienstprojekten

Dieser Abschnitt enthält ein Beispiel für eine MCS-Konfiguration mit zwei vorhandenen GKE-Clustern, die sich jeweils in einem anderen freigegebenen VPC-Dienstprojekt befinden.

  • Beide Cluster verwenden dasselbe freigegebene VPC-Netzwerk in SHARED_VPC_HOST_PROJ.
  • Der erste VPC-native GKE-Cluster FIRST_CLUSTER_NAME mit aktivierter Workload Identity-Föderation für GKE wurde im FLEET_HOST_PROJ erstellt. Das Flotten-Hostprojekt ist ein Dienstprojekt, das in diesem Szenario mit SHARED_VPC_HOST_PROJ verbunden ist.
  • Der zweite VPC-native GKE-Cluster SECOND_CLUSTER_NAME mit aktivierter Workload Identity-Föderation für GKE wurde im SECOND_CLUSTER_PROJ erstellt. Die SECOND_CLUSTER_PROJ ist in diesem Szenario auch ein Dienstprojekt, das mit der SHARED_VPC_HOST_PROJ verbunden ist.

Erforderliche APIs aktivieren

Aktivieren Sie die erforderlichen APIs. Die Ausgabe des Google Cloud CLI zeigt an, ob eine API bereits aktiviert wurde.

  1. Aktivieren Sie die Cloud DNS API:

    gcloud services enable dns.googleapis.com \
        --project SHARED_VPC_HOST_PROJ
    

    In diesem Szenario ist das Hostprojekt des Gerätepools ein Dienstprojekt, das mit dem freigegebenen VPC-Hostprojekt verbunden ist. Die Cloud DNS API muss im Hostprojekt der freigegebenen VPC aktiviert sein, da sich dort das freigegebene VPC-Netzwerk befindet. GKE erstellt von Cloud DNS verwaltete private Zonen im Hostprojekt und autorisiert sie für das freigegebene VPC-Netzwerk.

  2. GKE Hub (Fleet) API. Die GKE Hub API darf nur im Projekt des Flotten-Hostprojekts FLEET_HOST_PROJ aktiviert sein.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    Durch Aktivieren dieser API im Flotten-Hostprojekt wird das folgende Dienstkonto erstellt bzw. geprüft, ob es vorhanden ist: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com.

  3. Aktivieren Sie Cloud Service Mesh, Resource Manager und Multi-Cluster Service Discovery APIs sowohl im Flotten-Hostprojekt als auch im Projekt des zweiten Clusters:

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project=FLEET_HOST_PROJ
    
    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project SECOND_CLUSTER_PROJ
    

Multi-Cluster-Dienste im Flotten-Hostprojekt aktivieren

  1. Aktivieren Sie Multi-Cluster-Dienste im Flotten-Hostprojekt:

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    Durch die Aktivierung von Multi-Cluster-Diensten im Flotten-Hostprojekt wird das folgende Dienstkonto erstellt bzw. sichergestellt, dass es existiert: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com.

IAM-Bindungen erstellen

  1. Erstellen Sie die IAM-Bindung, die dem GKE Hub-Dienstkonto des Flotten-Hostprojekts die Rolle des GKE-Dienst-Agents für das Projekt des zweiten Clusters zuweist:

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com" \
        --role roles/gkehub.serviceAgent
    
  2. Erstellen Sie eine IAM-Bindung, die dem MCS-Dienstkonto des Flotten-Hostprojekts die Rolle des MCS-Dienst-Agents im Projekt des zweiten Clusters zuweist:

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  3. Erstellen Sie eine IAM-Bindung, die dem MCS-Dienstkonto des Flotten-Hostprojekts die MCS-Dienst-Agent-Rolle im freigegebenen VPC-Hostprojekt zuweist:

    gcloud projects add-iam-policy-binding SHARED_VPC_HOST_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  4. Erstellen Sie eine IAM-Bindung, die dem MCS-Dienstkonto jedes Projekts die Rolle „Netzwerknutzer“ für sein eigenes Projekt zuweist:

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    
    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:SECOND_CLUSTER_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    Da dieses Szenario die Workload Identity-Föderation für GKE verwendet, benötigt das GKE-Dienstkonto des MCS-Importers für jedes Projekt die Rolle „Netzwerknutzer“ für sein eigenes Projekt.

    Ersetzen Sie Folgendes nach Bedarf in den vorherigen Befehlen:

    • SECOND_CLUSTER_PROJ: Die Projekt-ID des Projekts des zweiten Clusters.
    • SHARED_VPC_HOST_PROJ ist die Projekt-ID des freigegebenen VPC-Hostprojekts. In diesem Beispiel verwenden beide Cluster dasselbe freigegebene VPC-Netzwerk, aber keiner der Cluster befindet sich im freigegebenen VPC-Hostprojekt.
    • FLEET_HOST_PROJ: Die Projekt-ID des Projekts des ersten Clusters.
    • FLEET_HOST_PROJ_NUMBER: Die Projektnummer des Flotten-Hostprojekts

Cluster in der Flotte registrieren

  1. Registrieren Sie den ersten Cluster in der Flotte: Das Flag --gke-cluster kann für diesen Befehl verwendet werden, da sich der erste Cluster im selben Projekt wie die Flotte befindet, für die er registriert wird.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

    Ersetzen Sie dabei Folgendes:

    • MEMBERSHIP_NAME_1: Eine eindeutige Kennung für diesen Cluster in dieser Flotte. Sie können beispielsweise den Namen des ersten GKE-Clusters verwenden.
    • FLEET_HOST_PROJ: Die Projekt-ID des Flotten-Hostprojekts, die in diesem Szenario mit dem Hostprojekt der freigegebenen VPC identisch ist.
    • LOCATION: Bei zonalen Clustern die Compute Engine-Zone, die den Cluster enthält; bei regionalen Clustern die Compute Engine-Region, die den Cluster enthält.
    • FIRST_CLUSTER_NAME: Der Name des ersten Clusters.
  2. Registrieren Sie den zweiten Cluster in der Flotte: Das Flag --gke-uri muss für diesen Befehl verwendet werden, da sich der zweite Cluster nicht im selben Projekt wie die Flotte befindet. Sie können den vollständigen Cluster-URI durch Ausführen von gcloud container clusters list --uri abrufen.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-uri https://container.googleapis.com/v1/projects/SECOND_CLUSTER_PROJ/locations/LOCATION/clusters/SECOND_CLUSTER_NAME
    

    Ersetzen Sie dabei Folgendes:

    • MEMBERSHIP_NAME_2: Eine eindeutige Kennung für diesen Cluster in dieser Flotte. Sie können beispielsweise den Namen des zweiten GKE-Clusters verwenden.
    • FLEET_HOST_PROJ: Die Projekt-ID des Flotten-Hostprojekts, die in diesem Szenario mit dem Hostprojekt der freigegebenen VPC identisch ist.
    • LOCATION: Ersetzen Sie LOCATION durch:
      • die Compute Engine-Zone des Clusters, wenn der Cluster ein zonaler Cluster ist
      • die Compute Engine-Region des Clusters, wenn der Cluster ein regionaler Cluster ist
    • SECOND_CLUSTER_PROJECT: Das Projekt, das den zweiten Cluster enthält.
    • SECOND_CLUSTER_NAME: Der Name des zweiten Clusters.

Gemeinsamen Namespace für die Cluster erstellen

  1. Sorgen Sie dafür, dass jeder Cluster einen Namespace hat, in dem Dienste freigegeben werden sollen. Erstellen Sie bei Bedarf einen Namespace, indem Sie den folgenden Befehl in jedem Cluster verwenden:

    kubectl create ns NAMESPACE
    

    Ersetzen Sie NAMESPACE durch einen Namen für den Namespace.

Nächste Schritte