Netzwerk für Managed Service for Apache Kafka konfigurieren

Clients können von jedem VPC-Netzwerk (Virtual Private Cloud) in Ihren Google Cloud-Projekten aus eine Verbindung zu einem Managed Service for Apache Kafka-Cluster herstellen.

Auf dieser Seite wird beschrieben, wie die Netzwerkkonfiguration in Managed Service for Apache Kafka erfolgt, wie Sie Verbindungen zwischen Kafka-Clients und Ihrem Cluster aktivieren und wie Sie projektübergreifende Verbindungen aktivieren.

Übersicht

Wenn Sie einen Cluster erstellen, wird er vom Dienst in einem VPC-Netzwerk platziert, das von Google Cloudverwaltet wird. Dieses Netzwerk wird als Mandantennetzwerk bezeichnet. Jeder Managed Service for Apache Kafka-Cluster hat sein eigenes isoliertes Mandantennetzwerk. Damit Clientanwendungen mit dem Cluster kommunizieren können, verbinden Sie Subnetze in Ihren VPC-Netzwerken mit dem Mandantennetzwerk.

Das folgende Diagramm zeigt zwei Google Cloud Projekte, project-1 und project-2. Ein Managed Service for Apache Kafka-Cluster befindet sich in project-1.

Ein Managed Service for Apache Kafka-Cluster mit drei verbundenen Subnetzen

Die folgenden Subnetze sind mit dem Cluster verbunden:

  • subnet-1 im VPC-Netzwerk vpc-1 in project-1.
  • subnet-2 im VPC-Netzwerk vpc-2 in project-1.
  • subnet-3 im VPC-Netzwerk vpc-3 in project-2.

Subnetze mit einem Cluster verbinden

Wenn Sie zum ersten Mal einen Managed Service for Apache Kafka-Cluster erstellen, müssen Sie mindestens ein Subnetz angeben. Später können Sie den Cluster aktualisieren, um Subnetze hinzuzufügen oder zu entfernen.

Verbundene Subnetze können demselben Google Cloud Projekt wie der Cluster oder einem anderen Projekt angehören. Verbundene Subnetze müssen sich in derselben Region wie der Cluster befinden, aber Clients in einer beliebigen Region innerhalb derselben VPC können eine Verbindung zu den IP-Adressen in diesem Subnetz herstellen. Pro VPC-Netzwerk kann höchstens ein Subnetz mit dem Cluster verbunden werden.

Informationen zum Ansehen der Subnetze, die mit einem Cluster verbunden sind, finden Sie unter Subnetze eines Clusters ansehen.

Cluster-DNS-Einträge

Wenn Sie ein Subnetz mit einem Cluster verbinden, erstellt der Dienst DNS-Einträge innerhalb dieses Subnetzwerks für die Bootstrap-Adresse und die Broker des Clusters. Kafka-Clients verwenden die Bootstrap-Adresse, um die Broker zu finden und eine Verbindung herzustellen.

Die DNS-Namen sind in allen verbundenen Subnetzen gleich, obwohl sie in jedem Subnetz unterschiedlichen IP-Adressen entsprechen. Da die DNS-Namen konsistent sind, können alle Ihre Kafka-Clientanwendungen dieselbe Bootstrap-Adresse verwenden. Informationen zum Abrufen der Bootstrap-Adresse des Clusters finden Sie unter Bootstrap-Adresse eines Clusters ansehen.

Beispiele für Clientanwendungen, die eine Verbindung zu Managed Service for Apache Kafka herstellen, finden Sie in den folgenden Anleitungen:

Subnetzgröße

Wenn Sie einem Cluster ein Subnetz hinzufügen, muss das Subnetz genügend IP-Adressen haben. Für jedes Subnetz ist eine IP-Adresse für jeden Kafka-Broker sowie eine IP-Adresse für die Bootstrap-Adresse erforderlich. Die Mindestgröße für einen Managed Service for Apache Kafka-Cluster beträgt drei Broker. Daher benötigt jedes Subnetz mindestens vier nutzbare IP-Adressen, einschließlich der Bootstrap-Adresse.

Wenn Ihr Cluster mehr als 45 vCPUs hat, gibt es einen Broker für jeweils 15 vCPUs. In diesem Fall berechnen Sie die Mindestanzahl der IP-Adressen für jedes Subnetz so:

  1. Teilen Sie die Anzahl der vCPUs durch 15.
  2. Runden Sie auf die nächste ganze Zahl auf.
  3. Addieren Sie 1, um die Bootstrap-Adresse zu berücksichtigen.

Ein Cluster mit 60 vCPUs benötigt beispielsweise mindestens (60/15 + 1) = 5 nutzbare IP-Adressen.

Google kann das Verhältnis von Brokern zu vCPUs in Zukunft ändern. Um zukünftige Änderungen zu berücksichtigen, empfehlen wir, die dreifache Anzahl der im vorherigen Schritt berechneten IP-Adressen zuzuweisen.

Wenn Sie die Subnetzgröße planen, sollten Sie Ihre Berechnungen auf der maximalen Größe basieren, die Sie für die zukünftige Skalierung Ihres Clusters erwarten.

Wenn Sie Kafka Connect verwenden möchten, sollten Sie auch die Subnetzanforderungen für den Connect-Cluster berücksichtigen. Weitere Informationen finden Sie unter Worker-Subnetz.

Privat verwendete öffentliche IP-Bereiche

Sie können Ihren Cluster mit Subnetzen verbinden, die den Adressraum außerhalb von RFC 1918 verwenden. Solche IP-Adressbereiche werden als privat verwendete öffentliche IP-Bereiche (PUPI-Bereiche) bezeichnet.

Für die Verbindung mit PUPI-Subnetzen ist keine zusätzliche Konfiguration erforderlich. Die PUPI-Subnetze müssen einen gültigen IPv4-Bereich verwenden, der kein unzulässiger IPv4-Subnetzbereich ist.

Clients und Cluster projektübergreifend verbinden

Wenn Sie Kafka-Clients in verschiedenen Google Cloud Projekten haben, können Sie sie auf folgende Weise mit Ihrem Cluster verbinden:

In den nächsten Abschnitten werden diese Optionen beschrieben.

Cluster projektübergreifend verbinden

Sie können Subnetze aus anderen Projekten mit Ihrem Cluster verbinden. Wenn Sie projektübergreifenden Zugriff aktivieren möchten, müssen Sie dem von Google verwalteten Dienstkonto, das dem Cluster zugeordnet ist, Berechtigungen erteilen. Für jedes Projekt, in dem Kafka-Clients auf den Cluster zugreifen sollen, muss das Dienstkonto die IAM-Rolle Managed Kafka Service Agent für dieses Projekt haben. Mit dieser Rolle kann der Cluster aufGoogle Cloud -Ressourcen zugreifen, um Netzwerkressourcen und DNS-Einträge zu erstellen.

Beispiel: Wenn project-1 den Cluster enthält und Sie möchten, dass Clients in project-2 auf den Cluster zugreifen können, weisen Sie dem Managed Kafka-Dienstkonto für project-1 die Managed Kafka-Dienst-Agent-Rolle für project-2 zu. Stellen Sie dann eine Verbindung von einem Subnetz aus project-2 zum Cluster her, wie unter Subnetze mit dem Cluster verbinden beschrieben.

Führen Sie die folgenden Schritte aus, um die erforderlichen Rollen zuzuweisen:

Console

  1. Legen Sie die Google Cloud Projekte fest, in denen Ihre Kafka-Clients auf den Managed Service for Apache Kafka-Cluster zugreifen sollen.

  2. Rufen Sie für jedes Projekt in der Google Cloud Console die Seite IAM für das jeweilige Projekt auf:

    Zur IAM-Seite

  3. Klicken Sie auf Zugriffsrechte erteilen.

  4. Geben Sie im Feld Neue Hauptkonten Folgendes ein:

    service-CLUSTER_PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com
    

    Ersetzen Sie CLUSTER_PROJECT_NUMBER durch die Projektnummer des Projekts, das den Managed Service for Apache Kafka-Cluster enthält.

  5. Klicken Sie auf Rollen hinzufügen.

  6. Geben Sie im Feld Nach Rollen suchen Managed Kafka Service Agent ein. Der Name des Dienst-Agents wird in den Suchergebnissen angezeigt.

  7. Wählen Sie in den Suchergebnissen Managed Kafka Service Agent aus.

  8. Klicken Sie auf Übernehmen.

  9. Klicken Sie auf Speichern.

gcloud

  1. Legen Sie die Google Cloud Projekte fest, in denen Ihre Kafka-Clients auf den Managed Service for Apache Kafka-Cluster zugreifen sollen.

  2. Führen Sie für jedes Projekt den Befehl gcloud projects add-iam-policy-binding aus:

    gcloud projects add-iam-policy-binding CLIENT_PROJECT_ID \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com \
        --role=roles/managedkafka.serviceAgent
    

    Ersetzen Sie Folgendes:

    • CLIENT_PROJECT_ID: der Name des Projekts, das das VPC-Netzwerk enthält, mit dem eine Verbindung hergestellt werden soll
    • CLUSTER_PROJECT_NUMBER ist die Projektnummer des Projekts, das den Managed Service for Apache Kafka-Cluster enthält.

Freigegebene VPC zum Verbinden von Projekten verwenden

Mit Shared VPC können Organisationen Ressourcen aus mehreren Projekten mit einem gemeinsamen VPC-Netzwerk verbinden. So verwenden Sie freigegebene VPC mit Managed Service for Apache Kafka:

  1. Erstellen Sie ein Managed Service for Apache Kafka-Cluster.

  2. Freigegebene VPC bereitstellen.

  3. Weisen Sie dem Managed Kafka-Dienstkonto die erforderlichen Rollen im freigegebene VPC-Hostprojekt zu, wie im vorherigen Abschnitt beschrieben.

  4. Verbinden Sie den Managed Service for Apache Kafka-Cluster mit einem Subnetz im freigegebene VPC-Netzwerk.

Clients im Hostprojekt der freigegebene VPC oder in den Dienstprojekten können eine Verbindung zum Cluster herstellen.

Informationen dazu, wann Sie freigegebene VPC in Ihren Netzwerkarchitekturen verwenden sollten, finden Sie unter Best Practices und Referenzarchitekturen für das VPC-Design.

Netzwerkarchitektur eines Clusters

In diesem Abschnitt werden die Details der in Managed Service for Apache Kafka verwendeten Netzwerkarchitektur beschrieben.

  • Ein Kafka-Cluster erstreckt sich über ein Mandantennetzwerk und ein oder mehrere Verbrauchernetzwerke.

  • Im Mandantennetzwerk hat der Cluster eine einzelne Bootstrap-IP-Adresse und ‑URL. Diese Bootstrap-Adresse entspricht einem Load-Balancer, der mit allen Brokern im Cluster verbunden ist. Jeder Broker kann auch als Bootstrap-Server fungieren. Wir empfehlen jedoch, die Bootstrap-Adresse zu verwenden, um die Zuverlässigkeit zu erhöhen.

  • In jedem Verbrauchernetzwerk erstellt der Dienst einen Private Service Connect-Endpunkt für die Bootstrap-Adresse und einen Endpunkt für jeden Broker.

  • Die URL für die Bootstrap-Adresse ist in allen VPC-Netzwerken, mit denen ein Cluster verbunden ist, dieselbe. Die IP-Adresse ist lokal für das Consumer-Netzwerk.

  • Clients stellen über DNS-Namen eine Verbindung zu Kafka-Brokern her. Diese Namen werden automatisch in jedem VPC-Netzwerk registriert, mit dem ein Kafka-Cluster verbunden ist. Die Bootstrap-Adresse und ihre Portnummer sind als Attribut des Clusters verfügbar.

  • Clients verwenden die Bootstrap-Adresse, um Broker-URLs abzurufen. Diese URLs werden in IP-Adressen aufgelöst, die für jedes VPC-Netzwerk lokal sind. Die tatsächlichen Broker-IP-Adressen und ‑URLs finden Sie in Cloud DNS.

Das folgende Diagramm zeigt eine Beispielarchitektur für ein Netzwerk eines Managed Service for Apache Kafka-Clusters.

Ein Netzwerk von Managed Service for Apache Kafka

  • In diesem Beispiel hat der Cluster drei Broker und befindet sich in der VPC des Mandanten.

  • Broker kommunizieren über den Standard-Kafka-Port (9092) mit Clients und haben eindeutige IP-Adressen. In diesem Beispiel haben die drei Broker die IP-Adressen 10.128.10.2, 10.128.10.3 und 10.128.10.4.

  • Alle drei Broker stellen eine Verbindung zum Bootstrap-Load-Balancer her. Dies sorgt für Hochverfügbarkeit und regionale Fehlertoleranz, da die Bootstrap-Adresse nicht auf einen einzelnen Broker oder eine einzelne Zone beschränkt ist.

Fehlerbehebung bei der VPC-Netzwerkkonfiguration

Wenn der Dienst das VPC-Netzwerk des Nutzers nicht für den Zugriff auf den Managed Service for Apache Kafka-Cluster konfigurieren kann, werden Meldungen protokolliert, die den folgenden ähneln:

Managed Service for Apache Kafka failed to set up networking in VPC subnet
to the cluster project.

Wenn Ihre Kafka-Clients keine Verbindung zu einem Managed Service for Apache Kafka-Cluster herstellen können, führen Sie die folgenden Schritte zur Fehlerbehebung aus:

  • Aktivieren Sie die Compute Engine API und die Cloud DNS API im übergeordneten Projekt des VPC-Netzwerk des Kunden.

  • Wenn sich der Managed Service for Apache Kafka-Cluster und das VPC-Netzwerk des Consumers in verschiedenen Projekten befinden, konfigurieren Sie die erforderlichen Berechtigungen. Weitere Informationen finden Sie unter Cluster projektübergreifend verbinden.

  • Achten Sie darauf, dass keine Einschränkungen für Organisationsrichtlinien verhindern, dass der Dienst die erforderlichen Ressourcen im Projekt des Consumer-VPC-Netzwerk erstellt.

  • Achten Sie darauf, dass Clients die richtige Bootstrap-Adresse verwenden.

  • Achten Sie darauf, dass die Kafka-Clients in einem VPC-Netzwerk ausgeführt werden, das für den Zugriff auf den Managed Service for Apache Kafka-Cluster konfiguriert ist.

  • Wenn Sie den Kafka-Client auf einem Computer oder Laptop ausführen, können Sie eine Compute Engine-Instanz als Proxy für den Zugriff auf den Managed Service for Apache Kafka-Cluster einrichten. Weitere Informationen finden Sie unter Clientcomputer einrichten.

Nächste Schritte