Configura il networking per Managed Service per Apache Kafka

I client possono connettersi a un cluster Managed Service for Apache Kafka da qualsiasi rete Virtual Private Cloud (VPC) nei tuoi progetti Google Cloud.

Questa pagina spiega come viene configurata la rete in Managed Service per Apache Kafka, come attivare le connessioni tra i client Kafka e il cluster e come attivare 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 una propria rete tenant isolata. Per consentire alle applicazioni client di comunicare con il cluster, connetti le subnet all'interno delle reti VPC alla rete tenant.

Il seguente diagramma mostra due progetti Google Cloud , project-1 e project-2. Un cluster Managed Service per Apache Kafka si trova in project-1.

Un cluster Managed Service per Apache Kafka con tre subnet connesse

Le seguenti subnet sono connesse al cluster:

  • subnet-1, nella rete VPC vpc-1 in project-1.
  • subnet-2, nella rete VPC vpc-2 in project-1.
  • subnet-3, nella rete VPC vpc-3 in project-2.

Connettere le subnet a un cluster

Quando crei 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 progetto Google Cloud 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 di 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.

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 bootstrap. Per ottenere l'indirizzo di bootstrap del cluster, consulta Visualizzare l'indirizzo di bootstrap di un cluster.

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 un numero sufficiente di indirizzi IP disponibili. Ogni subnet richiede un indirizzo IP per ogni broker Kafka, più un indirizzo IP per l'indirizzo 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 come segue:

  1. Dividi il numero di vCPU per 15.
  2. Arrotonda per eccesso al numero intero più vicino.
  3. Aggiungi 1 per tenere conto dell'indirizzo bootstrap.

Ad esempio, un cluster con 60 vCPU richiede almeno (60/15 + 1) = 5 indirizzi IP utilizzabili.

Google potrebbe modificare il rapporto tra broker e vCPU in futuro. Per tenere conto di eventuali modifiche future, ti consigliamo di allocare un numero di indirizzi IP tre volte superiore a quello calcolato nel passaggio precedente.

Quando pianifichi le dimensioni della subnet, basa i tuoi calcoli sulle dimensioni massime che prevedi di scalare il tuo cluster in futuro.

Se prevedi di utilizzare Kafka Connect, considera anche i requisiti della subnet per il cluster di connessione. Per ulteriori informazioni, vedi subnet worker.

Intervalli IP pubblici utilizzati privatamente

Puoi connettere il cluster a subnet che utilizzano lo spazio di indirizzi non RFC 1918. Questi intervalli di indirizzi IP sono chiamati intervalli di 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.

Connettere client e cluster tra progetti

Se hai client Kafka in progetti diversi, puoi connetterli al cluster nei seguenti modi: Google Cloud

Le sezioni successive descrivono queste opzioni.

Connettere un cluster tra progetti

Puoi connettere le subnet di altri progetti al tuo cluster. Per attivare 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 disporre del ruolo IAM Service Agent Kafka gestito nel progetto. Questo ruolo consente al cluster di accedere alle risorseGoogle Cloud , 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 alaccount di serviziot Kafka gestito per project-1 il ruolo di service agent Kafka gestito su project-2. Poi collega una subnet da project-2 al cluster, come descritto in Connettere le subnet al cluster.

Per concedere i ruoli necessari, segui questi passaggi:

Console

  1. Determina i Google Cloud progetti in cui vuoi che i client Kafka accedano al cluster Managed Service per Apache Kafka.

  2. Per ogni progetto, nella console Google Cloud , vai alla pagina IAM per quel progetto:

    Vai alla pagina IAM

  3. Fai clic su Concedi l'accesso.

  4. Nel campo Nuove entità, inserisci quanto segue:

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

    Sostituisci CLUSTER_PROJECT_NUMBER con il numero di progetto del progetto che contiene il cluster Managed Service per Apache Kafka.

  5. Fai clic su Aggiungi ruoli.

  6. Nel campo Cerca ruoli, inserisci Managed Kafka Service Agent. Il nome del service agent viene visualizzato nei risultati di ricerca.

  7. Nei risultati di ricerca, seleziona Agente di servizio Kafka gestito.

  8. Fai clic su Applica.

  9. Fai clic su Salva.

gcloud

  1. Determina i Google Cloud progetti in cui vuoi che i client Kafka accedano al cluster Managed Service per Apache Kafka.

  2. Per ogni progetto, esegui il comando gcloud projects add-iam-policy-binding:

    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
    

    Sostituisci quanto segue:

    • CLIENT_PROJECT_ID: il nome del progetto che contiene la rete VPC a cui connettersi
    • CLUSTER_PROJECT_NUMBER: il numero di progetto del progetto che contiene il cluster Managed Service per Apache Kafka

Utilizzare 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 VPC condiviso con Managed Service per Apache Kafka, segui questi passaggi:

  1. Crea un cluster Managed Service per Apache Kafka.

  2. Provisioning del VPC condiviso.

  3. Concedi al account di servizio Kafka gestito i ruoli richiesti nel progetto host del VPC condiviso, come descritto nella sezione precedente.

  4. Collega 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 su 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 nel cluster. Ogni broker può anche fungere da server bootstrap singolarmente, ma ti consigliamo di utilizzare l'indirizzo bootstrap per affidabilità.

  • All'interno di ogni rete consumer, il servizio crea un endpoint Private Service Connect 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 per la 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 bootstrap e il relativo numero di porta sono disponibili come proprietà del cluster.

  • I client utilizzano l'indirizzo di bootstrap per recuperare gli URL del broker. Questi URL vengono risolti in indirizzi IP locali per ogni rete VPC. Puoi trovare gli indirizzi IP e gli URL del broker effettivi in Cloud DNS.

Il seguente diagramma mostra un'architettura di esempio di una rete di cluster Managed Service per Apache Kafka.

Una rete 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 unici. 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. Ciò garantisce alta disponibilità e tolleranza agli errori a livello regionale, perché l'indirizzo di bootstrap non è limitato a un singolo broker o zona.

Risolvi i problemi di configurazione della rete VPC

Se il servizio non riesce a configurare la rete VPC consumer per l'accesso al cluster Managed Service per Apache Kafka, registra messaggi simili ai seguenti:

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

Se i client Kafka non riescono a connettersi a un cluster Managed Service per Apache Kafka, segui questi passaggi per la risoluzione dei problemi:

  • Abilita le API Compute Engine e Cloud DNS nel progetto padre della rete VPC consumer.

  • Se il cluster Managed Service per Apache Kafka e la rete VPC consumer si trovano in progetti diversi, configura le autorizzazioni necessarie. Consulta Connettere un cluster tra progetti.

  • Assicurati che nessun vincolo dei criteri dell'organizzazione impedisca al servizio di creare le risorse necessarie nel progetto della rete VPC consumer.

  • Assicurati che i client utilizzino l'indirizzo di bootstrap corretto.

  • Assicurati che i client Kafka vengano eseguiti in una rete VPC configurata per accedere al cluster Managed Service per Apache Kafka.

  • Se esegui il client Kafka su un computer o un laptop, puoi configurare un'istanza Compute Engine da utilizzare come proxy per accedere al cluster Managed Service per Apache Kafka. Per saperne di più, vedi Configurare una macchina client.

Passaggi successivi