Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Router
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Managed Service for YDB
    • SpeechKit
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • Container Registry
    • Managed Service for Prometheus®
    • Message Queue
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Cloud Apps
    • Yandex AI Studio
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Yandex Cloud Video
    • Stackland
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • DataSphere
    • Vision OCR
    • Translate
    • SmartCaptcha
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Managed Service for GitLab
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Serverless Containers
    • Cloud Notification Service
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for ClickHouse®
KZ
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Изменение настроек кластера
      • Техническое обслуживание
      • Получение патч-версии ClickHouse®
      • Обновление версии ClickHouse®
      • Остановка и запуск кластера
        • Управление хостами ClickHouse®
        • Управление хостами ZooKeeper
        • Управление хостами ClickHouse® Keeper
        • Изменение сервиса координации со встроенного ClickHouse® Keeper на ClickHouse® Keeper на отдельных хостах
        • Изменение сервиса координации c ZooKeeper на ClickHouse® Keeper
        • Миграция хостов в другую зону доступности
      • Управление резервными копиями
      • Управление доступом к кластеру
      • Удаление кластера
  • Управление доступом
  • Инспекции и рекомендации
  • Правила тарификации
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы
  1. Пошаговые инструкции
  2. Кластеры
  3. Управление хостами
  4. Изменение сервиса координации c ZooKeeper на ClickHouse® Keeper

Изменение сервиса координации с ZooKeeper на ClickHouse® Keeper на отдельных хостах

Статья создана
Yandex Cloud
Улучшена
Обновлена 12 ноября 2026 г.
Открыть в Markdown

Вы можете перейти с сервиса координации ZooKeeper на ClickHouse® Keeper на отдельных хостах. Обратный переход с ClickHouse® Keeper на ZooKeeper не поддерживается.

Важно

  • На время выполнения операции кластер будет работать в режиме read-only.

  • Хосты ClickHouse® Keeper учитываются в расчете использованной квоты ресурсов в облаке и в расчете стоимости кластера.

CLI
Terraform
REST API
gRPC API

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

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

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

Чтобы изменить сервис координации с ZooKeeper на ClickHouse® Keeper:

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

    yc managed-clickhouse cluster migrate-to-keeper --help
    
  2. Измените сервис координации:

    yc managed-clickhouse cluster migrate-to-keeper <имя_или_идентификатор_кластера> \
       --resource-preset <класс_хоста> \
       --disk-type <тип_диска> \
       --disk-size <размер_хранилища_ГБ> \
       --host zone-id=<зона_доступности>,`
             `subnet-id=<идентификатор_подсети> \
       --allow-degradation-to-read-only
    

    Где:

    • <имя_или_идентификатор_кластера> — имя или идентификатор кластера, которые можно получить со списком кластеров в каталоге.

    • --resource-preset — класс хоста.

    • --disk-type — тип диска.

    • --disk-size — размер хранилища в гигабайтах.

    • --host — настройки хоста. Параметр задается для каждого хоста отдельно и имеет следующую структуру:

      • zone-id — зона доступности.
      • subnet-id — идентификатор подсети.
    • --allow-degradation-to-read-only — переход кластера в режим read-only на время изменения сервиса координации. Обязательный параметр.

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

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

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

Чтобы изменить сервис координации с ZooKeeper на ClickHouse® Keeper:

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

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

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

    • Добавьте параметр allow_degradation_to_read_only = true, чтобы разрешить переход кластера в режим read-only на время изменения сервиса координации. Иначе операция не будет выполнена.
    • Замените хосты ZooKeeper на хосты ClickHouse® Keeper.
    • Измените конфигурацию хостов в блоке zookeeper.resources.

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

    resource "yandex_mdb_clickhouse_cluster_v2" "<локальное_имя_кластера>" {
      ...
    
      allow_degradation_to_read_only = true
    
      zookeeper = {
        resources = {
          resource_preset_id = "<класс_хоста>"
          disk_type_id       = "<тип_диска>"
          disk_size          = <размер_хранилища_ГБ>
        }
      }
    
      hosts = {
        ...
        <имя_хоста_1> = {
          type      = "KEEPER"
          zone      = "kz1-a"
          subnet_id = yandex_vpc_subnet.<имя_подсети_в_зоне_kz1-a>.id
        }
    
        <имя_хоста_2> = {
          type      = "KEEPER"
          zone      = "kz1-b"
          subnet_id = yandex_vpc_subnet.<имя_подсети_в_зоне_kz1-b>.id
        }
    
        <имя_хоста_3> = {
          type      = "KEEPER"
          zone      = "kz1-d"
          subnet_id = yandex_vpc_subnet.<имя_подсети_в_зоне_kz1-d>.id
        }
      }
    }
    

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

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

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

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

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:

  • создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
  • изменение — 90 минут;
  • удаление — 30 минут.

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

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

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

resource "yandex_mdb_clickhouse_cluster_v2" "<имя_кластера>" {
  ...
  timeouts = {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Чтобы изменить сервис координации с ZooKeeper на ClickHouse® Keeper:

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

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

    1. Создайте файл body.json и добавьте в него следующее содержимое:

      {
        "resources": {
          "resourcePresetId": "<класс_хоста>",
          "diskSize": "<размер_хранилища_в_байтах>",
          "diskTypeId": "<тип_диска>"
        },
        "hostSpecs": [
          {
            "type": "KEEPER",
            "zoneId": "<зона_доступности>",
            "subnetId": "<идентификатор_подсети>"
          }
        ],
        "allowDegradationToReadOnly": true
      }
      

      Где:

      • resources — конфигурация хостов:

        • resourcePresetId — класс хоста. Список доступных классов хостов можно получить с помощью метода ResourcePreset.list.
        • diskSize — размер хранилища в байтах.
        • diskTypeId — тип диска.
      • hostSpecs — настройки хостов в виде массива элементов. Каждый элемент соответствует отдельному хосту и имеет следующую структуру:

        • type — тип хоста: KEEPER.

        • zoneId — зона доступности.

        • subnetId — идентификатор подсети.

      • allowDegradationToReadOnly — переход кластера в режим read-only на время изменения сервиса координации: true. Обязательный параметр.

    2. Выполните запрос:

      curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>:migrateToKeeper' \
        --data '@body.json'
      

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

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

Чтобы изменить сервис координации с ZooKeeper на ClickHouse® Keeper:

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

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

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

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

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

    1. Создайте файл body.json и добавьте в него следующее содержимое:

      {
        "cluster_id": "<идентификатор_кластера>",
        "resources": {
          "resource_preset_id": "<класс_хоста>",
          "disk_size": "<размер_хранилища_в_байтах>",
          "disk_type_id": "<тип_диска>"
        },
        "host_specs": [
          {
            "type": "KEEPER",
            "zone_id": "<зона_доступности>",
            "subnet_id": "<идентификатор_подсети>"
          }
        ],
        "allow_degradation_to_read_only": true
      }
      

      Где:

      • cluster_id — идентификатор кластера, который можно получить со списком кластеров в каталоге.

      • resources — конфигурация хостов:

        • resource_preset_id — класс хоста. Список доступных классов хостов с их идентификаторами можно запросить с помощью метода ResourcePresetService.List.
        • disk_size — размер хранилища в байтах.
        • disk_type_id — тип диска.
      • host_specs — настройки хостов в виде массива элементов. Каждый элемент соответствует отдельному хосту и имеет следующую структуру:

        • type — тип хоста: KEEPER.

        • zone_id — зона доступности.

        • subnet_id — идентификатор подсети.

      • allow_degradation_to_read_only — переход кластера в режим read-only на время изменения сервиса координации: true. Обязательный параметр.

    2. Выполните запрос:

      grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.ClusterService.MigrateToKeeper \
        < body.json
      
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.

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

Предыдущая
Изменение сервиса координации со встроенного ClickHouse® Keeper на ClickHouse® Keeper на отдельных хостах
Следующая
Миграция хостов в другую зону доступности
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»