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

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

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

Изменение настроек кластера Apache Kafka®

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 24 апреля 2025 г.
  • Изменить имя и описание кластера
  • Изменить класс и количество хостов-брокеров
  • Изменить класс хостов ZooKeeper
  • Изменить настройки групп безопасности и публичного доступа
  • Изменить дополнительные настройки кластера
  • Изменить настройки Apache Kafka®
  • Переместить кластер в другой каталог

После создания кластера Managed Service for Apache Kafka® вы можете:

  • изменить имя и описание кластера;
  • изменить класс и количество хостов-брокеров;
  • изменить класс хостов ZooKeeper;
  • изменить настройки групп безопасности и публичного доступа;
  • изменить дополнительные настройки кластера;
  • изменить настройки Apache Kafka®;
  • переместить кластер в другой каталог.

Подробнее о других изменениях кластера:

  • Обновление версии Apache Kafka®.
  • Управление дисковым пространством в кластере Managed Service for Apache Kafka®.
  • Миграция хостов кластера Apache Kafka® в другую зону доступности.

Изменить имя и описание кластераИзменить имя и описание кластера

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for Kafka.
  2. В строке с нужным кластером нажмите на значок , затем выберите Редактировать.
  3. В блоке Базовые параметры задайте новые имя и описание кластера.
  4. Нажмите кнопку Сохранить.

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

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

Чтобы изменить имя и описание кластера:

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

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

    yc managed-kafka cluster update <имя_или_идентификатор_кластера> \
      --new-name <новое_имя_кластера> \
      --description <новое_описание_кластера>
    

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

Внимание

Не изменяйте имя кластера с помощью Terraform. Это приведет к удалению существующего кластера и созданию нового.

Чтобы изменить описание кластера:

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for Apache Kafka® значение параметра description:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      name        = "<имя_кластера>"
      description = "<новое_описание_кластера>"
      ...
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters/<идентификатор_кластера>' \
        --data '{
                  "updateMask": "name,description",
                  "name": "<имя_кластера>",
                  "description": "<новое_описание_кластера>"
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      Укажите нужные параметры:

      • name — если нужно изменить имя кластера.
      • description — если нужно изменить описание кластера.
    • name — новое имя кластера.

    • description — новое описание кластера.

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

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

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

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

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

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

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    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": "<идентификатор_кластера>",
              "update_mask": {
                "paths": [
                  "name",
                  "description"
                ]
              },
              "name": "<имя_кластера>",
              "description": "<новое_описание_кластера>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.kafka.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      Укажите нужные параметры:

      • name — если нужно изменить имя кластера.
      • description — если нужно изменить описание кластера.
    • name — новое имя кластера.

    • description — новое описание кластера.

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

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

Изменить класс и количество хостов-брокеровИзменить класс и количество хостов-брокеров

Увеличить количество хостов-брокеров можно, если выполняются условия:

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

Уменьшить количество хостов-брокеров нельзя. Для выполнения условий отказоустойчивости кластера необходимо минимум три хоста-брокера.

При смене класса хостов-брокеров:

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

Рекомендуется изменять класс хостов-брокеров только во время отсутствия рабочей нагрузки на кластер.

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

Чтобы изменить класс и количество хостов:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for Kafka.

  2. В строке с нужным кластером нажмите на значок , затем выберите Редактировать.

  3. Измените требуемые настройки:

    • Чтобы изменить класс хостов-брокеров, выберите новый Класс хоста.
    • Измените Количество брокеров в зоне.
  4. Нажмите кнопку Сохранить.

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

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

Чтобы изменить класс и количество хостов:

  1. Получите информацию о кластере:

    yc managed-kafka cluster list
    yc managed-kafka cluster get <имя_или_идентификатор_кластера>
    
  2. Посмотрите описание команды CLI для изменения кластера:

    yc managed-kafka cluster update --help
    
  3. Чтобы увеличить количество хостов-брокеров, выполните команду:

    yc managed-kafka cluster update <имя_или_идентификатор_кластера> --brokers-count <число>
    
  4. Чтобы изменить класс хоста-брокера, выполните команду:

    yc managed-kafka cluster update <имя_или_идентификатор_кластера> --resource-preset <класс_хоста>
    

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

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for Apache Kafka® значение параметра brokers_count, чтобы увеличить количество хостов-брокеров:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      config {
        brokers_count = <количество_хостов-брокеров>
        ...
      }
      ...
    }
    
  3. Измените в описании кластера Managed Service for Apache Kafka® значение параметра resource_preset_id в блоке kafka.resources, чтобы задать новый класс хостов-брокеров:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      kafka {
        resources {
          resource_preset_id = "<класс_хостов-брокеров>"
          ...
        }
      }
    }
    
  4. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  5. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Запросите список доступных классов хостов:

    1. Воспользуйтесь методом ResourcePreset.list и выполните запрос, например, с помощью cURL:

      curl \
          --request GET \
          --header "Authorization: Bearer $IAM_TOKEN" \
          --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/resourcePresets'
      
    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  3. Измените класс и количество хостов-брокеров на нужные:

    1. Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL:

      Важно

      Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

      curl \
          --request PATCH \
          --header "Authorization: Bearer $IAM_TOKEN" \
          --header "Content-Type: application/json" \
          --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters/<идентификатор_кластера>' \
          --data '{
                    "updateMask": "configSpec.kafka.resources.resourcePresetId,configSpec.brokersCount",
                    "configSpec": {
                      "kafka": {
                        "resources": {
                          "resourcePresetId": "<идентификатор_класса_хостов-брокеров>"
                        }
                      },
                      "brokersCount": "<количество_хостов-брокеров>"
                    }
                  }'
      

      Где:

      • updateMask — перечень изменяемых параметров в одну строку через запятую.

        Укажите нужные параметры:

        • configSpec.kafka.resources.resourcePresetId — если нужно изменить класс хостов-брокеров.
        • configSpec.brokersCount — если нужно изменить количество хостов-брокеров.

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

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

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

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

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

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

  3. Запросите список доступных классов хостов:

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

      grpcurl \
          -format json \
          -import-path ~/cloudapi/ \
          -import-path ~/cloudapi/third_party/googleapis/ \
          -proto ~/cloudapi/yandex/cloud/mdb/kafka/v1/resource_preset_service.proto \
          -rpc-header "Authorization: Bearer $IAM_TOKEN" \
          mdb.api.cloud.yandex.net:443 \
          yandex.cloud.mdb.kafka.v1.ResourcePresetService.List
      
    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  4. Измените класс хостов на нужный:

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

      Важно

      Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

      Формат перечисления настроек
      "update_mask": {
          "paths": [
              "<настройка_1>",
              "<настройка_2>",
              ...
              "<настройка_N>"
          ]
      }
      
      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": "<идентификатор_кластера>",
                "update_mask": {
                  "paths": [
                    "config_spec.kafka.resources.resource_preset_id",
                    "config_spec.brokers_count"
                  ]
                },
                "config_spec": {
                  "kafka": {
                    "resources": {
                      "resource_preset_id": "<идентификатор_класса_хостов-брокеров>"
                    }
                  },
                  "brokers_count": {
                    "value": "<количество_хостов-брокеров>"
                  }
                }
              }' \
          mdb.api.cloud.yandex.net:443 \
          yandex.cloud.mdb.kafka.v1.ClusterService.Update
      

      Где:

      • update_mask — перечень изменяемых параметров в виде массива строк paths[].

        Укажите нужные параметры:

        • config_spec.kafka.resources.resource_preset_id — если нужно изменить класс хостов-брокеров.
        • config_spec.brokers_count — если нужно изменить количество хостов-брокеров.

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

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

Изменить класс хостов ZooKeeperИзменить класс хостов ZooKeeper

Примечание

Класс хостов ZooKeeper используется только в кластерах с версией Apache Kafka® 3.5 и ниже.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for Kafka.
  2. В строке с нужным кластером нажмите на значок , затем выберите Редактировать.
  3. Выберите новый Класс хоста ZooKeeper.
  4. Нажмите кнопку Сохранить.

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

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

Чтобы изменить класс хостов ZooKeeper:

  1. Получите информацию о кластере:

    yc managed-kafka cluster list
    yc managed-kafka cluster get <имя_или_идентификатор_кластера>
    
  2. Посмотрите описание команды CLI для изменения кластера:

    yc managed-kafka cluster update --help
    
  3. Чтобы изменить класс хостов ZooKeeper, выполните команду:

    yc managed-kafka cluster update <имя_или_идентификатор_кластера> \
      --zookeeper-resource-preset <класс_хоста>
    

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

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for Apache Kafka® значение параметра resource_preset_id в блоке zookeeper.resources, чтобы задать новый класс хостов ZooKeeper:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      zookeeper {
        resources {
          resource_preset_id = "<класс_хостов_ZooKeeper>"
          ...
        }
      }
     }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Запросите список доступных классов хостов:

    1. Воспользуйтесь методом ResourcePreset.list и выполните запрос, например, с помощью cURL:

      curl \
          --request GET \
          --header "Authorization: Bearer $IAM_TOKEN" \
          --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/resourcePresets'
      
    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  3. Измените класс хостов на нужный:

    1. Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL:

      Важно

      Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

      curl \
          --request PATCH \
          --header "Authorization: Bearer $IAM_TOKEN" \
          --header "Content-Type: application/json" \
          --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters/<идентификатор_кластера>' \
          --data '{
                    "updateMask": "configSpec.zookeeper.resources.resourcePresetId",
                    "configSpec": {
                      "zookeeper": {
                        "resources": {
                          "resourcePresetId": "<идентификатор_класса_хостов_ZooKeeper>"
                        }
                      }
                    }
                  }'
      

      Где:

      • updateMask — перечень изменяемых параметров в одну строку через запятую.

        Укажите нужные параметры:

        • configSpec.zookeeper.resources.resourcePresetId — если нужно изменить класс хостов ZooKeeper.

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

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

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

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

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

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

  3. Запросите список доступных классов хостов:

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

      grpcurl \
          -format json \
          -import-path ~/cloudapi/ \
          -import-path ~/cloudapi/third_party/googleapis/ \
          -proto ~/cloudapi/yandex/cloud/mdb/kafka/v1/resource_preset_service.proto \
          -rpc-header "Authorization: Bearer $IAM_TOKEN" \
          mdb.api.cloud.yandex.net:443 \
          yandex.cloud.mdb.kafka.v1.ResourcePresetService.List
      
    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  4. Измените класс хостов на нужный:

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

      Важно

      Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

      Формат перечисления настроек
      "update_mask": {
          "paths": [
              "<настройка_1>",
              "<настройка_2>",
              ...
              "<настройка_N>"
          ]
      }
      
      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": "<идентификатор_кластера>",
                "update_mask": {
                  "paths": [
                    "config_spec.zookeeper.resources.resource_preset_id"
                  ]
                },
                "config_spec": {
                  "zookeeper": {
                    "resources": {
                      "resource_preset_id": "<идентификатор_класса_хостов_ZooKeeper>"
                    }
                  }
                }
              }' \
          mdb.api.cloud.yandex.net:443 \
          yandex.cloud.mdb.kafka.v1.ClusterService.Update
      

      Где:

      • update_mask — перечень изменяемых параметров в виде массива строк paths[].

        Укажите нужные параметры:

        • config_spec.zookeeper.resources.resource_preset_id — если нужно изменить класс хостов ZooKeeper.

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

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

Изменить настройки групп безопасности и публичного доступаИзменить настройки групп безопасности и публичного доступа

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for Kafka.
  2. В строке с нужным кластером нажмите на значок , затем выберите Редактировать.
  3. В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
  4. Установите или отключите публичный доступ к кластеру при помощи опции Публичный доступ.
  5. Нажмите кнопку Сохранить.

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

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

Чтобы изменить список групп безопасности для кластера:

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

    yc managed-kafka cluster update --help
    
  2. Укажите нужные группы безопасности и настройку публичного доступа в команде изменения кластера:

    yc managed-kafka cluster update <имя_или_идентификатор_кластера> \
       --security-group-ids <список_групп_безопасности> \
       --assign-public-ip=<публичный_доступ>
    

    Где:

    • --security-group-ids — список идентификаторов групп безопасности кластера.
    • --assign-public-ip — публичный доступ к кластеру: true или false.

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

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, см. в разделе Создание кластера.

  2. Измените значения параметров security_group_ids и assign_public_ip в описании кластера:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      security_group_ids = [ <список_групп_безопасности> ]
      ...
      config {
        assign_public_ip = "<публичный_доступ>"
        ...
        }
    }
    

    Где:

    • security_group_ids — список идентификаторов групп безопасности кластера.
    • assign_public_ip — публичный доступ к кластеру: true или false.
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        -url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters/<идентификатор_кластера>' \
        --data '{
                  "updateMask": "securityGroupIds,configSpec.assignPublicIp",
                  "securityGroupIds": [
                    <список_идентификаторов_групп_безопасности>
                  ],
                  "configSpec": {
                    "assignPublicIp": "<публичный_доступ:_true_или_false>"
                  }
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      Укажите нужные параметры:

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

      Важно

      Список назначенных кластеру групп безопасности будет полностью перезаписан списком, переданным в параметре securityGroupIds.

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

    • assignPublicIp — доступность хостов-брокеров из интернета: true или false.

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

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

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

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

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

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

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    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": "<идентификатор_кластера>",
              "update_mask": {
                "paths": [
                  "security_group_ids",
                  "config_spec.assign_public_ip"
                ]
              },
              "security_group_ids": [
                <список_идентификаторов_групп_безопасности>
              ],
              "config_spec": {
                "assign_public_ip": "<публичный_доступ:_true_или_false>"
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.kafka.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      Укажите нужные параметры:

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

      Важно

      Список назначенных кластеру групп безопасности будет полностью перезаписан списком, переданным в параметре security_group_ids.

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

    • assign_public_ip — доступность хостов-брокеров из интернета: true или false.

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

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

Перезагрузите кластер, чтобы изменение настройки публичного доступа вступило в силу.

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

Изменить дополнительные настройки кластераИзменить дополнительные настройки кластера

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for Kafka.

  2. В строке с нужным кластером нажмите на значок , затем выберите Редактировать.

  3. Измените дополнительные настройки кластера:

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

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

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

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

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

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

      Важно

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

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

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

      Важно

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

  4. Нажмите кнопку Сохранить.

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

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

Чтобы изменить дополнительные настройки кластера:

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

    yc managed-kafka cluster update --help
    
  2. Выполните команду, передав список настроек, которые хотите изменить:

    yc managed-kafka cluster update <имя_или_идентификатор_кластера> \
       --maintenance-window type=<тип_технического_обслуживания>,`
                           `day=<день_недели>,`
                           `hour=<час_дня> \
       --datatransfer-access=<доступ_к_кластеру> \
       --deletion-protection \
       --schema-registry=<управление_схемами_данных>
    

Вы можете изменить следующие настройки:

  • --maintenance-window — настройки времени технического обслуживания (в т. ч. для выключенных кластеров), где type — тип технического обслуживания:

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

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

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

    Важно

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

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

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, см. в разделе Создание кластера.

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

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

    Где:

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

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      deletion_protection = <защита_кластера_от_удаления>
    }
    

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

  4. Чтобы включить управление схемами данных с помощью Managed Schema Registry, добавьте к описанию кластера поле config.schema_registry со значением true:

    resource "yandex_mdb_kafka_cluster" "<имя кластера>" {
      ...
      config {
        ...
        schema_registry  = <управление_схемами_данных>
      }
    }
    

    Важно

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

  5. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  6. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        -url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters/<идентификатор_кластера>' \
        --data '{
                  "updateMask": "configSpec.restApiConfig.emabled,configSpec.schemaRegistry,maintenanceWindow,deletionProtection",
                  "configSpec": {
                    "schemaRegistry": true,
                    "restApiConfig": {
                      "enabled": true
                    }
                  },
                  "maintenanceWindow": {
                    "anytime": {},
                    "weeklyMaintenanceWindow": {
                      "day": "<день_недели>",
                      "hour": "<час_дня_по_UTC>"
                    }
                  },
                  "deletionProtection": <защита_кластера_от_удаления:_true_или_false>
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      Укажите нужные параметры:

      • configSpec.schemaRegistry – если нужно включить настройки управления схемами данных с помощью Managed Schema Registry.

      • configSpec.restApiConfig.enabled — если нужно включить доступ к отправке запросов к REST API Apache Kafka®.

      • maintenanceWindow — если нужно изменить настройки времени технического обслуживания (в т. ч. для выключенных кластеров).

      • deletionProtection — если нужно включить или выключить защиту кластера от непреднамеренного удаления.

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

    • configSpec.schemaRegistry – укажите true, чтобы управлять схемами данных с помощью Managed Schema Registry. Эту настройку невозможно изменить после включения.

    • configSpec.restApiConfig.enabled – для доступа к отправке запросов к REST API Apache Kafka® укажите true. Эту настройку невозможно изменить после включения.

    • maintenanceWindow — настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Выберите один из вариантов:

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

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

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

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

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

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

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

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

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    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": "<идентификатор_кластера>",
              "update_mask": {
                "paths": [
                  "maintenance_window",
                  "deletion_protection",
                  "config_spec.schema_registry",
                  "config_spec.rest_api_config.enabled"
                ]
              },
              "config_spec": {
                "schema_registry": true,
                "rest_api_config": {
                  "enabled": true
                }
              },
              "maintenance_window": {
                "anytime": {},
                "weekly_maintenance_window": {
                  "day": "<день_недели>",
                  "hour": "<час_дня_по_UTC>"
                }
              },
              "deletion_protection": <защита_кластера_от_удаления:_true_или_false>
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.kafka.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      Укажите нужные параметры:

      • config_spec.schema_registry – если нужно управлять схемами данных с помощью Managed Schema Registry.

      • config_spec.rest_api_config.enabled – если нужно включить доступ к отправке запросов к REST API Apache Kafka®.

      • maintenance_window — если нужно изменить настройки времени технического обслуживания (в т. ч. для выключенных кластеров).

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

    • schema_registry – укажите true, чтобы управлять схемами данных с помощью Managed Schema Registry. Эту настройку невозможно изменить после включения.

    • rest_api_config.enabled – для доступа к отправке запросов к REST API Apache Kafka® укажите true. Эту настройку невозможно изменить после включения.

    • maintenance_window — настройки времени технического обслуживания. Выберите один из вариантов:

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

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

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

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

Изменить настройки Apache Kafka®Изменить настройки Apache Kafka®

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for Kafka.

  2. В строке с нужным кластером нажмите на значок , затем выберите Редактировать.

  3. В блоке Настройки Kafka нажмите кнопку Настроить.

    Подробнее см. в разделе Настройки Apache Kafka®.

  4. Нажмите кнопку Сохранить.

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

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

Чтобы изменить настройки Apache Kafka®:

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

    yc managed-kafka cluster update --help
    
  2. Измените настройки Apache Kafka® в команде изменения кластера (в примере приведены не все настройки):

    yc managed-kafka cluster update <имя_или_идентификатор_кластера> \
       --compression-type <тип_сжатия> \
       --log-flush-interval-messages <количество_сообщений_в_логе> \
       --log-flush-interval-ms <максимальное_время_хранения_сообщений>
    

    Где:

    • --log-flush-interval-messages — количество сообщений в логе, необходимое для их сброса на диск.
    • --log-flush-interval-ms — максимальное время хранения сообщений в памяти перед сбросом на диск.

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

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for Apache Kafka® значения параметров в блоке kafka.kafka_config (в примере приведены не все настройки):

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      config {
        kafka {
          ...
          kafka_config {
            compression_type            = "<тип_сжатия>"
            log_flush_interval_messages = <максимальное_количество_сообщений_в_памяти>
            ...
          }
        }
      }
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        -url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters/<идентификатор_кластера>' \
        --data '{
                  "updateMask": "configSpec.kafka.kafkaConfig_2_8.<настройка_1_конфигурации_Apache Kafka®_версии_2.8>,...,configSpec.kafka.kafkaConfig_2_8.<настройка_N_конфигурации_Apache Kafka®_версии_2.8>,configSpec.kafka.kafkaConfig_3.<настройка_1_конфигурации_Apache Kafka®_версии_3.x>,...,configSpec.kafka.kafkaConfig_3.<настройка_N_конфигурации_Apache Kafka®_версии_3.x>",
                  "configSpec": {
                    "kafka": {
                      "kafkaConfig_2_8": {
                        "<настройка_1_конфигурации_Apache Kafka®_версии_2.8>": "<значение_настройки>",
                        "<настройка_2_конфигурации_Apache Kafka®_версии_2.8>": "<значение_настройки>",
                        ...,
                        "<настройка_N_конфигурации_Apache Kafka®_версии_2.8>": "<значение_настройки>"
                      },
                      "kafkaConfig_3": {
                        "<настройка_1_конфигурации_Apache Kafka®_версии_3.x>": "<значение_настройки>",
                        "<настройка_2_конфигурации_Apache Kafka®_версии_3.x>": "<значение_настройки>",
                        ...,
                        "<настройка_N_конфигурации_Apache Kafka®_версии_3.x>": "<значение_настройки>"
                      }
                    }
                  }
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      Укажите нужные параметры:

      • configSpec.kafka.kafkaConfig_2_8.<настройка_конфигурации_Apache Kafka®_версии_2.8> – если используете Apache Kafka® версии 2.8.
      • configSpec.kafka.kafkaConfig_3.<настройка_конфигурации_Apache Kafka®_версии_3.x> – если используете Apache Kafka® версий 3.x.
    • configSpec.kafka.kafkaConfig_2_8.<настройка_конфигурации_Apache Kafka®_версии_2.8 – укажите новое значение настройки, если используете Apache Kafka® версии 2.8.

    • configSpec.kafka.kafkaConfig_3.<настройка_конфигурации_Apache Kafka®_версии_3.x – укажите новое значение настройки, если используете Apache Kafka® версий 3.x.

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

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

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

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

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

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

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    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": "<идентификатор_кластера>",
              "update_mask": {
                "paths": [
                  "config_spec.kafka.kafka_config_2_8.<настройка_1_конфигурации_Apache Kafka®_версии_2.8>",
                  ...,
                  "config_spec.kafka.kafka_config_2_8.<настройка_N_конфигурации_Apache Kafka®_версии_2.8>",
                  "config_spec.kafka.kafka_config_3.<настройка_1_конфигурации_Apache Kafka®_версии_3.x>",
                  ...,
                  "config_spec.kafka.kafka_config_3.<настройка_N_конфигурации_Apache Kafka®_версии_3.x>"
                ]
              }
              "config_spec": {
                "kafka": {
                  "kafka_config_2_8": {
                    "<настройка_1_конфигурации_Apache Kafka®_версии_2.8>": "<значение_настройки>",
                    "<настройка_2_конфигурации_Apache Kafka®_версии_2.8>": "<значение_настройки>",
                    ...,
                    "<настройка_N_конфигурации_Apache Kafka®_версии_2.8>": "<значение_настройки>"
                  },
                  "kafka_config_3": {
                    "<настройка_1_конфигурации_Apache Kafka®_версии_3.x>": "<значение_настройки>",
                    "<настройка_2_конфигурации_Apache Kafka®_версии_3.x>": "<значение_настройки>",
                    ...,
                    "<настройка_N_конфигурации_Apache Kafka®_версии_3.x>": "<значение_настройки>"
                  }
                }
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.kafka.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      Укажите нужные параметры:

      • config_spec.kafka.kafka_config_2_8.<настройка_конфигурации_Apache Kafka®_версии_2.8> – если используете Apache Kafka® версии 2.8.
      • config_spec.kafka.kafka_config_3.<настройка_конфигурации_Apache Kafka®_версии_3.x> – если используете Apache Kafka® версий 3.x.
    • config_spec.kafka.kafka_config_2_8.<настройка_конфигурации_Apache Kafka®_версии_2.8 – укажите новое значение настройки, если используете Apache Kafka® версии 2.8.

    • config_spec.kafka.kafka_config_3.<настройка_конфигурации_Apache Kafka®_версии_3.x – укажите новое значение настройки, если используете Apache Kafka® версий 3.x.

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

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

Переместить кластер в другой каталогПереместить кластер в другой каталог

CLI
Terraform
REST API
gRPC API

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

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

Чтобы переместить кластер:

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

    yc managed-kafka cluster move --help
    
  2. Укажите каталог назначения в команде перемещения кластера:

    yc managed-kafka cluster move <имя_или_идентификатор_кластера> \
       --destination-folder-name=<имя_каталога_назначения>
    

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

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Измените или добавьте в описании кластера Managed Service for Apache Kafka® значение параметра folder_id:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      folder_id = "<идентификатор_каталога_назначения>"
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

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

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        -url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/clusters/<идентификатор_кластера>:move' \
        --data '{
                  "destinationFolderId": "<идентификатор_каталога>"
                }'
    

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

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

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

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

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

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

  3. Воспользуйтесь вызовом ClusterService/Move и выполните запрос, например, с помощью 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": "<идентификатор_кластера>",
              "destination_folder_id": "<идентификатор_каталога>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.kafka.v1.ClusterService.Move
    

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

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

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

Предыдущая
Создание кластера
Следующая
Обновление версии Apache Kafka®
Проект Яндекса
© 2025 ООО «Яндекс.Облако»