Descripción general
Esta guía explica cómo conectar ClickPipes a un clúster de Kafka existente de Confluent Cloud mediante conectividad privada.
Usa esta guía para:
- clústeres Dedicated de Confluent Cloud con AWS PrivateLink o GCP Private Service Connect (PSC)
- clústeres sin servidor de Confluent Cloud con AWS PrivateLink o GCP Private Service Connect (PSC)
Esta guía asume que el clúster de Kafka de Confluent Cloud, el topic y las credenciales de Kafka ya existen. Se centra en la conectividad privada y en los reverse private endpoints (RPE) de ClickPipes.
Cómo funciona la configuración
Los client de Kafka se conectan a un hostname de bootstrap, recuperan metadata y luego se conectan a los hostnames de los broker que anuncia Confluent Cloud. En las redes privadas de Confluent Cloud, esos hostnames deben resolverse dentro de la red de ClickPipes al endpoint privado creado por ClickPipes.
ClickPipes usa:
- Un reverse private endpoint para crear la conexión de private network del proveedor de Cloud.
- Asignaciones personalizadas de DNS privado en ese RPE para que los hostnames de bootstrap y de broker de Confluent se resuelvan de forma privada.
- El endpoint de bootstrap de Kafka de Confluent Cloud como dirección del broker en el ClickPipe.
Requisitos
- Un servicio de ClickHouse Cloud en el que crearás el Kafka ClickPipe.
- Un clúster de Kafka de Confluent Cloud en la misma nube y región a las que quieras conectarte de forma privada.
- Una clave de API de Kafka o credenciales de una cuenta de servicio que ClickPipes pueda usar.
- Para AWS PrivateLink, el DNS privado personalizado de ClickPipes está en vista previa privada; ponte en contacto con el soporte de ClickHouse si no está habilitado en tu servicio.
Clústeres Dedicated
Utiliza esta sección para los clústeres Dedicated de Confluent Cloud conectados mediante una red privada de Confluent.
Recopile los detalles de red de Confluent Cloud
En la red de Confluent Cloud asociada a su clúster Dedicated, recopile lo siguiente:
- El dominio DNS privado, que se muestra a continuación como
{dns_domain}. - Las zonas del proveedor de Cloud que utiliza la red de Confluent.
- En AWS, el nombre del servicio de endpoint de PrivateLink de Confluent.
- En GCP, el service attachment de PSC para cada zona de la red de Confluent.
Los valores de zona forman parte de los nombres DNS que ClickPipes debe resolver.
En AWS, son ID de zonas de disponibilidad como use1-az1.
En GCP, son zonas como us-central1-a.
Agrega una entrada de acceso de PrivateLink o PSC en Confluent Cloud para la identidad del consumidor de ClickPipes:
- AWS: permite el ID de la cuenta de AWS de ClickPipes
072088201116. - GCP: permite el proyecto de GCP de ClickPipes
clickpipes-production.
Esta autorización es necesaria para que el RPE de ClickPipes pueda conectarse a la red privada de Confluent Cloud.
Cree los RPE de ClickPipes
Cree los RPE con OpenAPI o Terraform.
Con OpenAPI, use customPrivateDnsMappings en la solicitud de creación.
Si actualiza un RPE existente con la operación de actualización,
recuerde que customPrivateDnsMappings es una lista de reemplazo completa.
AWS Dedicated
Cree un RPE VPC_ENDPOINT_SERVICE que apunte al servicio de endpoint de PrivateLink de Confluent Cloud.
Agregue todas estas asignaciones de DNS privado personalizadas al mismo RPE:
*.{dns_domain}*.{zone}.{dns_domain}para cada zona de red de Confluent
Ejemplo de cuerpo de la solicitud de OpenAPI:
{
"description": "Confluent Cloud Dedicated AWS PrivateLink",
"type": "VPC_ENDPOINT_SERVICE",
"vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-0123456789abcdef0",
"customPrivateDnsMappings": [
{
"privateDnsName": "*.abcde12345.us-east-1.aws.confluent.cloud"
},
{
"privateDnsName": "*.use1-az1.abcde12345.us-east-1.aws.confluent.cloud"
},
{
"privateDnsName": "*.use1-az2.abcde12345.us-east-1.aws.confluent.cloud"
},
{
"privateDnsName": "*.use1-az3.abcde12345.us-east-1.aws.confluent.cloud"
}
]
}GCP Dedicated
Cree un GCP_PSC_SERVICE_ATTACHMENT RPE por cada zona de Confluent Cloud.
Cada RPE apunta al service attachment de PSC de esa zona.
Agregue *.{zone}.{dns_domain} al RPE de la zona correspondiente.
Agregue *.{dns_domain} a solo uno de los RPE.
Ejemplo del cuerpo de la solicitud de OpenAPI para la primera zona:
{
"description": "Confluent Cloud Dedicated PSC us-central1-a",
"type": "GCP_PSC_SERVICE_ATTACHMENT",
"gcpServiceAttachment": "projects/confluent-prod/regions/us-central1/serviceAttachments/confluent-us-central1-a",
"customPrivateDnsMappings": [
{
"privateDnsName": "*.us-central1-a.abcde12345.us-central1.gcp.confluent.cloud"
},
{
"privateDnsName": "*.abcde12345.us-central1.gcp.confluent.cloud"
}
]
}Ejemplo del cuerpo de la solicitud de OpenAPI para additional-zone:
{
"description": "Confluent Cloud Dedicated PSC us-central1-b",
"type": "GCP_PSC_SERVICE_ATTACHMENT",
"gcpServiceAttachment": "projects/confluent-prod/regions/us-central1/serviceAttachments/confluent-us-central1-b",
"customPrivateDnsMappings": [
{
"privateDnsName": "*.us-central1-b.abcde12345.us-central1.gcp.confluent.cloud"
}
]
}Clústeres sin servidor
Utiliza esta sección para los clústeres sin servidor de Confluent Cloud que usan gateways privados de ingreso y puntos de acceso de Confluent.
Crear una puerta de enlace de Ingreso para conectividad privada de Confluent
Cree la puerta de enlace de Ingreso privada en Confluent Cloud para la misma nube y región que el clúster de Kafka de Confluent:
- AWS: cree una puerta de enlace de Ingreso de PrivateLink.
- GCP: cree una puerta de enlace de Ingreso de Private Service Connect.
Anote el destino de la puerta de enlace al que ClickPipes debe conectarse:
- AWS: el nombre del servicio de VPC endpoint de la puerta de enlace.
- GCP: el service attachment de PSC de la puerta de enlace.
Crear el RPE de ClickPipes
Cree un RPE de ClickPipes para el gateway de Ingreso de Confluent.
Para AWS, cree un RPE VPC_ENDPOINT_SERVICE:
{
"description": "Confluent Cloud ingress AWS PrivateLink",
"type": "VPC_ENDPOINT_SERVICE",
"vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-0123456789abcdef0"
}En GCP, cree un RPE GCP_PSC_SERVICE_ATTACHMENT:
{
"description": "Confluent Cloud ingress PSC",
"type": "GCP_PSC_SERVICE_ATTACHMENT",
"gcpServiceAttachment": "projects/confluent-prod/regions/us-central1/serviceAttachments/confluent-ingress"
}Espere hasta que la respuesta del RPE incluya un endpointId.
Necesitará este ID para crear el punto de acceso de Confluent.
Crear el punto de acceso de Confluent
Cree un punto de acceso de ingreso de Confluent Cloud para el endpoint de ClickPipes:
- AWS: use el
endpointIdde RPE de ClickPipes como ID del endpoint de la VPC. - GCP: use el
endpointIdde RPE de ClickPipes como ID de conexión de PSC.
Después de crear el punto de acceso, recopile lo siguiente:
- El dominio DNS del punto de acceso, que se muestra a continuación como
{access_point_dns_domain}. - El endpoint de bootstrap del punto de acceso.
Aplique un parche a las asignaciones personalizadas de DNS privado del RPE
Aplique al RPE de ClickPipes ambas asignaciones personalizadas de DNS privado:
*.{region}.{cloud}.accesspoint.glb.confluent.cloud*.{access_point_dns_domain}
Ejemplo de cuerpo de la solicitud de actualización de OpenAPI:
{
"customPrivateDnsMappings": [
{
"privateDnsName": "*.us-east-1.aws.accesspoint.glb.confluent.cloud"
},
{
"privateDnsName": "*.abcd1234.us-east-1.aws.confluent.cloud"
}
]
}Configuración de Terraform
Con Terraform, utilice:
clickhouse_clickpipes_reverse_private_endpointpara crear RPE.clickhouse_clickpipes_reverse_private_endpoint_custom_private_dnspara gestionar el conjunto completo de asignaciones de DNS privado personalizadas para cada RPE.
Los módulos de Terraform de ClickPipes también proporcionan ejemplos completos de Confluent:
confluent-dedicatedpara redes privadas de Confluent Cloud Dedicated.confluent-serverlesspara ingreso privado sin servidor de Confluent Cloud.
Utilice los mismos patrones de asignación de DNS de esta guía.
En Terraform, los nombres de campo usan snake_case, por ejemplo vpc_endpoint_service_name, gcp_service_attachment y private_dns_name.
Crear el Kafka ClickPipe
Después de que los RPE estén listos:
- Crea o edita el Kafka ClickPipe.
- Usa el endpoint de bootstrap de Confluent Cloud como dirección del broker, sin el prefijo
SASL_SSL://. - Selecciona los RPE creados para la conexión privada de Confluent Cloud.
- Usa la autenticación
PLAINcon la API key y el secreto de Kafka de Confluent Cloud. - Configura los topics, el consumer group, el formato de los datos y la tabla de destino como de costumbre.
Si usas Confluent Schema Registry a través de Private networking, configura la URL del schema registry en el ClickPipe y asegúrate de que su hostname se resuelva mediante la misma configuración de DNS privada personalizada del RPE. Para obtener más información, consulta Registros de esquemas para Kafka ClickPipe.
Solución de problemas
- Si el RPE sigue pendiente, verifica la autorización de red privada de Confluent Cloud y acepta o completa la conexión en Confluent Cloud.
- Si falla la comprobación de conectividad de ClickPipe, verifica que cada hostname de bootstrap y de broker devuelto por Confluent Cloud coincida con una de las asignaciones personalizadas de DNS privado.
- Si aplicas un patch a las asignaciones personalizadas de DNS, incluye la lista completa deseada. La actualización reemplaza la lista existente.
- Si una asignación de DNS se rechaza por duplicada, comprueba todos los RPE del mismo servicio de ClickHouse para detectar nombres exactos o con comodines superpuestos.