Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Приватное подключение Confluent Cloud для ClickPipes

Обзор

В этом руководстве объясняется, как подключить ClickPipes к существующему кластеру Kafka в Confluent Cloud через частное сетевое подключение.

Используйте это руководство для:

  • выделенных кластеров Confluent Cloud с AWS PrivateLink или GCP Private Service Connect (PSC)
  • serverless-кластеров Confluent Cloud с AWS PrivateLink или GCP Private Service Connect (PSC)

В этом руководстве предполагается, что кластер Kafka, топик и учетные данные Kafka в Confluent Cloud уже существуют. Оно посвящено частному подключению и обратным частным конечным точкам (RPE) ClickPipes.

Как это устроено

Клиенты Kafka подключаются к bootstrap-хосту, получают метаданные, а затем подключаются к именам хостов брокеров, которые сообщает Confluent Cloud. При использовании частной сети Confluent Cloud эти имена хостов должны внутри сети ClickPipes разрешаться в частную конечную точку, созданную ClickPipes.

ClickPipes использует:

  • обратную частную конечную точку для создания подключения к частной сети облачного провайдера.
  • пользовательские сопоставления private DNS на этой RPE, чтобы bootstrap-хост и имена хостов брокеров Confluent разрешались через частную сеть.
  • bootstrap-конечную точку Kafka в Confluent Cloud в качестве адреса брокера в ClickPipe.

Требования

  • Сервис ClickHouse Cloud, в котором вы создадите Kafka ClickPipe.
  • Кластер Kafka в Confluent Cloud в том же облаке и регионе, к которым вы хотите подключиться через приватное соединение.
  • Kafka API key или учетные данные сервисного аккаунта, которые может использовать ClickPipes.
  • Для AWS PrivateLink пользовательский private DNS ClickPipes доступен в рамках закрытой предварительной версии; обратитесь в поддержку ClickHouse, если он не включен для вашего сервиса.

Выделенные кластеры

Используйте этот раздел для выделенных кластеров Confluent Cloud, подключённых через частную сеть Confluent.

Соберите сведения о сети Confluent Cloud

В сети Confluent Cloud, подключённой к вашему выделенному кластеру, соберите следующие данные:

  • Частный DNS-домен, показанный ниже как {dns_domain}.
  • Зоны облачного провайдера, используемые сетью Confluent.
  • Для AWS — имя сервиса конечной точки Confluent PrivateLink.
  • Для GCP — подключение сервиса GCP для каждой зоны сети Confluent.

Значения зон входят в состав DNS-имён, которые должен разрешать ClickPipes. Для AWS это идентификаторы зон доступности, такие как use1-az1. Для GCP это зоны, такие как us-central1-a.

Авторизуйте ClickPipes в Confluent Cloud

Добавьте запись доступа PrivateLink или PSC в Confluent Cloud для идентификатора потребителя ClickPipes:

  • AWS: разрешите идентификатор AWS аккаунта ClickPipes 072088201116.
  • GCP: разрешите GCP-проект ClickPipes clickpipes-production.

Эта авторизация необходима, чтобы RPE ClickPipes мог подключиться к частной сети Confluent Cloud.

Создайте RPE для ClickPipes

Создайте RPE с помощью OpenAPI или Terraform.

При использовании OpenAPI укажите customPrivateDnsMappings в запросе на создание. Если вы обновляете существующий RPE с помощью операции обновления, помните, что customPrivateDnsMappings при обновлении заменяется целиком.

AWS Dedicated

Создайте один RPE VPC_ENDPOINT_SERVICE, указывающий на сервис конечной точки PrivateLink в Confluent Cloud.

Добавьте все эти сопоставления пользовательского private DNS в тот же RPE:

  • *.{dns_domain}
  • *.{zone}.{dns_domain} для каждой сетевой зоны Confluent

Пример тела запроса 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

Создайте по одному GCP_PSC_SERVICE_ATTACHMENT RPE для каждой зоны Confluent Cloud. Каждый RPE указывает на подключение сервиса GCP для этой зоны.

Добавьте *.{zone}.{dns_domain} в RPE для соответствующей зоны. Добавьте *.{dns_domain} только в один из RPE.

Пример тела запроса OpenAPI для первой зоны:

{
  "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"
    }
  ]
}

Пример тела запроса к OpenAPI для 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"
    }
  ]
}

Serverless-кластеры

Используйте этот раздел для serverless-кластеров Confluent Cloud, использующих частные шлюзы входящего трафика и точки доступа Confluent.

Создайте входящий шлюз приватного подключения в Confluent

Создайте в Confluent Cloud входящий шлюз приватного подключения для того же облака и региона, что и кластер Confluent Kafka:

  • AWS: создайте входящий шлюз PrivateLink.
  • GCP: создайте входящий шлюз Private Service Connect.

Сохраните целевой идентификатор шлюза, к которому должен подключаться ClickPipes:

  • AWS: Service name VPC endpoint сервиса шлюза.
  • GCP: подключение сервиса GCP шлюза PSC.

Создайте ClickPipes RPE

Создайте один ClickPipes RPE для входящего шлюза Confluent.

Для AWS создайте RPE VPC_ENDPOINT_SERVICE:

{
  "description": "Confluent Cloud ingress AWS PrivateLink",
  "type": "VPC_ENDPOINT_SERVICE",
  "vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-0123456789abcdef0"
}

В GCP создайте 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"
}

Дождитесь, пока в ответе RPE появится endpointId. Этот идентификатор нужен для создания точки доступа Confluent.

Создайте точку доступа Confluent

Создайте в Confluent Cloud точку доступа для входящего трафика для конечной точки ClickPipes:

  • AWS: используйте endpointId ClickPipes RPE как ID конечной точки VPC.
  • GCP: используйте endpointId ClickPipes RPE как ID PSC-соединения.

После создания точки доступа соберите следующие данные:

  • DNS-домен точки доступа, показанный ниже как {access_point_dns_domain}.
  • Bootstrap-конечную точку для точки доступа.

Обновите сопоставления пользовательского private DNS для RPE

Примените к RPE ClickPipes оба сопоставления пользовательского private DNS:

  • *.{region}.{cloud}.accesspoint.glb.confluent.cloud
  • *.{access_point_dns_domain}

Пример тела запроса OpenAPI для обновления:

{
  "customPrivateDnsMappings": [
    {
      "privateDnsName": "*.us-east-1.aws.accesspoint.glb.confluent.cloud"
    },
    {
      "privateDnsName": "*.abcd1234.us-east-1.aws.confluent.cloud"
    }
  ]
}

Настройка Terraform

В Terraform используйте:

Модули Terraform для ClickPipes также содержат полноценные примеры для Confluent:

  • confluent-dedicated для частного сетевого подключения Confluent Cloud Dedicated.
  • confluent-serverless для частного входящего доступа Confluent Cloud serverless.

Используйте те же шаблоны сопоставления DNS, что и в этом руководстве. В Terraform в именах полей используется snake_case, например vpc_endpoint_service_name, gcp_service_attachment и private_dns_name.

Создайте Kafka ClickPipe

После того как RPE будут готовы:

  1. Создайте или отредактируйте Kafka ClickPipe.
  2. Используйте bootstrap-конечную точку Confluent Cloud в качестве адреса broker без префикса SASL_SSL://.
  3. Выберите RPE, созданные для частного подключения Confluent Cloud.
  4. Используйте аутентификацию PLAIN с Kafka API key и secret от Confluent Cloud.
  5. Как обычно, настройте топики, consumer group, формат данных и целевую таблицу.

Если вы используете Confluent Schema Registry через частное сетевое подключение, настройте URL schema registry в ClickPipe и убедитесь, что его hostname разрешается через ту же конфигурацию пользовательского private DNS для RPE. Подробнее см. в разделе Реестры схем для Kafka ClickPipe.

Устранение неполадок

  • Если RPE по-прежнему остается в состоянии ожидания, проверьте авторизацию частного сетевого подключения в Confluent Cloud и примите или завершите подключение в Confluent Cloud.
  • Если проверка подключения ClickPipe завершается ошибкой, убедитесь, что каждое имя хоста bootstrap-узла и брокера, возвращаемое Confluent Cloud, соответствует одному из сопоставлений пользовательского private DNS.
  • Если вы применяете patch к пользовательским DNS-сопоставлениям, включите полный требуемый список. Обновление заменяет существующий список.
  • Если DNS-сопоставление отклоняется как дубликат, проверьте все RPE в том же сервисе ClickHouse на наличие пересекающихся точных имен или имен с подстановочными знаками.
Navigation