Cloud Service Mesh com grupos de endpoints de rede da Internet
É possível configurar o Cloud Service Mesh para usar
grupos de endpoints de rede (NEGs, na sigla em inglês) da Internet
do tipo INTERNET_FQDN_PORT
. O serviço externo é representado pelo
nome de domínio totalmente qualificado (FQDN, na sigla em inglês) e pelo número da porta no NEG. O NEG pode
conter apenas um par de FQDN:Port
, e o serviço de back-end pode conter apenas um
NEG desse tipo. O FQDN é resolvido usando a
ordem de resolução de nomes
da rede de nuvem privada virtual (VPC) subjacente.
Expandir a malha de serviço do Cloud Service Mesh usando back-ends de FQDN
A malha de serviço do Cloud Service Mesh pode rotear o tráfego para serviços particulares acessíveis por conectividade híbrida, incluindo serviços nomeados no local, de várias nuvens e da Internet. O serviço remoto é referenciado pelo FQDN.
Também é possível rotear o tráfego para serviços acessíveis pela Internet pública.
Recursos e arquitetura do Google Cloud
Esta seção descreve os recursos e a arquitetura para configurar o Cloud Service Mesh com um NEG na Internet.
Grupo de endpoints de rede INTERNET_FQDN_PORT
Para rotear o tráfego para um serviço externo referenciado pelo FQDN, use o NEG
global da Internet do tipo INTERNET_FQDN_PORT
. O NEG contém
o FQDN do serviço e o número da porta. O Cloud Service Mesh programa o
FQDN em proxies do Envoy usando a configuração xDS.
O Cloud Service Mesh não garante a resolução de nomes e a acessibilidade dos endpoints remotos. O FQDN precisa ser resolvido pela ordem de resolução de nomes da rede VPC em que os proxies do Envoy estão anexados, e os endpoints resolvidos precisam ser acessíveis pelos proxies do Envoy.
Verificações de integridade
O comportamento da verificação de integridade para endpoints de rede do tipo INTERNET_FQDN_PORT
é diferente do comportamento da verificação de integridade para outros tipos de endpoints de rede usados
com o Cloud Load Balancing e o Cloud Service Mesh. Embora a maioria dos outros tipos de
endpoint de rede use o sistema de verificação de integridade centralizado do Google Cloud, os
NEGs usados para endpoints em ambientes com várias nuvens (INTERNET_FQDN_PORT
e NON_GCP_PRIVATE_IP_PORT
) usam o mecanismo de verificação de integridade distribuído do
Envoy.
O Envoy é compatível com os seguintes protocolos para verificação de integridade:
- HTTP
- HTTPS
- HTTP/2
- TCP
Configure as verificações de integridade usando as APIs do Compute Engine.
Considerações sobre DNS
Há duas considerações distintas sobre o DNS:
- O servidor DNS que hospeda os registros de recurso do serviço externo.
- O modo com que o proxy Envoy está configurado para usar o DNS para o gerenciamento de conexões.
Servidor do Cloud DNS
É possível criar uma zona particular gerenciada do Cloud DNS para hospedar os registros DNS no projeto do Google Cloud. Também é possível usar outros recursos do Cloud DNS, como as zonas de encaminhamento, para buscar registros de um servidor DNS local.
Modo DNS do Envoy
O modo DNS do Envoy, também conhecido como descoberta de serviços, especifica como o proxy Envoy usa registros DNS para gerenciar conexões de saída. A Cloud Service Mesh configura o Envoy para usar o modo DNS restrito. O modo DNS restrito permite o balanceamento de carga para todos os endpoints resolvidos. Ele respeita o status de verificação de integridade e drena conexões com endpoints que não são íntegros ou não são mais resolvidos com DNS. Não é possível mudar esse modo.
Para mais informações sobre a descoberta de serviços, consulte a documentação do Envoy.
Conectividade e roteamento
Se você estiver roteando o tráfego para um serviço particular, estes são os requisitos para a conectividade de rede subjacente:
- Conectividade híbrida entre a rede VPC e o data center no local ou a nuvem pública de terceiros estabelecida usando o Cloud VPN ou o Cloud Interconnect.
- Regras e as rotas de firewall da VPC configuradas corretamente para estabelecer a acessibilidade bidirecional do Envoy aos endpoints do serviço particular e, se aplicável, ao servidor DNS no local.
- Para um failover de alta disponibilidade regional bem-sucedido, o roteamento dinâmico global precisa estar ativado. Para saber mais, consulte modo de roteamento dinâmico.
Se você estiver roteando o tráfego para um serviço externo que pode ser acessado na Internet, é necessário atender aos requisitos a seguir:
- As instâncias de máquina virtual (VM, na sigla em inglês) do cliente na rede VPC precisam ter um endereço IP externo ou o Cloud NAT.
- A rota padrão precisa estar presente para o tráfego de saída para a Internet.
Nos dois casos anteriores, o tráfego usa o roteamento da rede VPC.
Segurança
Os back-ends FQDN são compatíveis com APIs e recursos de segurança da Cloud Service Mesh. Nas conexões de saída ao serviço externo, é possível configurar o FQDN no cabeçalho SNI usando políticas TLS do cliente.
Limitações e considerações
- Os NEGs da Internet do tipo
INTERNET_IP_PORT
não são compatíveis com o Cloud Service Mesh. - O Envoy versão 1.15.0 ou superior é necessário com back-ends FQDN.
- Use a Google Cloud CLI ou as APIs REST para configurar o Cloud Service Mesh. A configuração completa usando o Console do Google Cloud não é aceita.
- Os back-ends FQDN são compatíveis apenas com o Envoy. O gRPC sem proxy não é aceito.
Ao usar o tipo de NEG
INTERNET_FQDN_PORT
com o Cloud Service Mesh, as verificações de integridade dos endpoints remotos são feitas usando o mecanismo de verificação de integridade distribuída do Envoy. Sempre que um novo endpoint remoto é adicionado, todos os proxies Envoy iniciam a verificação de integridade de maneira independente.Da mesma forma, quando um novo proxy Envoy é adicionado à malha, ele começa a verificar todos os endpoints remotos. Portanto, dependendo do número de proxies Envoy e endpoints remotos na implantação, a malha de verificação de integridade resultante pode gerar muito tráfego de rede e uma carga indevida nos endpoints remotos. É possível optar por não configurar as verificações de integridade.
O status da verificação de integridade não é visível no Console do Google Cloud para back-ends de FQDN.
A verificação de integridade que usa os protocolos UDP, SSL e gRPC não é aceita.
As seguintes opções de verificação de integridade não são aceitas:
- Verificação de integridade HTTP/HTTP2/HTTPS
--proxy-header
--response
- Verificação de integridade do TCP
--proxy-header
--request
--response
- Verificação de integridade HTTP/HTTP2/HTTPS
A seguir
- Para configurar o Cloud Service Mesh com NEGS da Internet, consulte Configurar back-ends externos.
- Para saber mais sobre NEGs de conectividade híbrida, consulte Cloud Service Mesh com NEGs de conectividade híbrida.