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

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

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

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

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

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

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

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

  • Обновление версии Apache Kafka®.
  • Управление дисковым пространством в кластере Managed Service for Apache Kafka®.
  • Миграция хостов кластера Apache Kafka® в другую зону доступности.
  • Веб-интерфейс Kafka UI для 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® с ZooKeeper. В кластерах с Apache Kafka® и протоколом KRaft нельзя изменить количество хостов-брокеров.
  • Кластер содержит не менее двух хостов-брокеров в разных зонах доступности.

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

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

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

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

Консоль управления
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

Консоль управления
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. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

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

Примечание

Класс хостов KRaft используется только в кластерах с версией Apache Kafka® 3.6 и выше.

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

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

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

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

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

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

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

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

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

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

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

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

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      kraft {
        resources {
          resource_preset_id = "<класс_хостов_KRaft>"
          ...
        }
      }
     }
    
  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.kraft.resources.resourcePresetId",
                    "configSpec": {
                      "kraft": {
                        "resources": {
                          "resourcePresetId": "<идентификатор_класса_хостов_KRaft>"
                        }
                      }
                    }
                  }'
      

      Где:

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

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

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

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

    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.kraft.resources.resource_preset_id"
                  ]
                },
                "config_spec": {
                  "kraft": {
                    "resources": {
                      "resource_preset_id": "<идентификатор_класса_хостов_KRaft>"
                    }
                  }
                }
              }' \
          mdb.api.cloud.yandex.net:443 \
          yandex.cloud.mdb.kafka.v1.ClusterService.Update
      

      Где:

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

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

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

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

    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": "<разрешить_публичный_доступ_к_кластеру>"
                  }
                }'
    

    Где:

    • 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": "<разрешить_публичный_доступ_к_кластеру>"
              }
            }' \
        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 невозможно отключить после ее включения.

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

  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=<разрешить_доступ_из_Data_Transfer> \
       --deletion-protection \
       --schema-registry=<управление_схемами_данных>
    

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

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

    • anytime (по умолчанию) — в любое время.
    • weekly — по расписанию. Для этого значения дополнительно укажите:
      • day — день недели: MON, TUE, WED, THU, FRI, SAT или SUN.
      • hour — час дня по UTC: от 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: MON, TUE, WED, THU, FRI, SAT или SUN.
    • hour — час дня по UTC для типа WEEKLY: от 1 до 24.
  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.enabled,configSpec.schemaRegistry,maintenanceWindow,deletionProtection",
                  "configSpec": {
                    "schemaRegistry": true,
                    "restApiConfig": {
                      "enabled": true
                    }
                  },
                  "maintenanceWindow": {
                    "anytime": {},
                    "weeklyMaintenanceWindow": {
                      "day": "<день_недели>",
                      "hour": "<час_дня_по_UTC>"
                    }
                  },
                  "deletionProtection": <защитить_кластер_от_удаления>
                }'
    

    Где:

    • 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 — включить (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": [
                  "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": <защитить_кластер_от_удаления>
            }' \
        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 ООО «Яндекс.Облако»