Изменение настроек кластера Apache Kafka®
- Изменить имя и описание кластера
- Изменить класс и количество хостов-брокеров
- Изменить класс хостов 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®.
Изменить имя и описание кластера
- Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. - В строке с нужным кластером нажмите на значок
, затем выберите Редактировать. - В блоке Базовые параметры задайте новые имя и описание кластера.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить имя и описание кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-kafka cluster update --help -
Укажите новые имя и описание в команде изменения кластера:
yc managed-kafka cluster update <имя_или_идентификатор_кластера> \ --new-name <новое_имя_кластера> \ --description <новое_описание_кластера>Чтобы узнать имя или идентификатор кластера, получите список кластеров в каталоге.
Внимание
Не изменяйте имя кластера с помощью Terraform. Это приведет к удалению существующего кластера и созданию нового.
Чтобы изменить описание кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for Apache Kafka® значение параметра
description:resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { name = "<имя_кластера>" description = "<новое_описание_кластера>" ... } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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— новое описание кластера.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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— новое описание кластера.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить класс и количество хостов-брокеров
Увеличить количество хостов-брокеров можно, если выполняются условия:
- В кластере используется Apache Kafka® с ZooKeeper. В кластерах с Apache Kafka® и протоколом KRaft нельзя изменить количество хостов-брокеров.
- Кластер содержит не менее двух хостов-брокеров в разных зонах доступности.
Уменьшить количество хостов-брокеров нельзя. Для выполнения условий высокой доступности кластера необходимо минимум три хоста-брокера.
При смене класса хостов-брокеров:
- Кластер из одного хоста-брокера будет недоступен несколько минут, соединения с топиками будут прерваны.
- В кластере из нескольких хостов-брокеров каждый хост по очереди будет остановлен и обновлен, остановленный хост будет недоступен несколько минут.
Рекомендуется изменять класс хостов-брокеров только во время отсутствия рабочей нагрузки на кластер.
Чтобы изменить класс и количество хостов:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. -
В строке с нужным кластером нажмите на значок
, затем выберите Редактировать. -
Измените требуемые настройки:
- Чтобы изменить класс хостов-брокеров, выберите новый Класс хоста.
- Измените Количество брокеров в зоне.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить класс и количество хостов:
-
Получите информацию о кластере:
yc managed-kafka cluster list yc managed-kafka cluster get <имя_или_идентификатор_кластера> -
Посмотрите описание команды CLI для изменения кластера:
yc managed-kafka cluster update --help -
Чтобы увеличить количество хостов-брокеров, выполните команду:
yc managed-kafka cluster update <имя_или_идентификатор_кластера> --brokers-count <число> -
Чтобы изменить класс хоста-брокера, выполните команду:
yc managed-kafka cluster update <имя_или_идентификатор_кластера> --resource-preset <класс_хоста>
Чтобы узнать имя или идентификатор кластера, получите список кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for Apache Kafka® значение параметра
brokers_count, чтобы увеличить количество хостов-брокеров:resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { config { brokers_count = <количество_хостов-брокеров> ... } ... } -
Измените в описании кластера Managed Service for Apache Kafka® значение параметра
resource_preset_idв блокеkafka.resources, чтобы задать новый класс хостов-брокеров:resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { ... kafka { resources { resource_preset_id = "<класс_хостов-брокеров>" ... } } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Запросите список доступных классов хостов:
-
Воспользуйтесь методом ResourcePreset.list и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/resourcePresets' -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Измените класс и количество хостов-брокеров на нужные:
-
Воспользуйтесь методом 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— если нужно изменить количество хостов-брокеров.
Идентификатор кластера можно запросить со списком кластеров в каталоге. Список доступных классов хостов с их идентификаторами был получен ранее.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Запросите список доступных классов хостов:
-
Воспользуйтесь вызовом 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 -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Измените класс хостов на нужный:
-
Воспользуйтесь вызовом 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— если нужно изменить количество хостов-брокеров.
Идентификатор кластера можно запросить со списком кластеров в каталоге. Список доступных классов хостов с их идентификаторами был получен ранее.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Изменить класс хостов ZooKeeper
- Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. - В строке с нужным кластером нажмите на значок
, затем выберите Редактировать. - Выберите новый Класс хоста ZooKeeper.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить класс хостов ZooKeeper:
-
Получите информацию о кластере:
yc managed-kafka cluster list yc managed-kafka cluster get <имя_или_идентификатор_кластера> -
Посмотрите описание команды CLI для изменения кластера:
yc managed-kafka cluster update --help -
Чтобы изменить класс хостов ZooKeeper, выполните команду:
yc managed-kafka cluster update <имя_или_идентификатор_кластера> \ --zookeeper-resource-preset <класс_хоста>
Чтобы узнать имя или идентификатор кластера, получите список кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for Apache Kafka® значение параметра
resource_preset_idв блокеzookeeper.resources, чтобы задать новый класс хостов ZooKeeper:resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { ... zookeeper { resources { resource_preset_id = "<класс_хостов_ZooKeeper>" ... } } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Запросите список доступных классов хостов:
-
Воспользуйтесь методом ResourcePreset.list и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/resourcePresets' -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Измените класс хостов на нужный:
-
Воспользуйтесь методом 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.
Идентификатор кластера можно запросить со списком кластеров в каталоге. Список доступных классов хостов с их идентификаторами был получен ранее.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Запросите список доступных классов хостов:
-
Воспользуйтесь вызовом 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 -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Измените класс хостов на нужный:
-
Воспользуйтесь вызовом 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.
Идентификатор кластера можно запросить со списком кластеров в каталоге. Список доступных классов хостов с их идентификаторами был получен ранее.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Изменить класс хостов KRaft
Примечание
Класс хостов KRaft используется только в кластерах с версией Apache Kafka® 3.6 и выше.
- Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. - В строке с нужным кластером нажмите на значок
, затем выберите Редактировать. - Выберите новый Класс хоста KRaft.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить класс хостов KRaft:
-
Получите информацию о кластере:
yc managed-kafka cluster list yc managed-kafka cluster get <имя_или_идентификатор_кластера> -
Посмотрите описание команды CLI для изменения кластера:
yc managed-kafka cluster update --help -
Чтобы изменить класс хостов KRaft, выполните команду:
yc managed-kafka cluster update <имя_или_идентификатор_кластера> \ --controller-resource-preset <класс_хоста>
Чтобы узнать имя или идентификатор кластера, получите список кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for Apache Kafka® значение параметра
resource_preset_idв блокеkraft.resources, чтобы задать новый класс хостов KRaft:resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { ... kraft { resources { resource_preset_id = "<класс_хостов_KRaft>" ... } } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Запросите список доступных классов хостов:
-
Воспользуйтесь методом ResourcePreset.list и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-kafka/v1/resourcePresets' -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Измените класс хостов на нужный:
-
Воспользуйтесь методом 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.
Идентификатор кластера можно запросить со списком кластеров в каталоге. Список доступных классов хостов с их идентификаторами был получен ранее.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Запросите список доступных классов хостов:
-
Воспользуйтесь вызовом 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 -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Измените класс хостов на нужный:
-
Воспользуйтесь вызовом 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.
Идентификатор кластера можно запросить со списком кластеров в каталоге. Список доступных классов хостов с их идентификаторами был получен ранее.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Изменить настройки групп безопасности и публичного доступа
- Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. - В строке с нужным кластером нажмите на значок
, затем выберите Редактировать. - В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
- Установите или отключите публичный доступ к кластеру при помощи опции Публичный доступ.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить список групп безопасности для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-kafka cluster update --help -
Укажите нужные группы безопасности и настройку публичного доступа в команде изменения кластера:
yc managed-kafka cluster update <имя_или_идентификатор_кластера> \ --security-group-ids <список_групп_безопасности> \ --assign-public-ip=<разрешить_публичный_доступ_к_кластеру>Где:
--security-group-ids— список идентификаторов групп безопасности кластера.--assign-public-ip— публичный доступ к кластеру:trueилиfalse.
Чтобы узнать имя или идентификатор кластера, получите список кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
-
Измените значения параметров
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.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Перезагрузите кластер, чтобы изменение настройки публичного доступа вступило в силу.
Для подключения к кластеру может потребоваться дополнительная настройка групп безопасности.
Изменить дополнительные настройки кластера
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. -
В строке с нужным кластером нажмите на значок
, затем выберите Редактировать. -
Измените дополнительные настройки кластера:
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по 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.
-
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить дополнительные настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-kafka cluster update --help -
Выполните команду, передав список настроек, которые хотите изменить:
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 после его подключения.
Чтобы узнать имя или идентификатор кластера, получите список кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок
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.
-
Чтобы включить защиту кластера от непреднамеренного удаления пользователем вашего облака, добавьте к описанию кластера поле
deletion_protectionсо значениемtrue:resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { ... deletion_protection = <защитить_кластер_от_удаления> }Включенная защита кластера от удаления не помешает удалить пользователя или топик, а также подключиться вручную и удалить данные.
-
Чтобы включить управление схемами данных с помощью Managed Schema Registry, добавьте к описанию кластера поле
config.schema_registryсо значениемtrue:resource "yandex_mdb_kafka_cluster" "<имя кластера>" { ... config { ... schema_registry = <управление_схемами_данных> } }Важно
Невозможно отключить управление схемами данных с помощью Managed Schema Registry после его подключения.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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) защиту кластера от непреднамеренного удаления.Включенная защита кластера от удаления не помешает удалить пользователя или топик, а также подключиться вручную и удалить данные.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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) защиту кластера от непреднамеренного удаления.Включенная защита кластера от удаления не помешает удалить пользователя или топик, а также подключиться вручную и удалить данные.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки Apache Kafka®
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. -
В строке с нужным кластером нажмите на значок
, затем выберите Редактировать. -
В блоке Настройки Kafka нажмите кнопку Настроить.
Подробнее см. в разделе Настройки Apache Kafka®.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить настройки Apache Kafka®:
-
Посмотрите описание команды CLI для изменения настроек кластера:
yc managed-kafka cluster update --help -
Измените настройки 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— максимальное время хранения сообщений в памяти перед сбросом на диск.
Чтобы узнать имя или идентификатор кластера, получите список кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for Apache Kafka® значения параметров в блоке
kafka.kafka_config(в примере приведены не все настройки):resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { ... config { kafka { ... kafka_config { compression_type = "<тип_сжатия>" log_flush_interval_messages = <максимальное_количество_сообщений_в_памяти> ... } } } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Переместить кластер в другой каталог
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы переместить кластер:
-
Посмотрите описание команды CLI для перемещения кластера:
yc managed-kafka cluster move --help -
Укажите каталог назначения в команде перемещения кластера:
yc managed-kafka cluster move <имя_или_идентификатор_кластера> \ --destination-folder-name=<имя_каталога_назначения>Чтобы узнать имя или идентификатор кластера, получите список кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените или добавьте в описании кластера Managed Service for Apache Kafka® значение параметра
folder_id:resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { ... folder_id = "<идентификатор_каталога_назначения>" } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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": "<идентификатор_каталога>" }'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.