Предварительная настройка для подключения к кластеру Apache Kafka®
К хостам кластера Managed Service for Apache Kafka® можно подключиться:
-
Через интернет, если вы настроили публичный доступ для кластера. К такому кластеру можно подключиться только используя SSL-соединение.
-
С виртуальных машин Yandex Cloud, расположенных в той же облачной сети. Если к кластеру нет публичного доступа, для подключения с таких ВМ SSL-соединение использовать необязательно.
К кластеру Apache Kafka® можно подключиться как с использованием шифрования (SASL_SSL
) — порт 9091, так и без него (SASL_PLAINTEXT
) — порт 9092.
Чтобы подключиться к кластеру Apache Kafka®:
- Создайте пользователей для клиентов (производителей и потребителей) с доступами в нужные топики.
- Подключите клиентов к кластеру:
- производителей с помощью Kafka Producer API
; - потребителей с помощью Kafka Consumer API
.
- производителей с помощью Kafka Producer API
Для большинства популярных языков программирования существуют готовые реализации API Apache Kafka®. Примеры использования приведены в разделе Примеры кода.
Настройка групп безопасности
Для подключения к кластеру необходимо, чтобы группы безопасности содержали правила, которые разрешают трафик с определенных портов, IP-адресов или из других групп безопасности.
Настройки правил будут различаться в зависимости от выбранного способа подключения:
Настройте все группы безопасности кластера так, чтобы они разрешали входящий трафик с любых IP-адресов на порт 9091. Для этого создайте следующее правило для входящего трафика:
- Диапазон портов —
9091
. - Протокол —
TCP
. - Источник —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
Чтобы разрешить подключение к Managed Schema Registry, добавьте правило для входящего трафика:
- Диапазон портов —
443
. - Протокол —
TCP
. - Источник —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
-
Настройте все группы безопасности кластера так, чтобы они разрешали входящий трафик из группы безопасности, в которой находится ВМ, на порты 9091, 9092. Для этого в этих группах создайте следующее правило для входящего трафика:
- Диапазон портов —
9091-9092
. - Протокол —
TCP
. - Источник —
Группа безопасности
. - Группа безопасности — если кластер и ВМ находятся в одной и той же группе безопасности, выберите значение
Текущая
(Self
). В противном случае укажите группу безопасности ВМ.
Чтобы разрешить подключение к Managed Schema Registry, добавьте правило для входящего трафика:
- Диапазон портов —
443
. - Протокол —
TCP
. - Источник —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
- Диапазон портов —
-
Настройте группу безопасности, в которой находится ВМ так, чтобы можно было подключаться к ВМ и был разрешен трафик между ВМ и хостами кластера.
Пример правил для ВМ:
-
Для входящего трафика:
- Диапазон портов —
22
. - Протокол —
TCP
. - Источник —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
Это правило позволяет подключаться к ВМ по протоколу SSH.
- Диапазон портов —
-
Для исходящего трафика:
- Протокол —
Любой
(Any
). - Диапазон портов —
0-65535
. - Назначение —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
Это правило разрешает любой исходящий трафик, что позволяет не только подключаться к кластеру, но и устанавливать на ВМ необходимые для этого сертификаты и утилиты.
- Протокол —
-
Примечание
Вы можете задать более детальные правила для групп безопасности, например, разрешающие трафик только в определенных подсетях.
Группы безопасности должны быть корректно настроены для всех подсетей, в которых будут размещены хосты кластера. При неполных или некорректных настройках групп безопасности можно потерять доступ к кластеру.
Подробнее о группах безопасности см. в разделе Группы безопасности.
Получение SSL-сертификата
Чтобы использовать шифрованное соединение, получите SSL-сертификат:
mkdir -p /usr/local/share/ca-certificates/Yandex/ && \
wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \
--output-document /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt && \
chmod 0655 /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt
Сертификат будет сохранен в файле /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt
.
mkdir $HOME\.kafka; curl.exe -o $HOME\.kafka\YandexInternalRootCA.crt https://storage.yandexcloud.net/cloud-certs/CA.pem
Сертификат будет сохранен в файле $HOME\.kafka\YandexInternalRootCA.crt
.
Полученный SSL-сертификат также используется при работе с Managed Schema Registry.
Получение FQDN хостов Apache Kafka®
Для подключения к хосту потребуется его FQDN — доменное имя. Его можно получить несколькими способами:
-
Запросите список хостов в кластере, чтобы получить имя хоста. FQDN совпадает с именем хоста.
Консоль управленияCLIAPI- В консоли управления
перейдите в нужный каталог. - В списке сервисов выберите Managed Service for Kafka.
- Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
.Чтобы получить список хостов в кластере, выполните команду:
yc managed-kafka cluster list-hosts <имя_или_идентификатор_кластера>
Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.
Чтобы получить список хостов кластера, воспользуйтесь методом REST API listHosts для ресурса Cluster или вызовом gRPC API ClusterService/ListHosts и передайте в запросе идентификатор требуемого кластера в параметре
clusterId
.Чтобы узнать идентификатор кластера, получите список кластеров в каталоге.
- В консоли управления
-
Скопируйте команду для подключения к кластеру в консоли управления
. Команда содержит заполненный FQDN хоста-брокера. Чтобы получить команду, перейдите на страницу кластера и нажмите кнопку Подключиться.
Что дальше
- Подключитесь к кластеру с помощью инструментов командной строки.
- Интегрируйте подключение к кластеру в код вашего приложения.