Ein Managed Service for Apache Kafka-Cluster bietet eine Umgebung zum Speichern und Verarbeiten von Nachrichtenstreams, die in Themen organisiert sind.
Sie können einen Cluster mit der Google Cloud -Konsole, der Google Cloud CLI, der Clientbibliothek oder der Managed Kafka API erstellen. Sie können die Open-Source-Apache Kafka API nicht zum Erstellen eines Clusters verwenden.
Hinweis
Prüfen Sie, ob Sie mit Folgendem vertraut sind:
Erforderliche Rollen und Berechtigungen zum Erstellen eines Clusters
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Managed Kafka Cluster Editor (roles/managedkafka.clusterEditor) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Clusters benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen eines Clusters erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen eines Clusters erforderlich:
-
Cluster erstellen:
managedkafka.clusters.create
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Eigenschaften eines Managed Service for Apache Kafka-Clusters
Wenn Sie einen Managed Service for Apache Kafka-Cluster erstellen oder aktualisieren, müssen Sie die folgenden Eigenschaften angeben.
Clustername
Der Name oder die ID des Managed Service for Apache Kafka-Clusters, den Sie erstellen. Tipps zum Benennen von Clustern finden Sie in den Richtlinien zum Benennen einer Ressource von Managed Service for Apache Kafka. Der Name eines Clusters kann nicht geändert werden.
Standort
Der Standort, an dem Sie den Cluster erstellen. Der Standort muss eine der unterstützten Google Cloud Regionen sein. Der Standort eines Clusters kann später nicht mehr geändert werden. Eine Liste der verfügbaren Standorte finden Sie unter Managed Service for Apache Kafka-Standorte.
Kapazitätskonfiguration
Die Rechen-, Arbeitsspeicher- und Speicherkapazität des Kafka-Clusters. Beim Erstellen eines Clusters müssen Sie die folgenden Werte angeben:
vCPUs: Die Anzahl der vCPUs im Cluster. Mindestens 3 vCPUs pro Cluster sind erforderlich.
Arbeitsspeicher: Die Menge an Arbeitsspeicher, die dem Cluster zugewiesen ist. Sie müssen zwischen 1 GiB und 8 GiB pro vCPU bereitstellen.
Wenn Sie beispielsweise einen Cluster mit 6 vCPUs erstellen, beträgt der minimale Arbeitsspeicher, den Sie dem Cluster zuweisen können, 6 GiB (1 GiB pro vCPU) und der maximale Arbeitsspeicher 48 GiB (8 GiB pro vCPU).
Der Dienst stellt automatisch Broker bereit, einschließlich nichtflüchtiger Speicher-Volumes für die Broker. Optional können Sie Benutzerdefinierter lokaler Speicher aktivieren, um die Festplattenkapazität für jeden Broker anzugeben. Weitere Informationen finden Sie unter Broker-Festplattengröße konfigurieren.
Richtlinien zum Schätzen der erforderlichen Kapazität für Ihren Cluster finden Sie unter Größe des Kafka-Clusters planen.
Netzwerkkonfiguration
Die Netzwerkkonfiguration ist eine Liste der VPC-Subnetze, in denen der Cluster zugänglich ist. Damit Clients Nachrichten senden oder empfangen können, müssen sie eines dieser Subnetze erreichen können.
Hier sind einige Richtlinien für Ihre Netzwerkkonfiguration:
Für einen Cluster ist mindestens ein Subnetz erforderlich. Der Höchstwert ist 10.
Pro Netzwerk ist für einen bestimmten Cluster genau ein Subnetz zulässig.
Jedes Subnetz muss sich in derselben Region wie der Cluster befinden. Das Projekt und das Netzwerk können unterschiedlich sein.
IP-Adressen für die Broker und den Bootstrap-Server werden in jedem Subnetz automatisch zugewiesen. Außerdem werden DNS-Einträge für diese IP-Adressen in den entsprechenden VPC-Netzwerken erstellt.
Wenn Sie ein Subnetz aus einem anderen Projekt hinzufügen, müssen Sie dem von Google verwalteten Dienstkonto, das dem Cluster zugeordnet ist, Berechtigungen erteilen. Weitere Informationen finden Sie unter Cluster projektübergreifend verbinden.
Nachdem Sie den Cluster erstellt haben, können Sie die Liste der Subnetze aktualisieren. Weitere Informationen zur Vernetzung finden Sie unter Vernetzung für Managed Service for Apache Kafka konfigurieren.
Öffentliche Cluster
Optional können Sie Ihren Cluster als öffentlichen Cluster konfigurieren, damit Clientanwendungen über das öffentliche Internet eine Verbindung zu Ihrem Cluster herstellen und Kafka-Vorgänge ausführen können, einschließlich des Sendens und Empfangens von Nachrichten. Wenn Sie den öffentlichen Zugriff aktivieren möchten, müssen Sie einen oder mehrere zulässige Quell-IP-Bereiche angeben.
Wenn Sie zulässige Quell-IP-Bereiche konfigurieren, gelten die folgenden Regeln:
Alle zulässigen Quell-IP-Bereiche müssen in IPv4-CIDR-Notation angegeben werden (z. B.
203.0.113.0/24oder198.51.100.5/32).Die Größe jedes CIDR-Subnetzes muss zwischen
/16und/32liegen.CIDR-Bereiche dürfen sich nicht überschneiden.
Alle zulässigen Quell-IP-Bereiche müssen öffentlich routingfähig sein. Private IP-Bereiche wie
10.0.0.0/8(RFC 1918) werden abgelehnt.Sie können maximal 500 zulässige Quell-IP-Bereiche angeben.
IPv6-Adressen werden nicht unterstützt.
Bevor Sie den öffentlichen Zugriff für einen Cluster aktivieren, sollten Sie Clients mit einem öffentlichen Cluster verbinden lesen, um zu erfahren, wie die Funktion für den öffentlichen Zugriff implementiert wird.
Labels
Labels sind Schlüssel/Wert-Paare, mit denen Sie Ressourcen organisieren und identifizieren können.
Mit Labels können Sie Ressourcen nach Umgebung kategorisieren. Beispiele sind "env:production" und "owner:data-engineering".
Sie können Ressourcen anhand ihrer Labels filtern und nach ihnen suchen. Angenommen, Sie haben mehrere Managed Service for Apache Kafka-Cluster für verschiedene Abteilungen. Sie können Cluster mit dem Label "department:marketing" konfigurieren und danach suchen, um den relevanten Cluster zu finden.
Konfiguration für Neuausgleich
Mit dieser Einstellung wird festgelegt, ob der Dienst Partitionen automatisch auf Broker verteilt.
Folgende Modi sind verfügbar:
Automatische Lastverteilung bei Hochskalierung: Wenn diese Option aktiviert ist, löst der Dienst automatisch eine Lastverteilung von Replikaten aus, wenn Sie den Cluster hochskalieren. Dieser Modus trägt zu einer gleichmäßigen Lastverteilung bei, kann aber die Leistung während des Rebalancing-Vorgangs vorübergehend beeinträchtigen.
Kein Neuausgleich: Wenn diese Option aktiviert ist, werden Replikate nicht automatisch neu ausgeglichen.
Weitere Informationen finden Sie unter Broker-Partitionen neu ausgleichen.
Verschlüsselung
Managed Service for Apache Kafka kann Nachrichten mitGoogle-owned and Google-managed encryption keys (Standard) oder mit vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) verschlüsseln. Jede Nachricht wird im Ruhezustand und während der Übertragung verschlüsselt. Der Verschlüsselungstyp für einen Cluster ist unveränderlich.
Standardmäßig wird Google-owned and Google-managed encryption keys verwendet. Diese Schlüssel werden vollständig von Google Cloud in seiner Infrastruktur erstellt, verwaltet und gespeichert.
CMEKs sind Verschlüsselungsschlüssel, die Sie mit Cloud Key Management Service verwalten. Mit dieser Funktion haben Sie mehr Kontrolle über die Schlüssel, die zum Verschlüsseln inaktiver Daten in unterstützten Google Cloud Diensten verwendet werden. Die Verwendung von CMEK verursacht zusätzliche Kosten im Zusammenhang mit Cloud Key Management Service. Wenn Sie CMEK verwenden, muss sich Ihr Schlüsselbund am selben Speicherort wie die Ressourcen befinden, für die Sie ihn verwenden. Weitere Informationen finden Sie unter Nachrichtenverschlüsselung konfigurieren.
mTLS-Konfiguration
Sie können mTLS optional als alternative Authentifizierungsmethode konfigurieren, bei der Clientzertifikate verwendet werden. Die Konfiguration umfasst Folgendes:
CA-Pools: Eine Liste mit 1 bis 10 CAS-Pools (Certificate Authority Service), denen der Cluster für die Clientauthentifizierung vertraut.
SSL-Prinzipalzuordnungsregeln: Eine optionale, aber empfohlene
ssl.principal.mapping.rules-Broker-Eigenschaft, um lange Zertifikat-Prinzipalnamen für die Verwendung in Kafka-ACLs zu vereinfachen.
Weitere Informationen zu mTLS finden Sie unter mTLS-Authentifizierung konfigurieren.
Cluster erstellen
Bevor Sie einen Cluster erstellen, lesen Sie die Dokumentation zu Clustereigenschaften.
Das Erstellen eines Clusters dauert in der Regel 20 bis 30 Minuten.
So erstellen Sie einen Cluster:
Console
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Wählen Sie Erstellen aus.
Die Seite Kafka-Cluster erstellen wird geöffnet.
Geben Sie für Clustername einen String ein.
Weitere Informationen zum Benennen eines Clusters finden Sie unter Richtlinien zum Benennen einer Managed Service for Apache Kafka-Ressource.
Geben Sie unter Standort einen unterstützten Standort ein.
Weitere Informationen zu unterstützten Standorten finden Sie unter Unterstützte Standorte für Managed Service for Apache Kafka.
Geben Sie für die Kapazitätskonfiguration Werte für Arbeitsspeicher und vCPUs ein.
Weitere Informationen zum Festlegen der Größe eines Clusters finden Sie unter Kafka-Clustergröße planen.
Optional. So geben Sie die Broker-Festplattenkapazität an:
Klicken Sie auf den Ein/Aus-Button Benutzerdefinierte Größe des lokalen Speichers aktivieren, um die Position „Ein“ festzulegen.
Geben Sie im Feld Benutzerdefinierter lokaler Speicher die Laufwerkgröße pro Broker in GiB ein.
Wenn Sie den Schalter Benutzerdefinierte Größe des lokalen Speichers aktivieren deaktiviert lassen, wird die Standardlaufwerkskapazität bereitgestellt. Weitere Informationen finden Sie unter Broker-Festplattengröße konfigurieren.
Geben Sie unter Netzwerkkonfiguration die folgenden Details ein:
- Projekt: Das Projekt, in dem sich das Subnetzwerk befindet. Das Subnetz muss sich in derselben Region wie der Cluster befinden, das Projekt kann jedoch ein anderes sein.
- Netzwerk: Das Netzwerk, mit dem das Subnetz verbunden ist.
- Subnetzwerk: Der Name des Subnetzes.
- Subnetz-URI-Pfad: Dieses Feld wird automatisch ausgefüllt. Alternativ können Sie hier den Subnetzpfad eingeben. Der Name des Subnetzes muss das Format
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_IDhaben. - Klicken Sie auf Fertig.
Optional: Wenn Sie weitere Subnetze hinzufügen möchten, klicken Sie auf Verbundenes Subnetz hinzufügen.
Sie können bis zu 10 weitere Subnetze hinzufügen.
Optional: Aktivieren Sie den öffentlichen Zugriff auf Ihren Cluster.
Wählen Sie im Abschnitt Konfiguration des öffentlichen Clusters unter Cluster kann erreicht werden die Option In einem privaten Netzwerk und über das öffentliche Internet aus.
Geben Sie im Feld Durch Kommas getrennte Liste zulässiger Quell-IPv4-Bereiche in CIDR-Notation die IP-Bereiche Ihrer Clientanwendungen in IPv4-CIDR-Notation ein (z. B.
203.0.113.0/24). IPv6-Adressen werden nicht unterstützt.
Optional: Legen Sie einen kundenverwalteten Verschlüsselungsschlüssel (CMEK) fest.
Wählen Sie unter Verschlüsselung die Option Cloud KMS-Schlüssel aus.
Wählen Sie für Schlüsseltyp die Option Cloud KMS aus.
Wählen Sie unter Vom Kunden verwalteten Schlüssel auswählen den CMEK aus oder geben Sie ihn ein.
Wenn diese Option nicht angezeigt wird, müssen Sie die Cloud KMS API für das Projekt aktiviert haben.
Weitere Informationen finden Sie unter Nachrichtenverschlüsselung konfigurieren.
Klicken Sie auf Erstellen.
gcloud
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
-
PROJECT_ID: Projekt-ID. -
LOCATION: Der Standort des Clusters. -
CLUSTER_ID: die ID des Clusters. -
CPU_COUNT: die Anzahl der vCPUs für den Cluster. -
MEMORY: die Größe des Arbeitsspeichers für den Cluster. Beispiel:3GiB. -
SUBNET_ID: die Subnetz-ID des Subnetzes, mit dem eine Verbindung hergestellt werden soll. Beispiel:default. -
ENCRYPTION_KEY: Die ID des kundenverwalteten Verschlüsselungsschlüssels, der für den Cluster verwendet werden soll. Dies ist optional. -
LABELS: die Labels, die dem Cluster zugeordnet werden sollen. -
ALLOWED_SOURCE_IP_RANGES: Die zulässigen Quell-IP-Bereiche für den öffentlichen Cluster. Dies ist optional.
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud managed-kafka clusters create CLUSTER_ID \ --location=LOCATION \ --cpu=CPU_COUNT \ --memory=MEMORY \ --subnets=projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID \ --auto-rebalance \ --encryption-key=ENCRYPTION_KEY \ --async \ --labels=LABELS \ --public-cluster \ --allowed-source-ip-ranges=ALLOWED_SOURCE_IP_RANGES
Windows (PowerShell)
gcloud managed-kafka clusters create CLUSTER_ID ` --location=LOCATION ` --cpu=CPU_COUNT ` --memory=MEMORY ` --subnets=projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID ` --auto-rebalance ` --encryption-key=ENCRYPTION_KEY ` --async ` --labels=LABELS ` --public-cluster ` --allowed-source-ip-ranges=ALLOWED_SOURCE_IP_RANGES
Windows (cmd.exe)
gcloud managed-kafka clusters create CLUSTER_ID ^ --location=LOCATION ^ --cpu=CPU_COUNT ^ --memory=MEMORY ^ --subnets=projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID ^ --auto-rebalance ^ --encryption-key=ENCRYPTION_KEY ^ --async ^ --labels=LABELS ^ --public-cluster ^ --allowed-source-ip-ranges=ALLOWED_SOURCE_IP_RANGES
Sie sollten eine Antwort ähnlich der folgenden erhalten:
done: false metadata: '@type': type.googleapis.com/google.cloud.managedkafka.v1.OperationMetadata apiVersion: v1 createTime: 'CREATE_TIME' requestedCancellation: false target: projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID verb: create name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Speichere die OPERATION_ID, um
progresszu tracken.-
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
-
PROJECT_ID: Ihre Google Cloud Projekt-ID -
LOCATION: Der Standort des Clusters. -
CLUSTER_ID: die ID des Clusters. -
CPU_COUNT: die Anzahl der vCPUs für den Cluster. -
MEMORY: Die Größe des Arbeitsspeichers für den Cluster in Byte. Beispiel:3221225472. -
SUBNET_ID: Subnetz-ID des Subnetzes, mit dem eine Verbindung hergestellt werden soll. Beispiel:default.
HTTP-Methode und URL:
POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters?clusterId=CLUSTER_ID
JSON-Text anfordern:
{
"capacityConfig": {
"vcpuCount": CPU_COUNT,
"memoryBytes": MEMORY
},
"gcpConfig": {
"accessConfig": {
"networkConfigs": [
{
"subnet": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID"
}
]
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.managedkafka.v1.OperationMetadata",
"createTime": "CREATE_TIME",
"target": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Terraform
Sie können eine Terraform-Ressource verwenden, um einen Cluster zu erstellen.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Go
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Go unter Clientbibliotheken installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Managed Service for Apache Kafka Go API.
Richten Sie zur Authentifizierung bei Managed Service for Apache Kafka die Standardanmeldedaten für Anwendungen(Application Default Credentials, ADC) ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Java unter Clientbibliotheken installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Java API für Managed Service for Apache Kafka.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Managed Service for Apache Kafka zu authentifizieren. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Anleitung zur Einrichtung von Python unter Clientbibliotheken installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API für Managed Service for Apache Kafka.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Managed Service for Apache Kafka zu authentifizieren. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Vorgang zur Clustererstellung überwachen
Sie können den folgenden Befehl nur ausführen, wenn Sie den Cluster mit der gcloud CLI erstellt haben.
Das Erstellen eines Clusters dauert in der Regel 20 bis 30 Minuten. Um den Fortschritt der Clustererstellung zu verfolgen, verwendet der Befehl
gcloud managed-kafka clusters createeinen Vorgang mit langer Ausführungszeit (Long-Running Operation, LRO), den Sie mit dem folgenden Befehl überwachen können:gcloud managed-kafka operations describe OPERATION_ID \ --location=LOCATIONErsetzen Sie Folgendes:
OPERATION_IDmit dem Wert der Vorgangs-ID aus dem vorherigen Abschnitt.LOCATIONdurch den Wert des Standorts aus dem vorherigen Abschnitt.
Fehlerbehebung
Informationen zur Fehlerbehebung beim Erstellen eines Clusters finden Sie unter Fehler beim Erstellen von Kafka-Clustern.