Voraussetzungen für die verwaltete Migration

Auf dieser Seite wird beschrieben, wie Sie Ihr Google Cloud-Projekt zur Vorbereitung auf eine von Dataproc Metastore verwaltete Migration einrichten.

Hinweise

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Dataproc Metastores und zum Starten einer verwalteten Migration benötigen:

  • So gewähren Sie vollständigen Zugriff auf alle Dataproc Metastore-Ressourcen und legen IAM-Berechtigungen fest: Dataproc Metastore-Administrator (roles/metastore.admin) für das Dataproc Metastore-Nutzerkonto oder -Dienstkonto
  • So gewähren Sie vollständige Kontrolle über Dataproc Metastore-Ressourcen: Dataproc Metastore Editor (roles/metastore.editor) für das Dataproc Metastore-Nutzerkonto oder -Dienstkonto
  • So gewähren Sie die Berechtigung zum Starten einer Migration: Migration Admin (roles/metastore.migrationAdmin) für den Dataproc Metastore-Dienst-Agent im Dienstprojekt

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Je nach Projekteinstellungen zusätzliche Rollen zuweisen

Je nach Konfiguration Ihres Projekts müssen Sie möglicherweise die folgenden zusätzlichen Rollen hinzufügen. Beispiele dafür, wie du diese Rollen den entsprechenden Konten zuweist, findest du im Abschnitt Voraussetzungen weiter unten auf dieser Seite.

  • Gewähren Sie dem Dataproc Metastore-Dienst-Agent und dem [Google APIs-Dienst-Agent] die Rolle „Netzwerknutzer“ (roles/compute.networkUser).
  • Gewähren Sie dem Datastream-Dienst-Agent im Hostprojekt die Rolle „Netzwerkadministrator“ (roles/compute.networkAdmin).

Wenn sich Ihre Cloud SQL-Instanz in einem anderen Projekt als das Dataproc Metastore-Dienstprojekt befindet:

  • Gewähren Sie dem Dataproc Metastore-Dienst-Agent im Projekt der Cloud SQL-Instanz die Rollen roles/cloudsql.client und roles/cloudsql.instanceUser.

Wenn sich der Cloud Storage-Bucket für die Change-Data-Capture-Pipeline in einem anderen Projekt als Ihr Dataproc Metastore-Dienstprojekt befindet:

  • Prüfen Sie, ob der Datastream-Dienst-Agent die erforderlichen Berechtigungen zum Schreiben in den Bucket hat. In der Regel sind dies die Rollen roles/storage.objectViewer, roles/storage.objectCreator und roles/storage.legacyBucketReader.

Voraussetzungen für die verwaltete Migration

Zur Vereinfachung der Datenübertragung verwendet Dataproc Metastore Proxys und eine Change-Data-Capture-Pipeline. Es ist wichtig, dass Sie verstehen, wie diese funktionieren, bevor Sie mit der Übertragung beginnen.

Wichtige Begriffe

  • Dienstprojekt: Ein Dienstprojekt ist das Google Cloud-Projekt, in dem Sie Ihren Dataproc Metastore-Dienst erstellt haben.
  • Hostprojekt: Ein Hostprojekt ist das Google Cloud-Projekt, das Ihre freigegebene VPC-Netzwerke enthält. Ein oder mehrere Dienstprojekte können mit Ihrem Hostprojekt verknüpft werden, um diese freigegebenen Netzwerke zu nutzen. Weitere Informationen finden Sie unter Freigegebene VPC.
  1. Aktivieren Sie die Datastream API in Ihrem Dienstprojekt.
  2. Gewähren Sie dem Dataproc Metastore-Dienst-Agent in Ihrem Dienstprojekt die Rolle roles/metastore.migrationAdmin.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
    
  3. Fügen Sie die folgenden Firewallregeln hinzu.

    Verbindung zwischen Dataproc Metastore und Ihrer privaten IP-Instanz in Cloud SQL herstellen.

    • Eine Firewallregel, die Traffic von der Systemdiagnoseprüfung zum Netzwerk-Load-Balancer des SOCKS5-Proxys zulässt. Beispiel:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--allow=tcp:1080 --source-ranges=35.191.0.0/16,130.211.0.0/22
      

      An Port 1080 wird der SOCKS5-Proxyserver ausgeführt.

    • Eine Firewallregel, die Traffic vom Load-Balancer zur SOCKS5-Proxy-MIG zulässt. Beispiel:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
      
    • Eine Firewallregel, die Traffic vom PSC-Dienstanhang zum Load-Balancer zulässt. Beispiel:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
      

    Eine Firewallregel, die Datastream die Verwendung des CIDR-IP-Bereichs /29 zum Erstellen einer privaten IP-Verbindung erlaubt. Beispiel:

    gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
    

Optional: Schritte bei Verwendung einer freigegebene VPC

Führen Sie die folgenden Schritte aus, wenn Sie eine freigegebene VPC einrichten.

Weitere Informationen zu einer freigegebene VPC finden Sie unter Dienstprojektadministratoren.

  1. Gewähren Sie dem Dataproc Metastore-Dienst-Agent und dem Google API-Dienst-Agent im Hostprojekt die Rolle roles/compute.networkUser.

    gcloud projects add-iam-policy-binding HOST_PROJECT  --role "roles/compute.networkUser" --member "serviceAccount:service-SERVICE_ACCOUNT@gcp-sa-metastore.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT  --role "roles/compute.networkUser" --member "serviceAccount:SERVICE_PROJECT@cloudservices.gserviceaccount.com"
    
  2. Gewähren Sie dem Datastream-Dienst-Agent im Hostprojekt die Rolle roles/compute.networkAdmin.

    gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
    

Wenn Sie die Rolle roles/compute.networkAdmin nicht zuweisen können, erstellen Sie eine benutzerdefinierte Rolle mit den Berechtigungen, die unter Voraussetzungen für freigegebene VPC aufgeführt sind.

  • Diese Berechtigungen sind erforderlich, um zu Beginn der Migration ein Peering zwischen dem VPC-Netzwerk im Hostprojekt mit Datastream einzurichten.

  • Diese Rolle kann entfernt werden, sobald die Migration gestartet wurde. Wenn Sie die Rolle vor Abschluss der Migration entfernen, kann Dataproc Metastore den Peering-Job jedoch nicht bereinigen. In diesem Fall müssen Sie den Job selbst bereinigen.

Überlegungen zu Proxy und Pipeline

Proxys

Dataproc Metastore verwendet einen Cloud SQL Auth-Proxy, der mit einem SOCKS5-Proxy verkettet ist, um eine Verbindung zu Ihrer privaten IP-Cloud SQL-Instanz herzustellen. Die SOCKS5-Proxyserver werden über einen Dienstanhang bereitgestellt, wie im Architekturdiagramm zu verwalteten Migrationen gezeigt.

  • Da ein NAT-Subnetz nicht mehr als 1 Dienstanhang haben kann, ist für jede Migration ein dediziertes NAT-Subnetz erforderlich.

  • Um regionsübergreifende Latenzprobleme zu vermeiden, geben Sie Subnetze an, die sich in derselben Region wie Ihre Cloud SQL-Instanz befinden, um den SOCKS5-Proxy zu hosten. Beispiel: proxy_subnet und nat_subnet.

Change Data Capture-Pipeline

Für die Change-Data-Capture-Pipeline wird über VPC-Peering eine Datastream- und eine Cloud SQL-Verbindung mit privater IP-Adresse hergestellt.

  • Bei jeder Migration wird eine neue private Verbindung erstellt und eine neue Peering-Verbindung hergestellt.

  • Das VPC-Netzwerk, in dem die Cloud SQL-Instanz gehostet wird, hat so viele Peering-Verbindungen wie aktive Migrationen. Sorgen Sie dafür, dass Ihr VPC-Netzwerk die Kapazität hat, alle erforderlichen Peering-Verbindungen zu hosten.

Nächste Schritte