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

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

  • Перед обновлением версии
  • Обновить кластер
  • Примеры
  1. Пошаговые инструкции
  2. Кластеры
  3. Обновление версии Apache Kafka®

Обновление версии Apache Kafka®

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

Примечание

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

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

Рекомендуется обновлять версию Apache Kafka® поэтапно, без пропуска версий. Например, обновление версии с 3.1 до 3.5 выполняется в такой последовательности: 3.1 → 3.2 → 3.3 → 3.4 → 3.5.

Об обновлениях в рамках одной версии и обслуживании хостов см. в разделе Техническое обслуживание.

Перед обновлением версииПеред обновлением версии

Убедитесь, что это не нарушит работу ваших приложений — изучите историю изменений Apache Kafka®.

Обновить кластерОбновить кластер

Внимание

После обновления версии Apache Kafka® вернуть кластер к предыдущей версии невозможно.

Во время обновления топики могут быть недоступны, если их фактор репликации равен единице.

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

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

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

  1. Получите список ваших кластеров Managed Service for Apache Kafka®:

    yc managed-kafka cluster list
    
  2. Получите информацию о нужном кластере и проверьте версию в свойстве config.version:

    yc managed-kafka cluster get <имя_или_идентификатор_кластера>
    
  3. Запустите обновление Apache Kafka®:

    yc managed-kafka cluster update <имя_или_идентификатор_кластера> \
       --version=<номер_новой_версии>
    
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

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

  2. Добавьте в блок config нужного кластера Managed Service for Apache Kafka® поле version (версия Apache Kafka®) или измените его значение, если оно уже существует:

    resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
      ...
      config {
        version = "<версия>"
      }
    }
    
  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.version",
                  "configSpec": {
                    "version": "<версия>"
                  }
                }'
    

    Где:

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

      В данном случае указан только один параметр: configSpec.version.

    • configSpec.version — версия Apache Kafka®, до которой нужно обновиться: 3.5.

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

  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.version"
                ]
              },
              "config_spec": {
                "version": "<версия>"
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.kafka.v1.ClusterService.Update
    

    Где:

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

      В данном случае указан только один параметр: config_spec.version.

    • config_spec.version — версия Apache Kafka®, до которой нужно обновиться: 3.5.

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

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

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

Допустим, нужно обновить кластер с версии 2.8 до версии 3.0.

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

    yc managed-kafka cluster list
    
    +----------------------+---------------+---------------------+--------+---------+
    |          ID          |     NAME      |     CREATED AT      | HEALTH | STATUS  |
    +----------------------+---------------+---------------------+--------+---------+
    | c9q8p8j2gaih******** |    kafka35    | 2021-10-23 12:44:17 | ALIVE  | RUNNING |
    +----------------------+---------------+---------------------+--------+---------+
    
  2. Чтобы получить информацию о кластере с именем kafka35, выполните команду:

    yc managed-kafka cluster get kafka35
    
      id: c9q8p8j2gaih********
      ...
      config:
        version: "2.8"
        ...
    
  3. Для обновления кластера kafka35 до версии 3.0 выполните команду:

    yc managed-kafka cluster update kafka35 --version=3.0
    

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

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