Conexiones entre el plano de control de ClickHouse y su VPC de BYOC
API de proveedores de nube frente a la API de Kubernetes
En resumen: solo el tráfico de la API de Kubernetes y el de resolución de problemas pueden usar Tailscale. Las llamadas a la API del proveedor de nube siempre se originan en la red de ClickHouse Cloud y terminan en los endpoints del proveedor; no es posible enrutarlas a través de Tailscale, ya que nunca entran en su red.
Límites de permisos según el origen de red
aws:SourceIp o aws:SourceVpc), esas condiciones bloquearán la automatización de ClickHouse: las llamadas se originan legítimamente en la red de ClickHouse Cloud, no en la suya. Exima de dichas condiciones a los roles creados por ClickHouse o póngase en contacto con ClickHouse para obtener los rangos actuales de IP de salida si debe usar una lista de permitidos según el origen.
La siguiente sección describe cómo se utiliza la red privada de Tailscale para la resolución de problemas y el acceso opcional de administración.
Red privada de Tailscale
Descripción general
- Operaciones de gestión: servicios de gestión de ClickHouse que se coordinan con tu infraestructura de BYOC
- Acceso para resolución de problemas: ingenieros de ClickHouse que acceden a los servidores de la API de Kubernetes y a las tablas del sistema de ClickHouse para realizar diagnósticos
- Acceso a métricas: los paneles centralizados de monitoreo de ClickHouse acceden a las métricas de la pila de Prometheus implementada en tu VPC de BYOC, lo que proporciona a los ingenieros de ClickHouse observabilidad sobre el entorno.
Cómo funciona Tailscale en BYOC
-
Registro de direcciones tailnet: Cada endpoint registra una dirección tailnet única (p. ej.,
k8s.xxxx.us-east-1.aws.byoc.clickhouse-prd.compara el servidor de la API de Kubernetes) -
Contenedor del agente de Tailscale: Un contenedor del agente de Tailscale se ejecuta en su clúster de Kubernetes y se encarga de:
- Conectarse al servidor de coordinación de Tailscale
- Registrar servicios para que puedan detectarse
- Coordinar la configuración de red con los pods de Nginx
-
Pod de Nginx: Un pod de Nginx que:
- Termina el tráfico TLS procedente de Tailscale
- Enruta el tráfico a las IP adecuadas dentro de su clúster de Kubernetes
Proceso de conexión de red
-
Conexión inicial:
- Los agentes de Tailscale en ambos extremos (el entorno de los ingenieros de ClickHouse y su clúster de Kubernetes en BYOC) se conectan al servidor de coordinación de Tailscale
- El agente del clúster registra el servicio de Kubernetes para que sea detectable
- Los ingenieros de ClickHouse deben escalar internamente para obtener visibilidad del servicio
-
Modo de conexión:
- Modo directo: Los agentes intentan establecer una conexión directa mediante un túnel de NAT traversal
- Modo de retransmisión: Si el modo directo falla, la comunicación pasa al modo de retransmisión a través de un servidor DERP (Distributed Encrypted Relay Protocol) de Tailscale
-
Cifrado:
- Toda la comunicación está cifrada de extremo a extremo
- Cada agente de Tailscale genera su propio par de claves pública y privada (similar a la PKI)
- El tráfico permanece cifrado independientemente de si utiliza el modo directo o el de retransmisión
Características de seguridad
- Los agentes de Tailscale en su clúster de Kubernetes inician conexiones salientes a los servidores de coordinación/retransmisión de Tailscale
- No se requieren conexiones entrantes — ninguna regla de grupo de seguridad necesita permitir tráfico entrante hacia los agentes de Tailscale
- Esto reduce la superficie de ataque y simplifica la configuración de seguridad de la red
- Los ingenieros deben solicitar acceso a través de un flujo interno de aprobación antes de que Tailscale pueda enrutarles a un endpoint del cliente
- El acceso está limitado en el tiempo y vence automáticamente
- Todo acceso se audita y queda registrado
Acceso a los servicios de gestión
- Puede configurar el servidor de la API de Kubernetes para que utilice únicamente un endpoint privado
- En este caso, el servicio de administración accede al servidor de la API a través de Tailscale (de forma similar al acceso humano para la resolución de problemas) o, en AWS, a través de VPC Lattice (consulte Kubernetes API Private Connection)
- De forma predeterminada, el endpoint público (restringido a las direcciones IP NAT de ClickHouse) se mantiene como mecanismo de respaldo para casos de investigación y soporte de emergencia; una vez verificado el acceso privado, puede deshabilitarse por completo en coordinación con ClickHouse
Flujo del tráfico de red
- Agente de Tailscale en su clúster de Kubernetes → servidor de coordinación de Tailscale (saliente)
- Agente de Tailscale en la máquina del ingeniero → servidor de coordinación de Tailscale (saliente)
- Se establece una conexión directa o retransmitida entre los agentes
- El tráfico cifrado fluye a través del túnel establecido
- El pod de Nginx en EKS termina TLS y enruta el tráfico a los servicios internos
- Las conexiones de Tailscale se usan solo para administración y resolución de problemas
- El tráfico de consultas y los datos de los clientes nunca fluyen a través de Tailscale
- Todos los datos de los clientes permanecen dentro de su VPC
Límites de red
- Inbound: Tráfico que entra en la VPC BYOC del cliente.
- Outbound: Tráfico que se origina en la VPC BYOC del cliente y se envía a un destino externo.
- Public: Un endpoint de red accesible desde Internet pública.
- Private: Un endpoint de red accesible solo mediante conexiones privadas, como peering de VPC, VPC Private Link o Tailscale.