Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Managed Service for Apache Kafka®
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к кластеру
    • Остановка и запуск кластера
    • Изменение настроек кластера
    • Управление хостами Apache Kafka®
    • Работа с топиками и разделами
    • Управление учетными записями Kafka
    • Удаление кластера
  • Сценарии использования
    • Поставка данных в Managed Service for ClickHouse
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Топики и разделы
    • Брокеры
    • Производители и потребители
    • Классы хостов
    • Сеть в Managed Service for Apache Kafka®
    • Квоты и лимиты
    • Типы хранилища
    • Настройки Apache Kafka®
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC
      • Обзор
      • ClusterService
      • OperationService
      • ResourcePresetService
      • TopicService
      • UserService
      • OperationService
    • REST
      • Обзор
      • Cluster
        • Обзор
        • create
        • delete
        • get
        • list
        • listHosts
        • listLogs
        • listOperations
        • move
        • start
        • stop
        • streamLogs
        • update
      • Operation
        • Обзор
        • get
      • ResourcePreset
        • Обзор
        • get
        • list
      • Topic
        • Обзор
        • create
        • delete
        • get
        • list
        • update
      • User
        • Обзор
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Создание кластера

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

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

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

Важно

Если вы создаете кластер из более чем одного хоста, в кластер будут добавлены три выделенных хоста ZooKeeper. Подробнее см. в разделе Взаимосвязь ресурсов сервиса.

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

Чтобы создать кластер, выполните следующие действия:

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

  2. Выберите сервис Managed Service for Apache Kafka®.

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

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

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

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

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

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

    1. Выберите тип хранилища — более гибкое сетевое (network-hdd или network-ssd) или более быстрое локальное хранилище (local-ssd).
    2. Выберите объем хранилища, который будет использоваться для данных. Размер локального хранилища можно менять только с шагом 100 ГБ.
  7. В блоке Сетевые настройки:

    1. Выберите одну или несколько зон доступности, в которых нужно разместить брокеры Apache Kafka®.

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

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

      Примечание

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

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

      Важно

      Запросить публичный доступ после создания кластера невозможно.

    5. Выберите группы безопасности для сетевого трафика кластера.

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

    При выборе количества хостов учитывайте, что:

    • Хосты кластера Apache Kafka® будут равномерно расположены в выбранных зонах доступности. Количество зон и хостов в зоне следует выбирать исходя из требуемой модели отказоустойчивости и нагрузки на кластер.
    • Репликация возможна при наличии как минимум двух хостов в кластере.
    • Добавление в кластер более одного хоста приведет к автоматическому добавлению трех хостов ZooKeeper.
  9. Если вы указали более одного хоста-брокера, то в блоке Класс хоста ZooKeeper укажите характеристики хостов ZooKeeper для размещения в каждой выбранной зоне доступности.

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

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

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

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

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы создать кластер:

  1. Посмотрите описание команды CLI для создания кластера:

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

    yc managed-kafka cluster create \
       --name <имя кластера> \
       --environment <окружение: prestable или production> \
       --version <версия: 2.1 или 2.6> \
       --network-name <имя сети> \
       --brokers-count <количество брокеров в зоне> \
       --resource-preset <класс хоста> \
       --disk-type <тип диска> \
       --disk-size <размер хранилища в гигабайтах> \
       --assign-public-ip <публичный доступ> \
       --security-group-ids <список идентификаторов групп безопасности>
    

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

Чтобы создать кластер, воспользуйтесь методом API create и передайте в запросе:

  • Идентификатор каталога, в котором должен быть размещен кластер, в параметре folderId.
  • Имя кластера в параметре name.
  • Идентификаторы групп безопасности в параметре securityGroupIds.

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

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

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

Чтобы создать кластер:

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

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

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

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

    terraform {
      required_providers {
        yandex = {
         source = "yandex-cloud/yandex"
        }
      }
    }
    
    provider "yandex" {
      token     = "<OAuth или статический ключ сервисного аккаунта>"
      cloud_id  = "<идентификатор облака>"
      folder_id = "<идентификатор каталога>"
      zone      = "<зона доступности>"
    }
    
    resource "yandex_mdb_kafka_cluster" "<имя кластера>" {
      environment        = "<окружение: PRESTABLE или PRODUCTION>"
      name               = "<имя кластера>"
      network_id         = "<идентификатор сети>"
      security_group_ids = ["<список групп безопасности>"]
    
      config {
        assign_public_ip = "<публичный доступ к кластеру: true или false>"
        brokers_count    = <количество брокеров>
        version          = "<версия Apache Kafka: 2.1 или 2.6>"
        kafka {
          resources {
            disk_size          = <размер хранилища в гигабайтах>
            disk_type_id       = "<тип хранилища: network-ssd, network-hdd или local-ssd>"
            resource_preset_id = "<класс хоста>"
          }
        }
    
        zones = [
          "<зоны доступности>"
        ]
      }
    }
    
    resource "yandex_vpc_network" "<имя сети>" {
      name = "<имя сети>"
    }
    
    resource "yandex_vpc_subnet" "<имя подсети>" {
      name           = "<имя подсети>"
      zone           = "<зона доступности>"
      network_id     = "<идентификатор сети>"
      v4_cidr_blocks = ["<диапазон>"]
    }
    

    Более подробную информацию о ресурсах, которые можно создать с помощью Terraform, см. в документации провайдера.

  2. Проверьте корректность конфигурационных файлов.

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

    2. Выполните проверку с помощью команды:

      terraform plan
      

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

  3. Создайте кластер.

    1. Если в конфигурации нет ошибок, выполните команду:

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

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

Важно

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

Примеры

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

CLI
Terraform

Допустим, нужно создать кластер Managed Service for Apache Kafka® со следующими характеристиками:

  • С именем mykf.
  • В окружении production.
  • С Apache Kafka® версии 2.6.
  • В сети default.
  • В группе безопасности enp6saqnq4ie244g67sb.
  • С одним хостом класса s2.micro, в зоне доступности ru-central1-c.
  • С одним брокером.
  • С быстрым сетевым хранилищем (network-ssd) объемом 10 ГБ.
  • С публичным доступом.

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

yc managed-kafka cluster create \
--name mykf \
--environment production \
--version 2.6 \
--network-name default \
--zone-ids ru-central1-c \
--brokers-count 1 \
--resource-preset s2.micro \
--disk-size 10 \
--disk-type network-ssd \
--assign-public-ip \
--security-group-ids enp6saqnq4ie244g67sb

Допустим, нужно создать кластер Managed Service for Apache Kafka® со следующими характеристиками:

  • В облаке с идентификатором b1gq90dgh25bebiu75o.
  • В каталоге с идентификатором b1gia87mbaomkfvsleds.
  • С именем mykf.
  • В окружении PRODUCTION.
  • С Apache Kafka® версии 2.6.
  • В новой сети mynet с подсетью mysubnet.
  • В новой группе безопасности mykf-sg, разрешающей подключение к кластеру из интернета по порту 9091.
  • С одним хостом класса s2.micro, в зоне доступности ru-central1-c.
  • С одним брокером.
  • С быстрым сетевым хранилищем (network-ssd) объемом 10 ГБ.
  • С публичным доступом.

Конфигурационный файл для такого кластера выглядит так:

terraform {
  required_providers {
    yandex = {
      source = "yandex-cloud/yandex"
    }
  }
}

provider "yandex" {
  token     = "<OAuth или статический ключ сервисного аккаунта>"
  cloud_id  = "b1gq90dgh25bebiu75o"
  folder_id = "b1gia87mbaomkfvsleds"
  zone      = "ru-central1-c"
}

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

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

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

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

resource "yandex_vpc_subnet" "mysubnet" {
  name           = "mysubnet"
  zone           = "ru-central1-c"
  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" ]
  }
}
Language / Region
Вакансии
Политика конфиденциальности
Условия использования
Брендбук
© 2021 ООО «Яндекс.Облако»