I client possono connettersi a un cluster Managed Service per Apache Kafka da qualsiasi rete Virtual Private Cloud (VPC) nei tuoi Google Cloud progetti.
Questa pagina spiega come viene configurata la rete in Managed Service per Apache Kafka, come abilitare le connessioni tra i client Kafka e il cluster e come abilitare la connettività tra progetti.
Panoramica
Quando crei un cluster, il servizio lo inserisce in una rete VPC gestita da Google Cloud. Questa rete è chiamata rete tenant. Ogni cluster Managed Service per Apache Kafka ha la propria rete tenant isolata. Per consentire alle applicazioni client di comunicare con il cluster, devi connettere le subnet all'interno delle reti VPC alla rete tenant.
Il seguente diagramma mostra due Google Cloud progetti, project-1 e
project-2. Un cluster Managed Service per Apache Kafka si trova in project-1.

Le seguenti subnet sono connesse al cluster:
subnet-1, nella rete VPCvpc-1inproject-1.subnet-2, nella rete VPCvpc-2inproject-1.subnet-3, nella rete VPCvpc-3inproject-2.
Connetti le subnet a un cluster
Quando crei per la prima volta un cluster Managed Service per Apache Kafka, devi specificare almeno una subnet. In un secondo momento, puoi aggiornare il cluster per aggiungere o rimuovere subnet.
Le subnet connesse possono appartenere allo stesso Google Cloud progetto del cluster o a un progetto diverso. Le subnet connesse devono trovarsi nella stessa regione del cluster, ma i client in qualsiasi regione all'interno dello stesso VPC possono connettersi agli indirizzi IP in quella subnet. Al cluster può essere connessa al massimo una subnet per rete VPC.
Per visualizzare le subnet connesse a un cluster, consulta Visualizzare le subnet di un cluster.
Voci DNS del cluster
Quando connetti una subnet a un cluster, il servizio crea voci DNS all'interno della rete subnet per l'indirizzo di bootstrap e i broker del cluster. I client Kafka utilizzano l'indirizzo di bootstrap per individuare i broker e stabilire una connessione. Quando il server di bootstrap reindirizza un client a un broker specifico, utilizza l'URL dei broker anziché un indirizzo IP.
Gli URL di bootstrap e dei broker sono fissi per la durata di un cluster, ma il formato degli URL potrebbe essere diverso per i diversi cluster. Per ottenere l'indirizzo di bootstrap di un cluster, consulta Visualizzare l'indirizzo di bootstrap di un cluster.
I nomi DNS sono gli stessi in tutte le subnet connesse, anche se corrispondono a indirizzi IP diversi in ogni subnet. Poiché i nomi DNS sono coerenti, tutte le applicazioni client Kafka possono utilizzare lo stesso indirizzo di bootstrap.
Per esempi di applicazioni client che si connettono a Managed Service per Apache Kafka, consulta i seguenti tutorial:
Dimensionamento della subnet
Quando aggiungi una subnet a un cluster, la subnet deve avere abbastanza indirizzi IP disponibili. Ogni subnet richiede un indirizzo IP per ogni broker Kafka, più un indirizzo IP per l'indirizzo di bootstrap. La dimensione minima del cluster per Managed Service per Apache Kafka è di tre broker, quindi ogni subnet ha bisogno di almeno quattro indirizzi IP utilizzabili, incluso l'indirizzo di bootstrap.
Se il cluster ha più di 45 vCPU, ha un broker per ogni 15 vCPU. In questo caso, calcola il numero minimo di indirizzi IP per ogni subnet nel seguente modo:
- Dividi il numero di vCPU per 15.
- Arrotonda per eccesso al numero intero più vicino.
- Aggiungi 1 per tenere conto dell'indirizzo di bootstrap.
Ad esempio, un cluster con 60 vCPU ha bisogno di almeno (60/15 + 1) = 5 indirizzi IP utilizzabili.
In futuro, Google potrebbe modificare il rapporto tra broker e vCPU. Per adattarti a eventuali modifiche future, ti consigliamo di allocare 3 volte il numero di indirizzi IP calcolato nel passaggio precedente.
Quando pianifichi la dimensione della subnet, basa i calcoli sulla dimensione massima che prevedi di scalare il cluster in futuro.
Se prevedi di utilizzare Kafka Connect, tieni conto anche dei requisiti della subnet per il cluster di connessione. Per saperne di più, consulta la subnet worker.
Intervalli IP pubblici utilizzati privatamente
Puoi connettere il cluster alle subnet che utilizzano lo spazio di indirizzi non RFC 1918. Questi intervalli di indirizzi IP sono chiamati intervalli IP pubblici utilizzati privatamente (PUPI).
Non è necessaria alcuna configurazione aggiuntiva per connettersi alle subnet PUPI. Le subnet PUPI devono utilizzare un intervallo IPv4 valido che non sia un intervallo di subnet IPv4 vietato.
Connetti client e cluster tra progetti
Se hai client Kafka in progetti Google Cloud diversi, puoi connetterli al cluster nei seguenti modi:
- Connetti il cluster alle reti VPC in più progetti.
- Utilizza il VPC condiviso per connettere i progetti.
Le sezioni successive descrivono queste opzioni.
Connetti un cluster tra progetti
Puoi connettere le subnet di altri progetti al tuo cluster. Per abilitare l'accesso tra progetti, devi concedere le autorizzazioni al service account gestito da Google associato al cluster. Per ogni progetto in cui vuoi che i client Kafka accedano al cluster, il account di servizio deve avere il ruolo IAM Agente di servizio Kafka gestito nel progetto. Questo ruolo consente al cluster di accedere alle Google Cloud risorse, in modo che possa creare risorse di rete e voci DNS.
Esempio: se project-1 contiene il cluster e vuoi che i client in project-2 accedano al cluster, concedi al account di servizio Kafka gestito per project-1 il ruolo Agente di servizio Kafka gestito in project-2. Quindi
connetti una subnet da project-2 al cluster, come descritto in
Connetti le subnet al cluster.
Per concedere i ruoli necessari, segui questi passaggi:
Console
Determina i Google Cloud progetti in cui vuoi che i client Kafka accedano al cluster Managed Service per Apache Kafka.
Per ogni progetto, nella Google Cloud console, vai alla pagina IAM per quel progetto:
Fai clic su Concedi l'accesso.
Nel campo Nuovi principali, inserisci quanto segue:
service-CLUSTER_PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.comSostituisci CLUSTER_PROJECT_NUMBER con il numero di progetto del progetto che contiene il cluster Managed Service per Apache Kafka.
Fai clic su Aggiungi ruoli.
Nel campo Cerca ruoli, inserisci
Managed Kafka Service Agent. Il nome dell'agente di servizio viene visualizzato nei risultati di ricerca.Nei risultati di ricerca, seleziona Agente di servizio Kafka gestito.
Fai clic su Applica.
Fai clic su Salva.
gcloud
Determina i Google Cloud progetti in cui vuoi che i client Kafka accedano al cluster Managed Service per Apache Kafka.
Per ogni progetto, esegui il
gcloud projects add-iam-policy-bindingcomando:gcloud projects add-iam-policy-binding CLIENT_PROJECT_ID \ --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com \ --role=roles/managedkafka.serviceAgentSostituisci quanto segue:
- CLIENT_PROJECT_ID: il nome del progetto che contiene la rete VPC da connettere
- CLUSTER_PROJECT_NUMBER: il numero di progetto del progetto che contiene il cluster Managed Service per Apache Kafka
Utilizza il VPC condiviso per connettere i progetti
Il VPC condiviso consente a un'organizzazione di connettere risorse di più progetti a una rete VPC comune. Per utilizzare il VPC condiviso con Managed Service per Apache Kafka, segui questi passaggi:
Crea un cluster Managed Service per Apache Kafka.
Concedi al account di servizio Kafka gestito i ruoli richiesti nel progetto host del VPC condiviso, come descritto nella sezione precedente.
Connetti il cluster Managed Service per Apache Kafka a una subnet nella rete VPC condiviso.
I client nel progetto host del VPC condiviso o nei progetti di servizio possono connettersi al cluster.
Per informazioni su quando utilizzare il VPC condiviso nelle architetture di rete, consulta Best practice e architetture di riferimento per la progettazione di VPC.
Architettura di rete di un cluster
Questa sezione descrive i dettagli dell'architettura di rete utilizzata in Managed Service per Apache Kafka.
Un cluster Kafka si estende su una rete tenant e una o più reti consumer.
Nella rete tenant, il cluster ha un singolo indirizzo IP e URL di bootstrap. Questo indirizzo di bootstrap corrisponde a un bilanciatore del carico connesso a tutti i broker del cluster. Ogni broker può anche fungere da server di bootstrap, ma ti consigliamo di utilizzare l'indirizzo di bootstrap per l'affidabilità.
All'interno di ogni rete consumer, il servizio crea un Private Service Connect endpoint per l'indirizzo di bootstrap e un endpoint per ogni broker.
L'URL dell'indirizzo di bootstrap è lo stesso in tutte le reti VPC a cui è connesso un cluster. L'indirizzo IP è locale alla rete consumer.
I client si connettono ai broker Kafka utilizzando i nomi DNS. Questi nomi vengono registrati automaticamente in ogni rete VPC a cui è connesso un cluster Kafka. L'indirizzo di bootstrap e il relativo numero di porta sono disponibili come proprietà del cluster.
I client utilizzano l'indirizzo di bootstrap per recuperare gli URL dei broker. Questi URL vengono risolti in indirizzi IP locali per ogni rete VPC. Puoi trovare gli indirizzi IP e gli URL dei broker effettivi in Cloud DNS.
Il seguente diagramma mostra un'architettura di esempio di una rete di cluster Managed Service per Apache Kafka.

In questo esempio, il cluster ha tre broker e si trova nel VPC tenant.
I broker comunicano con i client tramite la porta Kafka predefinita (9092) e hanno indirizzi IP univoci. In questo esempio, i tre broker hanno rispettivamente gli indirizzi IP 10.128.10.2, 10.128.10.3 e 10.128.10.4.
Tutti e tre i broker si connettono al bilanciatore del carico di bootstrap. In questo modo si garantisce l'alta affidabilità e la tolleranza agli errori regionali, perché l'indirizzo di bootstrap non è limitato a un singolo broker o zona.
Risoluzione dei problemi
Per informazioni su come risolvere i problemi di rete, consulta Errori di rete.