Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Apache Kafka®
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Изменение настроек кластера
      • Обновление версии Apache Kafka®
      • Управление дисковым пространством
      • Остановка и запуск кластера
      • Получение списка хостов кластера
      • Миграция хостов в другую зону доступности
      • Удаление кластера
    • Управление топиками
    • Управление пользователями
    • Управление коннекторами
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Различия в конфигурации кластеров с ZooKeeper и протоколом Apache Kafka® Raft
  • Перед началом работы
  • Создать кластер
  • Создать копию кластера
  • Примеры
  • Создание кластера с одним хостом
  1. Пошаговые инструкции
  2. Кластеры
  3. Создание кластера

Создание кластера Apache Kafka®

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Различия в конфигурации кластеров с ZooKeeper и протоколом Apache Kafka® Raft
  • Перед началом работы
  • Создать кластер
  • Создать копию кластера
  • Примеры
    • Создание кластера с одним хостом

Кластер Managed Service for Apache Kafka® — один или несколько хостов-брокеров, на которых размещены топики и соответствующие топикам разделы. Производители и потребители могут работать с этими топиками, подключившись к хостам кластера Managed Service for Apache Kafka®.

Примечание

  • Количество хостов-брокеров, которые можно создать вместе с кластером Managed Service for Apache Kafka®, зависит от выбранного типа диска и класса хостов.
  • Доступные типы диска зависят от выбранного класса хостов.

Примечание

С 1 марта 2025 года прекращена поддержка Apache Kafka® версий 2.8, 3.0, 3.1, 3.2 и 3.3. Создать кластер с этими версиями невозможно.

Различия в конфигурации кластеров с ZooKeeper и протоколом Apache Kafka® RaftРазличия в конфигурации кластеров с ZooKeeper и протоколом Apache Kafka® Raft

Если вы создаете кластер с версией Apache Kafka® 3.5, в котором больше одного хоста, то в кластер будут добавлены три выделенных хоста ZooKeeper.

В кластерах с версией Apache Kafka® 3.6 и выше поддержан протокол Apache Kafka® Raft (сокращенно KRaft). Он используется для хранения метаданных вместо ZooKeeper.

При создании кластера с протоколом KRaft действуют ограничения на конфигурацию:

  • Можно создать кластер только с одной или тремя зонами доступности.
  • Ограничено количество хостов-брокеров:
    • Если выбрана одна зона доступности, можно создать один или три хоста-брокера.
    • Если выбраны три зоны доступности, можно создать только один хост-брокер.

Подробнее о различиях в конфигурации кластеров с ZooKeeper и KRaft см. в разделе Взаимосвязь ресурсов в Managed Service for Apache Kafka®.

Перед началом работыПеред началом работы

  1. Рассчитайте минимальный размер хранилища для топиков.
  2. Назначьте вашему аккаунту в Yandex Cloud роль vpc.user и роль managed-kafka.editor или выше.

Если вы указываете идентификаторы групп безопасности при создании кластера Managed Service for Apache Kafka®, для подключения к нему может понадобиться дополнительная настройка групп безопасности.

Создать кластерСоздать кластер

Консоль управления
CLI
Terraform
REST API
gRPC API

Чтобы создать кластер Managed Service for Apache Kafka®:

  1. В консоли управления перейдите в нужный каталог.

  2. В списке сервисов выберите Managed Service for Kafka.

  3. Нажмите кнопку Создать кластер.

  4. В блоке Базовые параметры:

    1. Введите имя кластера Managed Service for Apache Kafka® и его описание. Имя кластера Managed Service for Apache Kafka® должно быть уникальным в рамках каталога.
    2. Выберите окружение, в котором нужно создать кластер Managed Service for Apache Kafka® (после создания кластера изменить окружение невозможно):
      • PRODUCTION — для стабильных версий приложений.
      • PRESTABLE — для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
    3. Выберите версию Apache Kafka®.
  5. В блоке Класс хоста выберите платформу, тип хостов и класс хостов.

    Класс хостов определяет технические характеристики виртуальных машин, на которых будут развернуты хосты-брокеры Apache Kafka®. Все доступные варианты перечислены в разделе Классы хостов.

    При изменении класса хостов для кластера Managed Service for Apache Kafka® меняются характеристики всех уже созданных экземпляров.

  6. В блоке Хранилище:

    • Выберите тип диска.

      Важно

      Тип диска нельзя изменить после создания кластера.

      От выбранного типа зависит, с каким шагом можно будет изменить размер диска:

      • Сетевые HDD- и SSD-диски — с шагом 1 ГБ.
      • Локальные SSD-диски:
        • для платформы Intel Cascade Lake — с шагом 100 ГБ;
        • для платформы Intel Ice Lake — с шагом 368 ГБ.
      • Нереплицируемые SSD-диски — с шагом 93 ГБ.

      Тип диска для кластера Managed Service for Apache Kafka® нельзя изменить после создания.

    • Выберите объем хранилища, который будет использоваться для данных.

  7. В блоке Автоматическое увеличение размера хранилища задайте пороги заполненности хранилища, при достижении которых его размер будет увеличиваться:

    1. В поле Увеличивать размер выберите один или оба порога:
      • В окно обслуживания при заполненности более — порог для планового увеличения. Когда он достигнут, объем хранилища увеличивается во время ближайшего окна обслуживания.
      • Незамедлительно при заполненности более — порог для незамедлительного увеличения. Когда он достигнут, объем хранилища увеличивается немедленно.
    2. Задайте пороговое значение (в процентах от общего объема хранилища). Если выбраны оба порога, значение для незамедлительного увеличения должно быть выше, чем для планового.
    3. Задайте Максимальный размер хранилища.
  8. В блоке Сетевые настройки:

    1. Выберите одну или несколько зон доступности, в которых нужно разместить хосты-брокеры Apache Kafka®.
      Если создать кластер Managed Service for Apache Kafka® с одной зоной доступности, в дальнейшем увеличить количество зон и хостов-брокеров будет невозможно.
      Для кластеров с версией Apache Kafka® 3.6 и выше можно выбрать только одну или три зоны доступности.

    2. Выберите сеть.

    3. Выберите подсети в каждой зоне доступности для этой сети. Чтобы создать новую подсеть, нажмите на кнопку Создать рядом с нужной зоной доступности.

      Примечание

      Для кластера с версией Apache Kafka® 3.5, в котором несколько хостов-брокеров, укажите подсети в каждой зоне доступности, даже если вы планируете разместить хосты-брокеры только в некоторых из них. Эти подсети понадобятся для размещения трех хостов ZooKeeper — по одному в каждой зоне доступности. Подробнее см. в разделе Взаимосвязь ресурсов сервиса.

    4. Выберите группы безопасности для сетевого трафика кластера Managed Service for Apache Kafka®.

    5. Для доступа к хостам-брокерам из интернета выберите опцию Публичный доступ. В этом случае подключаться к ним можно только с использованием SSL-соединения. Подробнее см. в разделе Подключение к топикам в кластере.

  9. В блоке Хосты:

    1. Укажите количество хостов-брокеров Apache Kafka® для размещения в каждой выбранной зоне доступности.

      При выборе количества хостов учтите следующие особенности:

      • В версиях Apache Kafka® 3.6 и выше количество хостов-брокеров зависит от выбранных зон доступности:

        • Одна зона доступности — один или три хоста-брокера. Чтобы использовать три хоста-брокера, включите настройку Комбинированный режим.
        • Три зоны доступности — один хост-брокер.

        Задать количество хостов-брокеров вручную нельзя.

      • Репликация возможна при наличии как минимум двух хостов в кластере Managed Service for Apache Kafka®.

      • Если в блоке Хранилище выбран тип local-ssd или network-ssd-nonreplicated, необходимо добавить не менее трех хостов в кластер Managed Service for Apache Kafka®.

      • Для отказоустойчивости кластера Managed Service for Apache Kafka® должны выполняться определенные условия.

      • Добавление в кластер с версией Apache Kafka® 3.5 более одного хоста приведет к автоматическому добавлению трех хостов ZooKeeper.

    2. (Опционально) Выберите группы выделенных хостов, на которых будет размещен кластер Managed Service for Apache Kafka®.

      Внимание

      Эту настройку нельзя изменить после создания кластера. Использование выделенных хостов существенно влияет на тарификацию кластера.

  10. Если вы создаете кластер с версией Apache Kafka® 3.5 и указали более одного хоста-брокера, то в блоке Класс хоста ZooKeeper укажите характеристики хостов ZooKeeper для размещения в каждой выбранной зоне доступности.

  11. При необходимости задайте дополнительные настройки кластера Managed Service for Apache Kafka®:

    • Окно обслуживания — настройки времени технического обслуживания:

      • Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
      • Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.

      Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.

    • Защита от удаления — управляет защитой кластера от непреднамеренного удаления.

      Включенная защита кластера от удаления не помешает удалить пользователя или топик, а также подключиться вручную и удалить данные.

    • Чтобы управлять схемами данных с помощью Managed Schema Registry, включите настройку Реестр схем данных.

      Важно

      Невозможно отключить управление схемами данных с помощью Managed Schema Registry после его подключения.

    • Чтобы разрешить отправку запросов к API Apache Kafka®, включите настройку Kafka Rest API.

      В качестве реализации используется приложение с открытым исходным кодом Karapace. API Karapace совместимо с API Confluent REST Proxy за исключением небольших расхождений.

      Важно

      Настройку Kafka Rest API невозможно отключить после ее включения.

  12. При необходимости задайте настройки Apache Kafka®.

  13. Нажмите кнопку Создать.

  14. Дождитесь, когда кластер Managed Service for Apache Kafka® будет готов к работе: его статус на панели Managed Service for Apache Kafka® сменится на Running, а состояние — на Alive. Это может занять некоторое время.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Важно

При создании кластера с KRaft не указывайте настройки ZooKeeper.

Чтобы создать кластер Managed Service for Apache Kafka®:

  1. Посмотрите описание команды CLI для создания кластера Managed Service for Apache Kafka®:

    yc managed-kafka cluster create --help
    
  2. Укажите параметры кластера Managed Service for Apache Kafka® в команде создания (в примере приведены не все параметры):

    yc managed-kafka cluster create \
       --name <имя_кластера> \
       --environment <окружение> \
       --version <версия> \
       --schema-registry \
       --network-name <имя_сети> \
       --subnet-ids <идентификаторы_подсетей> \
       --zone-ids <зоны_доступности> \
       --brokers-count <количество_хостов-брокеров_в_зоне> \
       --resource-preset <класс_хоста> \
       --disk-type <network-hdd|network-ssd|network-ssd-nonreplicated|local-ssd> \
       --disk-size <размер_хранилища_ГБ> \
       --assign-public-ip <публичный_доступ> \
       --security-group-ids <список_идентификаторов_групп_безопасности> \
       --deletion-protection
    

    Где:

    • --environment — окружение кластера: prestable или production.

    • --version — версия Apache Kafka®: 3.5 или 3.6.

    • --schema-registry — управление схемами данных с помощью Managed Schema Registry.

      Важно

      Невозможно отключить управление схемами данных с помощью Managed Schema Registry после его подключения.

    • --zone-ids и --brokers-count — зоны доступности и число хостов-брокеров в каждой зоне.

      Для кластеров с версией Apache Kafka® 3.6 и выше доступны только следующие конфигурации:

      • --zone-ids=ru-central1-a,ru-central1-b,ru-central1-d --brokers-count=1;
      • --zone-ids=<одна_зона_доступности> --brokers-count=1;
      • --zone-ids=<одна_зона_доступности> --brokers-count=3.
    • --resource-preset — класс хостов.

    • --disk-type — тип диска.

      Важно

      Тип диска нельзя изменить после создания кластера.

    • --deletion-protection — защита кластера от непреднамеренного удаления: true или false.

      Включенная защита кластера от удаления не помешает удалить пользователя или топик, а также подключиться вручную и удалить данные.

    Совет

    При необходимости здесь же можно задать настройки Apache Kafka®.

  3. Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров Managed Service for Apache Kafka®), передайте нужное значение в параметре --maintenance-window при создании кластера:

    yc managed-kafka cluster create \
       ...
       --maintenance-window type=<тип_технического_обслуживания>,`
                           `day=<день_недели>,`
                           `hour=<час_дня> \
    

    Где type — тип технического обслуживания:

    • anytime (по умолчанию) — в любое время.
    • weekly — по расписанию. При задании этого значения укажите день недели и час дня:
      • day — день недели в формате DDD: MON, TUE, WED, THU, FRI, SAT или SUN.
      • hour — час дня по UTC в формате HH: от 1 до 24.
  4. Чтобы в кластере не заканчивалось место на диске, создайте кластер с автоматическим увеличением размера хранилища:

    yc managed-kafka cluster create \
       ...
       --disk-size-autoscaling disk-size-limit=<максимальный_размер_хранилища_в_байтах>,`
                              `planned-usage-threshold=<процент_для_планового_увеличения>,`
                              `emergency-usage-threshold=<процент_для_незамедлительного_увеличения>
    

    Где:

    • planned-usage-threshold — процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно технического обслуживания.

      Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено).

      Если вы задали этот параметр, настройте расписание технического обслуживания.

    • emergency-usage-threshold — процент заполнения хранилища, при котором хранилище будет увеличено немедленно.

      Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено). Должно быть не меньше значения planned-usage-threshold.

    • disk-size-limit — максимальный размер хранилища в байтах, который может быть установлен при достижении одного из заданных процентов заполнения.

      Если указать значение 0, автоматическое увеличение размера хранилища будет отключено.

    Важно

    • Размер хранилища нельзя уменьшить.
    • Во время изменения размера хранилища хосты кластера будут недоступны.
  5. Чтобы создать кластер Managed Service for Apache Kafka®, размещенный на группах выделенных хостов, укажите через запятую их идентификаторы в параметре --host-group-ids при создании кластера:

    yc managed-kafka cluster create \
       ...
       --host-group-ids <идентификаторы_групп_выделенных_хостов>
    

    Внимание

    Эту настройку нельзя изменить после создания кластера. Использование выделенных хостов существенно влияет на тарификацию кластера.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Важно

При создании кластера с KRaft не указывайте настройки ZooKeeper.

Чтобы создать кластер Managed Service for Apache Kafka®:

  1. Опишите в конфигурационном файле создаваемые ресурсы:

    • Кластер Managed Service for Apache Kafka® — описание кластера и его хостов. При необходимости здесь же можно задать настройки Apache Kafka®.

    • Сеть — описание облачной сети, в которой будет расположен кластер. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.

    • Подсети — описание подсетей, к которым будут подключены хосты кластера. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.

    Пример структуры конфигурационного файла:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      environment         = "<окружение>"
      name                = "<имя_кластера>"
      network_id          = "<идентификатор_сети>"
      subnet_ids          = ["<список_идентификаторов_подсетей>"]
      security_group_ids  = ["<список_идентификаторов_групп_безопасности_кластера>"]
      deletion_protection = <защита_кластера_от_удаления>
    
      config {
        version          = "<версия>"
        zones            = ["<зоны_доступности>"]
        brokers_count    = <количество_хостов-брокеров>
        assign_public_ip = "<публичный_доступ>"
        schema_registry  = "<управление_схемами_данных>"
        kafka {
          resources {
            disk_size          = <размер_хранилища_ГБ>
            disk_type_id       = "<тип_диска>"
            resource_preset_id = "<класс_хоста>"
          }
          kafka_config {}
        }
      }
    }
    
    resource "yandex_vpc_network" "<имя_сети>" {
      name = "<имя_сети>"
    }
    
    resource "yandex_vpc_subnet" "<имя_подсети>" {
      name           = "<имя_подсети>"
      zone           = "<зона_доступности>"
      network_id     = "<идентификатор_сети>"
      v4_cidr_blocks = ["<диапазон>"]
    }
    

    Где:

    • environment — окружение кластера: PRESTABLE или PRODUCTION.

    • version — версия Apache Kafka®: 3.5 или 3.6.

    • zones и brokers_count — зоны доступности и число хостов-брокеров в каждой зоне.

      Если вы создаете кластер с версией Apache Kafka® 3.6 и выше, укажите одну из доступных конфигураций:

      • zones = ["ru-central1-a","ru-central1-b","ru-central1-d"] brokers_count = 1;
      • zones = ["<одна_зона_доступности>"] brokers_count = 1;
      • zones = ["<одна_зона_доступности>"] brokers_count = 3.
    • deletion_protection — защита кластера от непреднамеренного удаления: true или false.

      Включенная защита кластера от удаления не помешает удалить пользователя или топик, а также подключиться вручную и удалить данные.

    • assign_public_ip — публичный доступ к кластеру: true или false.

    • schema_registry — управление схемами данных с помощью Managed Schema Registry: true или false. Значение по умолчанию — false.

      Важно

      Невозможно отключить управление схемами данных с помощью Managed Schema Registry после его подключения.

    Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок maintenance_window:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      maintenance_window {
        type = <тип_технического_обслуживания>
        day  = <день_недели>
        hour = <час_дня>
      }
      ...
    }
    

    Где:

    • type — тип технического обслуживания. Принимает значения:
      • ANYTIME — в любое время.
      • WEEKLY — по расписанию.
    • day — день недели для типа WEEKLY в формате DDD. Например, MON.
    • hour — час дня по UTC для типа WEEKLY в формате HH. Например, 21.
  2. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  3. Создайте кластер Managed Service for Apache Kafka®.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    После этого в указанном каталоге будут созданы все требуемые ресурсы, а в терминале отобразятся FQDN хостов кластера Managed Service for Apache Kafka®. Проверить появление ресурсов и их настройки можно в консоли управления.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Важно

При создании кластера с KRaft не указывайте настройки ZooKeeper.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.create и выполните запрос, например, с помощью cURL:

    1. Создайте файл body.json и добавьте в него следующее содержимое:

      Примечание

      В примере приведены не все доступные параметры.

      {
        "folderId": "<идентификатор_каталога>",
        "name": "<имя_кластера>",
        "environment": "<окружение>",
        "networkId": "<идентификатор_сети>",
        "securityGroupIds": [
          "<идентификатор_группы_безопасности_1>",
          "<идентификатор_группы_безопасности_2>",
          ...
          "<идентификатор_группы_безопасности_N>"
        ],
        "configSpec": {
          "version": "<версия_Apache Kafka®>",
          "kafka": {
            "resources": {
              "resourcePresetId": "<класс_хостов Apache Kafka®>",
              "diskSize": "<размер_хранилища_в_байтах>",
              "diskTypeId": "<тип_диска>"
            }
          },
          "zookeeper": {
            "resources": {
              "resourcePresetId": "<класс_хостов ZooKeeper>",
              "diskSize": "<размер_хранилища_в_байтах>",
              "diskTypeId": "<тип_диска>"                   
            }
          },
          "zoneId": [
            <список_зон_доступности>
          ],
          "brokersCount": "<количество_брокеров_в_зоне>",
          "assignPublicIp": <публичный_доступ:_true_или_false>,
          "schemaRegistry": <управление_схемами_данных:_true_или_false>,
          "restApiConfig": {
            "enabled": <отправка_запросов_к_API_Apache Kafka®:_true_или_false>
          },
          "diskSizeAutoscaling": {
            <параметры_автоматического_увеличения_размера_хранилища>
          },
        },
        "topicSpecs": [
          {
            "name": "<имя_топика>",
            "partitions": "<количество_партиций>",
            "replicationFactor": "<фактор_репликации>"
          },
          { <аналогичный_набор_настроек_для_топика_2> },
          { ... },
          { <аналогичный_набор_настроек_для_топика_N> }
        ],
        "userSpecs": [
          {
            "name": "<имя_пользователя>",
            "password": "<пароль_пользователя>",
            "permissions": [
              {
                "topicName": "<имя_топика>",
                "role": "<роль_пользователя>"
              }
            ]
          },
          { <аналогичный_набор_настроек_для_пользователя_2> },
          { ... },
          { <аналогичный_набор_настроек_для_пользователя_N> }
        ],
        "maintenanceWindow": {
          "anytime": {},
          "weeklyMaintenanceWindow": {
            "day": "<день_недели>",
            "hour": "<час_дня_по_UTC>"
          }
        },
        "deletionProtection": <защита_кластера_от_удаления:_true_или_false>
      }
      

      Где:

      • name — имя кластера.

      • environment — окружение кластера: PRODUCTION или PRESTABLE.

      • networkId — идентификатор сети, в которой будет размещен кластер.

      • securityGroupIds — идентификаторы групп безопасности в виде массива строк. Каждая строка — идентификатор группы безопасности.

      • configSpec — конфигурация кластера:

        • version — версия Apache Kafka®: 3.5 или 3.6.

        • kafka — конфигурация Apache Kafka®:

          • resources.resourcePresetId — идентификатор класса хостов. Список доступных классов хостов с их идентификаторами можно запросить с помощью метода ResourcePreset.list.
          • resources.diskSize — размер диска в байтах.
          • resources.diskTypeId — тип диска.
        • zookeeper — конфигурация ZooKeeper:

          • resources.resourcePresetId — идентификатор класса хостов. Список доступных классов хостов с их идентификаторами можно запросить с помощью метода ResourcePreset.list.
          • resources.diskSize — размер диска в байтах.
          • resources.diskTypeId — тип диска.
        • zoneId и brokersCount – зоны доступности и число хостов-брокеров в каждой зоне.

          Если вы создаете кластер с версией Apache Kafka® 3.6 и выше, укажите одну из доступных конфигураций:

          • "zoneId": ["ru-central1-a","ru-central1-b","ru-central1-d"], "brokersCount": "1";
          • "zoneId": ["<одна_зона_доступности>"], "brokersCount": "1";
          • "zoneId": ["<одна_зона_доступности>"], "brokersCount": "3".
        • assignPublicIp — доступность хостов-брокеров из интернета: true или false.

        • schemaRegistry – управлять схемами данных с помощью Managed Schema Registry: true или false. Значение по умолчанию — false. Эту настройку невозможно изменить после создания кластера Managed Service for Apache Kafka®.

        • restApiConfig – конфигурация Apache Kafka® REST API. Для доступа к отправке запросов к REST API Apache Kafka® укажите enabled: true.

        • diskSizeAutoscaling – пороги заполненности хранилища (в процентах от общего объема хранилища), при достижении которых его размер будет увеличиваться:

          • plannedUsageThreshold – процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.

            Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено).

            Если вы задали этот параметр, настройте расписание окна технического обслуживания.

          • emergencyUsageThreshold — процент заполнения хранилища, при котором хранилище будет увеличено немедленно.

            Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено). Должно быть не меньше значения plannedUsageThreshold.

          • diskSizeLimit – максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.

      • topicSpecs — настройки топиков в виде массива элементов. Каждый элемент соответствует отдельному топику и имеет следующую структуру:

        • name — имя топика.

          Примечание

          Если нужно создать топик, начинающийся с символа _, используйте Admin API Apache Kafka®. Создать такой топик с помощью интерфейсов Yandex Cloud нельзя.

        • partitions – количество разделов.

        • replicationFactor – фактор репликации.

      • userSpecs — настройки пользователей в виде массива элементов. Каждый элемент соответствует отдельному пользователю и имеет следующую структуру:

        • name — имя пользователя. Оно может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания.

        • password — пароль пользователя. Длина пароля от 8 до 128 символов.

        • permissions — список топиков, к которым пользователь должен иметь доступ.

          Список организован в виде массива элементов. Каждый элемент соответствует отдельному топику и имеет следующую структуру:

          • topicName – имя или шаблон имени топика:
            • * — чтобы разрешить доступ к любым топикам.
            • Полное название топика — чтобы разрешить доступ конкретно к нему.
            • <префикс>* — чтобы выдать доступ к топикам, названия которых начинаются с указанного префикса. Допустим, есть топики topic_a1, topic_a2, a3. Если указать значение topic*, доступ будет разрешен для топиков topic_a1 и topic_a2.Для указания всех топиков в кластере используйте маску *.
          • role – роль пользователя: ACCESS_ROLE_CONSUMER, ACCESS_ROLE_PRODUCER или ACCESS_ROLE_ADMIN. Роль ACCESS_ROLE_ADMIN доступна только если выбраны все топики (topicName: "*").
          • allowHosts – (опционально) список IP-адресов, с которых пользователю разрешен доступ к топику.
      • maintenanceWindow — настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Выберите один из вариантов:

        • anytime — (по умолчанию) — в любое время.
        • weeklyMaintenanceWindow — по расписанию:
          • day — день недели в формате DDD: MON, TUE, WED, THU, FRI, SAT или SUN.
          • hour — час дня по UTC в формате HH: от 1 до 24.
      • deletionProtection — защита кластера от непреднамеренного удаления: true или false. Значение по умолчанию — false.

        Включенная защита кластера от удаления не помешает удалить пользователя или топик, а также подключиться вручную и удалить данные.

      Чтобы создать кластер Managed Service for Apache Kafka®, размещенный на группах выделенных хостов, передайте список их идентификаторов в параметре hostGroupIds.

      Внимание

      Эту настройку нельзя изменить после создания кластера. Использование выделенных хостов существенно влияет на тарификацию кластера.

      Идентификатор каталога можно запросить со списком каталогов в облаке.

    2. Выполните запрос:

      curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters' \
        --data '@body.json'
      
  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

При создании кластера с KRaft не указывайте настройки ZooKeeper.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService/Сreate и выполните запрос, например, с помощью gRPCurl:

    1. Создайте файл body.json и добавьте в него следующее содержимое:

      Примечание

      В примере приведены не все доступные параметры.

      {
        "folder_id": "<идентификатор_каталога>",
        "name": "<имя_кластера>",
        "environment": "<окружение>",
        "network_id": "<идентификатор_сети>",
        "security_group_ids": [
          "<идентификатор_группы_безопасности_1>",
          "<идентификатор_группы_безопасности_2>",
          ...
          "<идентификатор_группы_безопасности_N>"
        ],
        "config_spec": {
          "version": "<версия_Apache Kafka®>",
          "kafka": {
            "resources": {
              "resource_preset_id": "<класс_хостов Apache Kafka®>",
              "disk_size": "<размер_хранилища_в_байтах>",
              "disk_type_id": "<тип_диска>"
            }
          },
          "zookeeper": {
            "resources": {
              "resource_preset_id": "<класс_хостов ZooKeeper>",
              "disk_size": "<размер_хранилища_в_байтах>",
              "disk_type_id": "<тип_диска>"                   
            }
          },
          "zone_id": [
            <список_зон_доступности>
          ],
          "brokers_count": {
            "value": "<количество_брокеров_в_зоне>"
          },
          "assign_public_ip": <публичный_доступ:_true_или_false>,
          "schema_registry": <управление_схемами_данных:_true_или_false>,
          "rest_api_config": {
            "enabled": <отправка_запросов_к_API_Apache Kafka®:_true_или_false>
          },
          "disk_size_autoscaling": {
            <параметры_автоматического_увеличения_размера_хранилища>
          },
        },
        "topic_specs": [
          {
            "name": "<имя_топика>",
            "partitions": {
              "value": "<количество_партиций>"
            },
            "replication_factor": {
              "value": "<фактор_репликации>"
            }
          },
          { <аналогичный_набор_настроек_для_топика_2> },
          { ... },
          { <аналогичный_набор_настроек_для_топика_N> }
        ],
        "user_specs": [
          {
            "name": "<имя_пользователя>",
            "password": "<пароль_пользователя>",
            "permissions": [
              {
                "topic_name": "<имя_топика>",
                "role": "<роль_пользователя>"
              }
            ]
          },
          { <аналогичный_набор_настроек_для_пользователя_2> },
          { ... },
          { <аналогичный_набор_настроек_для_пользователя_N> }
        ],
        "maintenance_window": {
          "anytime": {},
          "weekly_maintenance_window": {
            "day": "<день_недели>",
            "hour": "<час_дня_по_UTC>"
          }
        },
        "deletion_protection": <защита_кластера_от_удаления:_true_или_false>
      }
      

      Где:

      • name — имя кластера.

      • environment — окружение кластера: PRODUCTION или PRESTABLE.

      • network_id — идентификатор сети, в которой будет размещен кластер.

      • security_group_ids — идентификаторы групп безопасности в виде массива строк. Каждая строка — идентификатор группы безопасности.

      • config_spec — конфигурация кластера:

        • version — версия Apache Kafka®: 3.5 или 3.6.

        • kafka — конфигурация Apache Kafka®:

          • resources.resource_preset_id — идентификатор класса хостов. Список доступных классов хостов с их идентификаторами можно запросить с помощью вызова ResourcePreset.list.
          • resources.disk_size — размер диска в байтах.
          • resources.disk_type_id — тип диска.
        • zookeeper — конфигурация ZooKeeper:

          • resources.resource_preset_id — идентификатор класса хостов. Список доступных классов хостов с их идентификаторами можно запросить с помощью вызова ResourcePreset.list.
          • resources.disk_size — размер диска в байтах.
          • resources.disk_type_id — тип диска.
        • zone_id и brokers_count – зоны доступности и число хостов-брокеров в каждой зоне (число передается в виде объекта с полем value).

          Если вы создаете кластер с версией Apache Kafka® 3.6 и выше, укажите одну из доступных конфигураций:

          • "zone_id": ["ru-central1-a","ru-central1-b","ru-central1-d"], "brokers_count": {"value":"1"};
          • "zone_id": ["<одна_зона_доступности>"], "brokers_count": {"value":"1"};
          • "zone_id": ["<одна_зона_доступности>"], "brokers_count": {"value":"3"}.
        • assign_public_ip — доступность хостов-брокеров из интернета: true или false.

        • schema_registry – управлять схемами данных с помощью Managed Schema Registry: true или false. Значение по умолчанию — false. Эту настройку невозможно изменить после создания кластера Managed Service for Apache Kafka®.

        • rest_api_config – конфигурация Apache Kafka® REST API. Для доступа к отправке запросов к REST API Apache Kafka® укажите enabled: true.

        • disk_size_autoscaling – чтобы в кластере не заканчивалось место на диске, укажите пороги заполненности хранилища (в процентах от общего объема хранилища), при достижении которых его размер будет увеличиваться:

          • planned_usage_threshold – процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.

            Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено).

            Если вы задали этот параметр, настройте расписание окна технического обслуживания.

          • emergency_usage_threshold — процент заполнения хранилища, при котором хранилище будет увеличено немедленно.

            Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено). Должно быть не меньше значения planned_usage_threshold.

          • disk_size_limit – максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.

      • topic_specs — настройки топиков в виде массива элементов. Каждый элемент соответствует отдельному топику и имеет следующую структуру:

        • name — имя топика.

          Примечание

          Если нужно создать топик, начинающийся с символа _, используйте Admin API Apache Kafka®. Создать такой топик с помощью интерфейсов Yandex Cloud нельзя.

        • partitions – количество разделов. Передается в виде объекта с полем value.

        • replication_factor – фактор репликации. Передается в виде объекта с полем value.

      • user_specs — настройки пользователей в виде массива элементов. Каждый элемент соответствует отдельному пользователю и имеет следующую структуру:

        • name — имя пользователя. Оно может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания.

        • password — пароль пользователя. Длина пароля от 8 до 128 символов.

        • permissions — список топиков, к которым пользователь должен иметь доступ.

          Список организован в виде массива элементов. Каждый элемент соответствует отдельному топику и имеет следующую структуру:

          • topic_name – имя или шаблон имени топика:
            • * — чтобы разрешить доступ к любым топикам.
            • Полное название топика — чтобы разрешить доступ конкретно к нему.
            • <префикс>* — чтобы выдать доступ к топикам, названия которых начинаются с указанного префикса. Допустим, есть топики topic_a1, topic_a2, a3. Если указать значение topic*, доступ будет разрешен для топиков topic_a1 и topic_a2.Для указания всех топиков в кластере используйте маску *.
          • role – роль пользователя: ACCESS_ROLE_CONSUMER, ACCESS_ROLE_PRODUCER или ACCESS_ROLE_ADMIN. Роль ACCESS_ROLE_ADMIN доступна только если выбраны все топики (topicName: "*").
          • allow_hosts – (опционально) список IP-адресов, с которых пользователю разрешен доступ к топику, в виде массива элементов.
      • maintenance_window — настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Выберите один из вариантов:

        • anytime — (по умолчанию) — в любое время.
        • weekly_maintenance_window — по расписанию:
          • day — день недели в формате DDD: MON, TUE, WED, THU, FRI, SAT или SUN.
          • hour — час дня по UTC в формате HH: от 1 до 24.
      • deletion_protection — защита кластера от непреднамеренного удаления: true или false. Значение по умолчанию — false.

        Включенная защита кластера от удаления не помешает удалить пользователя или топик, а также подключиться вручную и удалить данные.

      Чтобы создать кластер Managed Service for Apache Kafka®, размещенный на группах выделенных хостов, передайте список их идентификаторов в параметре host_group_ids.

      Внимание

      Эту настройку нельзя изменить после создания кластера. Использование выделенных хостов существенно влияет на тарификацию кластера.

      Идентификатор каталога можно запросить со списком каталогов в облаке.

    2. Выполните запрос:

      curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters' \
        --data '@body.json'
      
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Чтобы убедиться, что созданный кластер с версией Apache Kafka® 3.6 или выше использует протокол KRaft, получите информацию о хостах кластера:

Консоль управления
CLI
REST API
gRPC API
  1. В консоли управления перейдите в нужный каталог.
  2. В списке сервисов выберите Managed Service for Kafka.
  3. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить список хостов в кластере, выполните команду:

yc managed-kafka cluster list-hosts <имя_или_идентификатор_кластера>

Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.listHosts и выполните запрос, например, с помощью cURL:

    curl \
        --request GET \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters/<идентификатор_кластера>/hosts'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService/ListHosts и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/kafka/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
                "cluster_id": "<идентификатор_кластера>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.kafka.v1.ClusterService.ListHosts
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Отсутствие хостов ZooKeeper говорит о том, что в кластере используется протокол KRaft.

Создать копию кластераСоздать копию кластера

Вы можете создать кластер Apache Kafka®, который будет обладать настройками созданного ранее кластера. Для этого конфигурация исходного кластера Apache Kafka® импортируется в Terraform. В результате вы можете либо создать идентичную копию, либо взять за основу импортированную конфигурацию и внести в нее изменения. Использовать импорт удобно, если исходный кластер Apache Kafka® обладает множеством настроек и нужно создать похожий на него кластер.

Чтобы создать копию кластера Apache Kafka®:

Terraform
  1. Если у вас еще нет Terraform, установите его.

  2. Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.

  3. Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его.

  4. Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.

  5. В той же рабочей директории разместите файл с расширением .tf и содержимым:

    resource "yandex_mdb_kafka_cluster" "old" { }
    
  6. Запишите идентификатор первоначального кластера Apache Kafka® в переменную окружения:

    export KAFKA_CLUSTER_ID=<идентификатор_кластера>
    

    Идентификатор можно запросить вместе со списком кластеров в каталоге.

  7. Импортируйте настройки первоначального кластера Apache Kafka® в конфигурацию Terraform:

    terraform import yandex_mdb_kafka_cluster.old ${KAFKA_CLUSTER_ID}
    
  8. Получите импортированную конфигурацию:

    terraform show
    
  9. Скопируйте ее из терминала и вставьте в файл с расширением .tf.

  10. Расположите файл в новой директории imported-cluster.

  11. Измените скопированную конфигурацию так, чтобы из нее можно было создать новый кластер:

    • Укажите новое имя кластера в строке resource и параметре name.
    • Удалите параметры created_at, health, host, id и status.
    • Добавьте параметр subnet_ids и укажите в нем список идентификаторов подсетей для каждой зоны доступности.
    • Если в блоке maintenance_window указано значение параметра type = "ANYTIME", удалите параметр hour.
    • (Опционально) Внесите дополнительные изменения, если вам нужна не идентичная, а кастомизированная копия.
  12. В директории imported-cluster получите данные для аутентификации.

  13. В этой же директории настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его.

  14. Поместите конфигурационный файл в директорию imported-cluster и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.

  15. Проверьте корректность файлов конфигурации Terraform:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  16. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

ПримерыПримеры

Создание кластера с одним хостомСоздание кластера с одним хостом

CLI
Terraform

Создайте кластер Managed Service for Apache Kafka® с тестовыми характеристиками:

  • С именем mykf.
  • В окружении production.
  • С Apache Kafka® версии 3.5.
  • В сети default.
  • В подсети с идентификатором b0rcctk2rvtr********.
  • В группе безопасности enp6saqnq4ie********.
  • С одним хостом класса s2.micro, в зоне доступности ru-central1-a.
  • С одним хостом-брокером.
  • С хранилищем на сетевых SSD-дисках (network-ssd) объемом 10 ГБ.
  • С публичным доступом.
  • С защитой от непреднамеренного удаления.

Выполните следующую команду:

yc managed-kafka cluster create \
   --name mykf \
   --environment production \
   --version 3.5 \
   --network-name default \
   --subnet-ids b0rcctk2rvtr******** \
   --zone-ids ru-central1-a \
   --brokers-count 1 \
   --resource-preset s2.micro \
   --disk-size 10 \
   --disk-type network-ssd \
   --assign-public-ip \
   --security-group-ids enp6saqnq4ie******** \
   --deletion-protection

Создайте кластер Managed Service for Apache Kafka® с тестовыми характеристиками:

  • В облаке с идентификатором b1gq90dgh25********.

  • В каталоге с идентификатором b1gia87mbaom********.

  • С именем mykf.

  • В окружении PRODUCTION.

  • С Apache Kafka® версии 3.5.

  • В новой сети mynet с подсетью mysubnet.

  • В новой группе безопасности mykf-sg, разрешающей подключение к кластеру Managed Service for Apache Kafka® из интернета по порту 9091.

  • С одним хостом класса s2.micro, в зоне доступности ru-central1-a.

  • С одним хостом-брокером.

  • С хранилищем на сетевых SSD-дисках (network-ssd) объемом 10 ГБ.

  • С публичным доступом.

  • С защитой от непреднамеренного удаления.

Конфигурационный файл для такого кластера Managed Service for Apache Kafka® выглядит так:

resource "yandex_mdb_kafka_cluster" "mykf" {
  environment         = "PRODUCTION"
  name                = "mykf"
  network_id          = yandex_vpc_network.mynet.id
  subnet_ids          = [ yandex_vpc_subnet.mysubnet.id ]
  security_group_ids  = [ yandex_vpc_security_group.mykf-sg.id ]
  deletion_protection = true

  config {
    assign_public_ip = true
    brokers_count    = 1
    version          = "3.5"
    kafka {
      resources {
        disk_size          = 10
        disk_type_id       = "network-ssd"
        resource_preset_id = "s2.micro"
      }
      kafka_config {}
    }

    zones = [
      "ru-central1-a"
    ]
  }
}

resource "yandex_vpc_network" "mynet" {
  name = "mynet"
}

resource "yandex_vpc_subnet" "mysubnet" {
  name           = "mysubnet"
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.mynet.id
  v4_cidr_blocks = ["10.5.0.0/24"]
}

resource "yandex_vpc_security_group" "mykf-sg" {
  name       = "mykf-sg"
  network_id = yandex_vpc_network.mynet.id

  ingress {
    description    = "Kafka"
    port           = 9091
    protocol       = "TCP"
    v4_cidr_blocks = [ "0.0.0.0/0" ]
  }
}

Была ли статья полезна?

Предыдущая
Информация об имеющихся кластерах
Следующая
Изменение настроек кластера
Проект Яндекса
© 2025 ООО «Яндекс.Облако»