Conexões entre o plano de controle do ClickHouse e sua VPC de BYOC
A seção a seguir descreve como a rede privada Tailscale é usada para solução de problemas e para acesso opcional de gerenciamento.
Rede privada Tailscale
Visão geral
- Operações de gerenciamento: serviços de gerenciamento do ClickHouse que coordenam com a sua infraestrutura de BYOC
- Acesso para solução de problemas: engenheiros do ClickHouse acessando servidores da API do Kubernetes e tabelas de sistema do ClickHouse para diagnóstico
- Acesso a métricas: os dashboards centralizados de monitoramento do ClickHouse acessam métricas da stack Prometheus implantada na sua VPC de BYOC, fornecendo aos engenheiros do ClickHouse observabilidade do ambiente.
Como o Tailscale funciona no BYOC
-
Registro de endereço tailnet: cada endpoint registra um endereço tailnet exclusivo (por exemplo,
k8s.xxxx.us-east-1.aws.byoc.clickhouse-prd.compara o servidor de API do Kubernetes) -
Contêiner do agente Tailscale: um contêiner do agente Tailscale é executado no seu cluster EKS e é responsável por:
- Conectar-se ao servidor de coordenação do Tailscale
- Registrar serviços para que possam ser descobertos
- Coordenar a configuração da rede com os pods do Nginx
-
Pod do Nginx: um pod do Nginx que:
- Faz a terminação do tráfego TLS do Tailscale
- Encaminha o tráfego para os IPs apropriados dentro do seu cluster EKS
Processo de conexão de rede
-
Conexão inicial:
- Os agentes do Tailscale em ambas as pontas (o ambiente do engenheiro do ClickHouse e seu cluster EKS BYOC) se conectam ao servidor de coordenação do Tailscale
- O agente do cluster EKS registra o serviço do Kubernetes para que ele possa ser descoberto
- Os engenheiros do ClickHouse precisam fazer um escalonamento interno para obter visibilidade do serviço
-
Modo de conexão:
- Modo direto: os agentes tentam estabelecer uma conexão direta por meio de um túnel de travessia de NAT
- Modo de retransmissão: se o modo direto falhar, a comunicação passa a usar o modo de retransmissão por meio de um servidor DERP (Distributed Encrypted Relay Protocol) do Tailscale
-
Criptografia:
- Toda a comunicação é criptografada de ponta a ponta
- Cada agente do Tailscale gera seu próprio par de chaves pública e privada (semelhante a uma PKI)
- O tráfego permanece criptografado independentemente de usar o modo direto ou de retransmissão
Recursos de segurança
- Os agentes do Tailscale no seu cluster EKS iniciam conexões de saída com os servidores de coordenação/relay do Tailscale
- Nenhuma conexão de entrada é necessária — nenhuma regra do Security Group precisa permitir tráfego de entrada para os agentes do Tailscale
- Isso reduz a superfície de ataque e simplifica a configuração de segurança da rede
- Os engenheiros precisam solicitar acesso por meio de um fluxo interno de aprovação antes que o Tailscale possa encaminhá-los para um endpoint do cliente
- O acesso é limitado no tempo e expira automaticamente
- Todo acesso é auditado e registrado
Acesso aos serviços de gerenciamento
- Você pode configurar o servidor de API do EKS para usar apenas um endpoint privado
- Nesse caso, os serviços de gerenciamento acessam o servidor de API via Tailscale (semelhante ao acesso humano para solução de problemas)
- O acesso público é mantido como mecanismo de contingência para necessidades emergenciais de investigação e suporte
Fluxo de tráfego de rede
- Agente do Tailscale no cluster EKS → servidor de coordenação do Tailscale (saída)
- Agente do Tailscale na máquina do engenheiro → servidor de coordenação do Tailscale (saída)
- Conexão direta ou retransmitida estabelecida entre os agentes
- O tráfego criptografado flui pelo túnel estabelecido
- O pod do Kubernetes do Nginx no EKS faz a terminação de TLS e roteia para os serviços internos
- As conexões do Tailscale são usadas apenas para gerenciamento e solução de problemas
- O tráfego de consulta e os dados do cliente nunca passam pelo Tailscale
- Todos os dados do cliente permanecem dentro da sua VPC
Limites de rede
- Entrada: Tráfego que entra na VPC BYOC do cliente.
- Saída: Tráfego originado na VPC BYOC do cliente e enviado a um destino externo.
- Public: Um endpoint de rede acessível pela internet pública.
- Private: Um endpoint de rede acessível apenas por conexões privadas, como VPC peering, VPC Private Link ou Tailscale.