Os clientes podem se conectar a um cluster do Managed Service para Apache Kafka de qualquer rede de nuvem privada virtual (VPC) nos seus projetos do Google Cloud.
Nesta página, explicamos como a rede é configurada no Serviço gerenciado para Apache Kafka, como ativar conexões entre clientes do Kafka e seu cluster e como ativar a conectividade entre projetos.
Visão geral
Quando você cria um cluster, o serviço o coloca em uma rede VPC gerenciada pelo Google Cloud. Essa rede é chamada de rede do inquilino. Cada cluster do Serviço gerenciado para Apache Kafka tem sua própria rede de locatário isolada. Para permitir que os aplicativos cliente se comuniquem com o cluster, conecte as sub-redes nas redes VPC à rede do locatário.
O diagrama a seguir mostra dois projetos Google Cloud , project-1 e
project-2. Um cluster do Managed Service para Apache Kafka está localizado em project-1.

As seguintes sub-redes estão conectadas ao cluster:
subnet-1, na rede VPCvpc-1emproject-1.subnet-2, na rede VPCvpc-2emproject-1.subnet-3, na rede VPCvpc-3emproject-2.
Conectar sub-redes a um cluster
Ao criar um cluster do serviço gerenciado para Apache Kafka, especifique pelo menos uma sub-rede. Depois, é possível atualizar o cluster para adicionar ou remover sub-redes.
As sub-redes conectadas podem pertencer ao mesmo projeto Google Cloud do cluster ou a um projeto diferente. As sub-redes conectadas precisam estar na mesma região que o cluster, mas os clientes em qualquer região na mesma VPC podem se conectar aos endereços IP nessa sub-rede. No máximo, uma sub-rede por rede VPC pode ser conectada ao cluster.
Para ver as sub-redes conectadas a um cluster, consulte Visualizar as sub-redes de um cluster.
Entradas de DNS do cluster
Quando você conecta uma sub-rede a um cluster, o serviço cria entradas DNS nessa rede de sub-rede para o endereço de inicialização e os brokers do cluster. Os clientes do Kafka usam o endereço de bootstrap para localizar os brokers e estabelecer uma conexão.
Os nomes DNS são os mesmos em todas as sub-redes conectadas, embora correspondam a endereços IP diferentes em cada uma delas. Como os nomes DNS são consistentes, todos os aplicativos cliente do Kafka podem usar o mesmo endereço de bootstrap. Para conferir o endereço de inicialização do cluster, consulte Conferir o endereço de inicialização de um cluster.
Para exemplos de aplicativos cliente que se conectam ao Serviço gerenciado para Apache Kafka, consulte os seguintes tutoriais:
Dimensionamento de sub-rede
Ao adicionar uma sub-rede a um cluster, ela precisa ter endereços IP suficientes disponíveis. Cada sub-rede exige um endereço IP para cada broker do Kafka, além de um endereço IP para o endereço de bootstrap. O tamanho mínimo do cluster para o Serviço gerenciado para Apache Kafka tem três agentes. Portanto, cada sub-rede precisa de pelo menos quatro endereços IP utilizáveis incluindo o endereço de bootstrap.
Se o cluster tiver mais de 45 vCPUs, ele terá um broker para cada 15 vCPUs. Nesse caso, calcule o número mínimo de endereços IP para cada sub-rede da seguinte maneira:
- Divida o número de vCPUs por 15.
- Arredonde para o número inteiro mais próximo.
- Adicione 1 para incluir o endereço de bootstrap.
Por exemplo, um cluster com 60 vCPUs precisa de pelo menos (60/15 + 1) = 5 endereços IP utilizáveis.
O Google pode mudar essa proporção no futuro. Para acomodar mudanças futuras, recomendamos que você aloque três vezes o número de endereços IP calculados na etapa anterior.
Ao planejar o tamanho da sub-rede, baseie seus cálculos no tamanho máximo que você espera para escalonar o cluster no futuro.
Se você planeja usar o Kafka Connect, considere também os requisitos de sub-rede para o cluster do Connect. Para mais informações, consulte sub-rede de worker.
Intervalos de IP públicos usados de maneira privada
É possível conectar o cluster a sub-redes que usam o espaço de endereço não RFC 1918. Esses intervalos de endereços IP são chamados de intervalos de IP público de uso particular (PUPI).
Nenhuma configuração extra é necessária para se conectar às sub-redes do PUPI. As sub-redes PUPI precisam usar um intervalo IPv4 válido que não seja um intervalo de sub-rede IPv4 proibido.
Conectar clientes e clusters entre projetos
Se você tiver clientes do Kafka em diferentes projetos do Google Cloud , poderá conectá-los ao cluster das seguintes maneiras:
As próximas seções descrevem essas opções.
Conectar um cluster entre projetos
É possível conectar sub-redes de outros projetos ao seu cluster. Para ativar o acesso entre projetos, conceda permissões à conta de serviço gerenciado pelo Google associada ao cluster. Em cada projeto em que você quer que os clientes do Kafka acessem o cluster, a conta de serviço precisa ter o papel do IAM de Agente de serviço gerenciado do Kafka nesse projeto. Esse papel permite que o cluster acesse recursos Google Cloud para criar recursos de rede e entradas de DNS.
Exemplo: se project-1 contiver o cluster e você quiser que os clientes em project-2 acessem o cluster, conceda à conta de serviço do Kafka gerenciado para project-1 o papel de agente de serviço do Kafka gerenciado em project-2. Em seguida, conecte uma sub-rede de project-2 ao cluster, conforme descrito em Conectar sub-redes ao cluster.
Para conceder os papéis necessários, siga estas etapas:
Console
Determine os Google Cloud projetos em que você quer que os clientes do Kafka acessem o cluster do Serviço gerenciado para Apache Kafka.
Para cada projeto, no console Google Cloud , acesse a página IAM:
Clique em Conceder acesso.
No campo Novos principais, insira o seguinte:
service-CLUSTER_PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.comSubstitua CLUSTER_PROJECT_NUMBER pelo número do projeto que contém o cluster do Serviço gerenciado para Apache Kafka.
Clique em Adicionar funções.
No campo Pesquisar papéis, insira
Managed Kafka Service Agent. O nome do agente de serviço aparece nos resultados da pesquisa.Nos resultados da pesquisa, selecione Agente de serviço do Kafka gerenciado.
Clique em Aplicar.
Clique em Salvar.
gcloud
Determine os Google Cloud projetos em que você quer que os clientes do Kafka acessem o cluster do Serviço gerenciado para Apache Kafka.
Para cada projeto, execute o 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.serviceAgentSubstitua:
- CLIENT_PROJECT_ID: o nome do projeto que contém a rede VPC a ser conectada.
- CLUSTER_PROJECT_NUMBER: o número do projeto que contém o cluster do Serviço Gerenciado para Apache Kafka.
Usar a VPC compartilhada para conectar projetos
Com a VPC compartilhada, uma organização pode conectar recursos de vários projetos a uma rede VPC comum. Para usar a VPC compartilhada com o Serviço gerenciado para Apache Kafka, siga estas etapas:
Crie um cluster do Serviço gerenciado para Apache Kafka.
Conceda à conta de serviço do Kafka gerenciado os papéis necessários no projeto host da VPC compartilhada, conforme descrito na seção anterior.
Conecte o cluster do serviço gerenciado para Apache Kafka a uma sub-rede na rede VPC compartilhada.
Os clientes no projeto host da VPC compartilhada ou nos projetos de serviço podem se conectar ao cluster.
Para saber quando usar a VPC compartilhada nas arquiteturas de rede, consulte Práticas recomendadas e arquiteturas de referência para o design da VPC.
Arquitetura de rede de um cluster
Esta seção descreve os detalhes da arquitetura de rede usada no serviço gerenciado para Apache Kafka.
Um cluster do Kafka abrange uma rede de locatário e uma ou mais redes de consumidores.
Na rede do locatário, o cluster tem um único endereço IP e URL de inicialização. Esse endereço de inicialização corresponde a um balanceador de carga conectado a todos os brokers no cluster. Cada broker também pode agir individualmente como um servidor de bootstrap, mas recomendamos que você use o endereço de bootstrap para ter mais confiabilidade.
Em cada rede do consumidor, o serviço cria um endpoint do Private Service Connect para o endereço de bootstrap e um endpoint para cada broker.
O URL do endereço de bootstrap é o mesmo em todas as redes VPC a que um cluster está conectado. O endereço IP é local para a rede do consumidor.
Os clientes se conectam aos agentes do Kafka usando nomes DNS. Esses nomes são registrados automaticamente em todas as rede VPC a que um cluster do Kafka está conectado. O endereço de bootstrap e o número da porta estão disponíveis como uma propriedade do cluster.
Os clientes usam o endereço de bootstrap para recuperar URLs de broker, que são resolvidos para endereços IP locais de cada rede VPC. Você pode encontrar os endereços IP e URLs reais do broker no Cloud DNS.
O diagrama a seguir mostra um exemplo de arquitetura de uma rede de cluster do Serviço Gerenciado para Apache Kafka.

Neste exemplo, o cluster tem três brokers e está na VPC do locatário.
Os agentes se comunicam com os clientes pela porta padrão do Kafka (9092) e têm endereços IP exclusivos. Neste exemplo, os três brokers têm endereços IP 10.128.10.2, 10.128.10.3 e 10.128.10.4, respectivamente.
Todos os três brokers se conectam ao balanceador de carga de bootstrap. Isso garante alta disponibilidade e tolerância a falhas regionais, porque o endereço de bootstrap não fica confinado a um único broker ou zona.
Solucionar problemas de configuração da rede VPC
Se o serviço não conseguir configurar a rede VPC do consumidor para acesso ao cluster do Serviço gerenciado para Apache Kafka, ele vai registrar mensagens semelhantes a estas:
Managed Service for Apache Kafka failed to set up networking in VPC subnet
to the cluster project.
Se os clientes do Kafka não conseguirem se conectar a um cluster do Managed Service para Apache Kafka
Ative as APIs Compute Engine e Cloud DNS no projeto pai da rede VPC consumidora.
Se o cluster do Serviço Gerenciado para Apache Kafka e a rede VPC do consumidor estiverem em projetos diferentes, configure as permissões necessárias. Consulte Conectar um cluster em vários projetos.
Verifique se nenhuma restrição da política da organização impede que o serviço crie os recursos necessários no projeto da rede VPC do consumidor.
Verifique se os clientes estão usando o endereço de bootstrap correto.
Verifique se os clientes do Kafka estão sendo executados em uma rede VPC configurada para acessar o cluster do Managed Service para Apache Kafka.
Se você executar o cliente Kafka em um computador ou laptop, poderá configurar uma instância do Compute Engine para usar como proxy e acessar o cluster do Managed Service para Apache Kafka. Para mais informações, consulte Configurar uma máquina cliente.