Os clientes podem se conectar a um cluster do Serviço Gerenciado do Google Cloud para Apache Kafka de qualquer rede de nuvem privada virtual (VPC) nos seus Google Cloud projetos. Também é possível ativar o acesso de intervalos de IP confiáveis pela Internet pública.
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 conectar clientes e clusters de maneira privada em diferentes projetos.
Uma rede VPC é uma versão virtual de uma rede física, implementada dentro do Google Cloud Google Cloud. Ela oferece conectividade de rede privada e segura para instâncias de VM, cargas de trabalho de contêiner e outros recursos. Para mais informações, consulte a visão geral das redes VPC.
Visão geral
Ao criar um cluster, o serviço coloca os agentes e endpoints de rede do cluster em uma rede VPC dentro de um projeto gerenciado pelo Google. Esse projeto é chamado de projeto locatário e a rede é chamada de rede locatária. Em contraste, seus recursos, aplicativos cliente e redes VPC do cliente residem no seu próprio projeto, que é chamado de projeto consumidor. Cada cluster do Serviço Gerenciado para Apache Kafka tem sua própria rede de locatário isolada.
As redes VPC são divididas em partições chamadas sub-redes. Cada sub-rede define um intervalo de endereços IP em uma região específica da rede de nuvem. Para permitir que os aplicativos cliente se comuniquem com o cluster, conecte as sub-redes nas redes VPC à rede do locatário ou, opcionalmente, ative o acesso público ao cluster para se conectar pela Internet pública.
O diagrama a seguir mostra dois Google Cloud projetos, project-1 e
project-2. Um cluster do Serviço Gerenciado para Apache Kafka está localizado em project-1.

As sub-redes a seguir 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, é necessário especificar pelo menos uma sub-rede. Mais tarde, é possível atualizar o cluster para adicionar ou remover sub-redes.
As sub-redes conectadas podem pertencer ao mesmo projeto do consumidor que o cluster ou a um projeto do consumidor diferente. Os aplicativos cliente em qualquer região nas redes VPC conectadas podem se conectar ao cluster. Para mais informações sobre locais e contagens de sub-redes, consulte Limitações.
Para mais informações sobre como visualizar sub-redes conectadas, consulte Visualizar um cluster.
Entradas de DNS do cluster
Ao conectar uma sub-rede a um cluster, o serviço cria entradas de DNS nessa rede de sub-rede para o endereço de inicialização e os agentes do cluster. Os clientes do Kafka usam o endereço de inicialização para localizar os agentes e estabelecer uma conexão. Quando o servidor de inicialização redireciona um cliente para um agente específico, ele usa o URL do agente em vez de um endereço IP.
Os URLs de inicialização e de agente são fixos durante a vida útil de um cluster, mas o formato dos URLs pode ser diferente para clusters diferentes. Para acessar o endereço de inicialização de um cluster, consulte Visualizar o endereço de inicialização de um cluster.
Os nomes DNS são os mesmos em todas as sub-redes conectadas, embora correspondam a endereços IP diferentes em cada sub-rede. Como os nomes DNS são consistentes, todos os aplicativos cliente do Kafka podem usar o mesmo endereço de inicialização.
Para exemplos de aplicativos cliente que se conectam ao Serviço Gerenciado para Apache Kafka, consulte os tutoriais a seguir:
Dimensionamento da sub-rede
Ao adicionar uma sub-rede a um cluster, ela precisa ter endereços IP suficientes disponíveis. Cada sub-rede requer um endereço IP para cada agente do Kafka, além de um endereço IP para o endereço de inicialização. 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 inicialização.
Se o cluster tiver mais de 45 vCPUs, ele terá um agente 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 considerar o endereço de inicialização.
Por exemplo, um cluster com 60 vCPUs precisa de pelo menos (60/15 + 1) = 5 endereços IP utilizáveis.
O Google pode mudar a proporção de agentes para vCPUs. Para acomodar as mudanças, recomendamos alocar 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 para o qual você espera escalonar o cluster.
Se você planeja usar Kafka Connect, então 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 usado de maneira privada (PUPI, na sigla em inglês).
Não é necessário fazer uma configuração extra para se conectar a sub-redes 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 de maneira privada em projetos
Se você quiser conectar clientes do Kafka de maneira privada em diferentes Google Cloud projetos ao cluster, use um dos seguintes métodos:
As seções a seguir descrevem tais opções.
Conectar um cluster em projetos
É possível conectar sub-redes de outros projetos ao cluster. Para ativar o acesso entre projetos, conceda permissões à conta de serviço gerenciado pelo Google associada ao cluster. Para 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 do serviço gerenciado do Kafka nesse projeto. Esse papel permite que o cluster acesse Google Cloud recursos para que ele possa criar recursos de rede e entradas DNS.
Por exemplo, se project-1 contiver o cluster e você quiser que os clientes em project-2 acessem o cluster, conceda à conta de serviço gerenciada do Kafka para project-1 o papel de agente do serviço gerenciado do Kafka 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 Google Cloud console, acesse a página IAM para esse projeto:
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 do projeto que contém o cluster do Serviço Gerenciado para Apache Kafka.
Clique em Adicionar funções.
No campo Pesquisar funções, insira
Managed Kafka Service Agent. O nome do agente de serviço aparece nos resultados da pesquisa.Nos resultados da pesquisa, selecione Agente do serviço gerenciado do Kafka.
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
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.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 gerenciada do Kafka 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 informações sobre quando usar a VPC compartilhada nas arquiteturas de rede, consulte Práticas recomendadas e arquiteturas de referência para projeto de VPC.
Conectar clientes a um cluster público
Se você tiver aplicativos cliente fora da rede VPC, ative o acesso público ao cluster. Um cluster público ainda requer uma sub-rede conectada. No entanto, não é necessário enviar tráfego por ela.
Quando você ativa o recurso de cluster público, o serviço provisiona endereços IPv4 externos para o agente do cluster e os endpoints de inicialização. O serviço também torna as entradas DNS do cluster publicamente resolvíveis para esses endereços IP públicos. Isso significa que os clientes externos podem usar o mesmo endereço de inicialização para localizar os agentes e estabelecer uma conexão. Essa implementação usa o DNS split horizon. Os clientes em redes VPC que contêm uma sub-rede conectada continuam resolvendo os endpoints privados, enquanto os clientes em outras redes resolvem os endpoints públicos. A ativação do recurso de cluster público não cria recursos extras no projeto do consumidor.
Ao ativar o recurso de cluster público, é necessário fornecer um ou mais intervalos de IP de origem permitidos. Para mais informações sobre tamanhos e limites de intervalo permitidos, consulte Clusters públicos ou Limitações.
É possível adicionar ou remover intervalos de IP de origem permitidos atualizando o cluster. O Serviço Gerenciado para Apache Kafka usa o Cloud Next Generation Firewall para restringir o acesso a clusters públicos. A remoção de intervalos de IP de origem permitidos se aplica apenas a novas conexões (consulte os efeitos no tráfego atual).
O serviço toma várias precauções para ajudar a garantir a segurança dos clusters públicos. Todas as conexões são criptografadas em trânsito usando TLS, e todas as conexões exigem autenticação. É necessário autenticar usando uma identidade do IAM com SASL ou um certificado de cliente com mTLS. O acesso anônimo não é permitido. Para mais informações, consulte Tipos de autenticação para agentes do Kafka.
Os administradores de segurança podem proibir clusters públicos no projeto com uma restrição de política da organização personalizada. Para mais informações sobre políticas da organização, consulte Criar restrições personalizadas.
Configurar firewalls de saída de redes externas
Em alguns casos, talvez seja necessário determinar os endereços IPv4 externos do agente e dos endpoints de inicialização. Para instruções sobre como recuperar esses valores, consulte Detalhes do cluster público.
O serviço disponibiliza essas informações das seguintes maneiras:
Os endereços IPv4 externos associados ao cluster estão disponíveis na API do Serviço Gerenciado para Apache Kafka, no
gcloude no Terraform.O serviço mantém um ou mais registros DNS de descoberta. Esses são registros DNS
Aque contêm todos os endereços IPv4 externos associados ao cluster. É possível usar esses registros em firewalls baseados em FQDN, como o Cloud NGFW, que atualiza automaticamente as regras quando a lista de endpoints muda. A lista de endpoints de descoberta está disponível na API, nogcloude no Terraform.
Considere o seguinte ao usar os endereços IP públicos associados ao cluster:
A lista de endereços IPv4 públicos associados ao cluster pode mudar ou aumentar. Por esse motivo, automatize a maneira como você consome essas informações ou defina um processo para considerar novos registros DNS de descoberta ao escalonar o cluster. As mudanças podem ocorrer quando:
Você escalona o cluster. O escalonamento pode adicionar um ou mais endereços IPv4 externos à medida que novos agentes são adicionados. Para entender como a contagem de vCPUs influencia o número de agentes, consulte Dimensionamento da sub-rede.
Você desativa e ativa o recurso de cluster público. Essa ação atribui um novo conjunto de endereços IPv4 externos ao cluster.
Cada registro DNS de descoberta contém um máximo de 30 endereços IP. Isso permanece dentro dos limites comuns aplicados por firewalls de FQDN. Clusters com 29 ou menos agentes têm um registro DNS de descoberta que contém 30 endereços IPv4 externos (incluindo o registro de inicialização). O serviço adiciona um registro DNS de descoberta para cada 30 agentes extras. Para entender como a contagem de vCPUs influencia o número de agentes, consulte Dimensionamento da sub-rede.
Não configure os clientes do Kafka para se conectar a registros DNS de descoberta. Em vez disso, configure os clientes para se conectar ao endereço de inicialização. Para mais informações, consulte Limitações.
Se você usar essas informações para configurar firewalls de saída, permita a conectividade com as portas TCP
9092(SASL) e9192(mTLS).
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 consumidor.
Na rede de 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 agentes do cluster. Cada agente também pode atuar individualmente como um servidor de inicialização, mas recomendamos que você use o endereço de inicialização para confiabilidade.
Em cada rede de consumidor, o serviço cria um endpoint do Private Service Connect para o endereço de inicialização e um endpoint para cada agente.
O URL do endereço de inicialização é 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 inicialização e o número da porta estão disponíveis como uma propriedade do cluster.
Os clientes usam o endereço de inicialização para recuperar URLs de agentes. Esses URLs são resolvidos para endereços IP locais em cada rede VPC. É possível encontrar os endereços IP e URLs reais do agente no Cloud DNS.
O diagrama a seguir mostra uma arquitetura de exemplo de uma rede de cluster do Serviço Gerenciado para Apache Kafka.
*
Neste exemplo, o cluster tem três agentes 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 agentes têm endereços IP 10.128.10.2, 10.128.10.3 e 10.128.10.4, respectivamente.
Todos os três agentes se conectam ao balanceador de carga de inicialização. Isso garante alta disponibilidade e tolerância a falhas regionais, porque o endereço de inicialização não está confinado a um único agente ou zona.
Limitações
As limitações a seguir se aplicam a conexões VPC e clusters públicos:
Região da sub-rede. As sub-redes conectadas precisam estar na mesma região que o cluster.
Contagem de sub-redes. É possível conectar um mínimo de uma e um máximo de dez sub-redes a um cluster.
Sub-redes por rede. É possível conectar no máximo uma sub-rede por rede VPC a um cluster.
Tamanho da sub-rede. Cada sub-rede conectada requer pelo menos um endereço IP para cada agente, além de um endereço IP para o endereço de inicialização. É necessário um mínimo de quatro endereços IP utilizáveis. Para mais informações, consulte Dimensionamento da sub-rede.
Sub-redes conectadas para clusters públicos. Para ativar o acesso público, seu cluster ainda precisa ter pelo menos uma sub-rede conectada, embora não seja necessário enviar tráfego por ela.
Intervalos de IP de origem permitidos. Cada intervalo de IP de origem permitido para um cluster público precisa ser especificado na notação CIDR IPv4. Cada tamanho de sub-rede CIDR precisa estar entre
/16e/32. Os intervalos CIDR não podem se sobrepor. Os endereços IPv6 não são aceitos. É possível especificar um máximo de 500 intervalos de IP de origem permitidos.Resolução de DNS de registro de descoberta. Os registros DNS de descoberta são projetados apenas para configurar firewalls de saída baseados em FQDN. Não configure os clientes do Kafka para se conectar a esses registros de descoberta. Em vez disso, configure os clientes para se conectar ao endereço de inicialização.
Resolver problemas
Para informações sobre como resolver problemas de rede, consulte Erros de rede.
A seguir
Para mais informações sobre como criar um cluster, consulte Criar um cluster do Serviço Gerenciado para Apache Kafka.
Para mais informações sobre como atualizar um cluster, consulte Atualizar um cluster do Serviço Gerenciado para Apache Kafka.
Para mais informações sobre como visualizar as sub-redes e os agentes ativos de um cluster, consulte Visualizar um cluster.
Para mais informações sobre como publicar e consumir mensagens, consulte Publicar e consumir mensagens.