Skip to main content
На этой странице описан процесс от token регистрации до проверенного коннектора в управляемом режиме, в котором исполнитель применяет жизненный цикл сервиса, управляемый ClickHouse Cloud. Коннектор устанавливается на кластер Kubernetes (Helm) или ВМ Linux (systemd). Регистрация по токену — стандартный процесс. Если ваша среда не может напрямую обращаться к конечной точке вашего коннектора, см. раздел установки в изолированной от интернета среде и с зеркалированием. Чтобы наблюдать за ClickHouse, который вы запускаете самостоятельно, без исполнителя, передайте --no-managed.

Предварительные требования

Регистрация вашей среды

Перед регистрацией коннектора команда сопровождения аккаунта ClickHouse регистрирует вашу среду и включает управляемый режим для вашей организации. Передайте ей:
  • идентификатор вашего аккаунта AWS, регион и имя EKS-кластера
  • где работает коннектор — на Linux ВМ или в кластере
  • группу узлов для компонентов платформы
  • префикс пространств имен для сервисов (по умолчанию ns-)
  • каким образом ваш кластер загружает образы ClickHouse: через доступ к реестру, который ClickHouse Cloud настраивает для вашего аккаунта, или через ваш собственный mirror
После этого ClickHouse Cloud выдаёт конечную точку коннектора и одноразовый token регистрации. Token сам определяет вашу среду, поэтому при регистрации дополнительный ID не требуется.

Для любой установки

  • Коннектор v0.17.0 или новее. В более ранних релизах нет ни управляемого режима, ни команд platform, ни instances create. Установщик предоставляет последний релиз, если вы не передали --version.
  • Ваша конечная точка коннектора и token регистрации, выданные при регистрации.
  • Исходящий трафик (egress) по порту 443 на https://<subdomain>.<connector-domain> и https://<subdomain>.enroll.<connector-domain>, а также на releases.clicklink.clickhouse.com и Amazon ECR Public на время установки. В управляемом режиме исполнитель также обращается к Amazon ECR и STS, когда синхронизация платформы или создание ресурса загружает chart из ECR. Если какой-либо из этих адресов недоступен, см. установки в изолированной от интернета среде и с зеркалированием.
  • Кластер Amazon EKS для управляемого режима. В управляемом режиме init откажется работать на любом другом кластере и подскажет флаг --no-managed для установки без исполнителя.
  • Права администратора кластера для grant исполнителя. Grant создает ClusterRole, ClusterRoleBinding и ValidatingAdmissionPolicy, которые ограничивают исполнителя пространствами имен с вашим prefix. В Kubernetes эти права нужны тому kubeconfig, с которым вы запускаете init. На виртуальной машине — kubeconfig хоста; если у хоста таких прав нет, init выведет команду, которую следует выполнить с хоста, где они есть.
  • ClickHouse еще не установлен. Managed-установка начинается без сервисов; те, что создает исполнитель, регистрируются сами. В управляемом режиме init не регистрирует ClickHouse, который вы запускаете самостоятельно (в Kubernetes он отклоняет --instance и --instance-namespace). Чтобы наблюдать за таким кластером, установите отдельное развертывание коннектора с --no-managed. Параметр --ch-user-suffix позволяет двум развертываниям использовать один инстанс без конфликтов между пользователями коннектора. Такому развертыванию требуется доступный native listener: защищенный порт 9440 или plaintext 9000 (в Kubernetes определяется автоматически). Также нужен доступ ClickHouse admin для подготовки: пользователь default без пароля, пароль, переданный через --ch-admin-password-stdin или введенный по запросу, либо CR injection для инстансов, управляемых оператором.
  • cosign везде, где вы скачиваете артефакты релиза. Установщик всегда проверяет контрольную сумму SHA-256. Если cosign установлен, он также проверяет подпись релиза, а с CLICKLINK_REQUIRE_COSIGN=1 отказывается продолжать работу без cosign.

Для установки в Kubernetes (Helm)

  • kubeconfig, текущий контекст которого указывает на EKS кластер. Он должен позволять создавать и читать пространство имен коннектора, применять Secrets, создавать ServiceAccounts, Roles и RoleBindings, устанавливать chart, а также выдавать исполнителю доступ в рамках всего кластера.
  • Учётные данные AWS на рабочей станции (переменные окружения или профиль) с правами eks:DescribeCluster и ec2:DescribeVpcs. init использует их, чтобы прочитать CIDR-блоки VPC вашего кластера для NetworkPolicy. Если получить их не удаётся, выводится предупреждение, а заполнить этот список придётся вам самостоятельно.
  • CIDR, находящиеся за конечной точкой вашего коннектора, чтобы при установке включить NetworkPolicy chart’а с запретом по умолчанию. Без них init подготовит политику в отключённом виде и выведет инструкции, как включить её позже.
  • Класс хранилища по умолчанию либо класс, передаваемый через --storage-class; средство диагностики и исполнитель хранят состояние в PersistentVolumeClaims.
  • Доступ к загрузке образов: узлы кластера должны иметь возможность загрузить публичный образ из ECR или его mirror, размещённый у вас.

Для установки на Linux ВМ (systemd)

  • Любой Linux-хост с systemd, amd64 или arm64. Сборки для Linux работают в режиме FIPS.
  • Root-доступ для установщика и для init.
  • Свободные порты 8082, 8084 и 8086 для health и метрик, 9999 на loopback-интерфейсе для локального API исполнителя и 8443, если включен шлюз сеансов поддержки.
  • Административный доступ к API-серверу Kubernetes для подготовки и выдачи grant исполнителю: kubeconfig на хосте, --server и --ca-data либо промпты. Access bundles привязаны к Kubernetes ServiceAccount на обеих целевых системах. В управляемом режиме текущий context в kubeconfig должен указывать на EKS кластер, которым вы управляете; через любой другой context init выдавать grant откажется.
На ВМ --skip-provision — единственный способ обойти требование к API-серверу Kubernetes, и он работает только на стадии stage. Он пропускает подготовку пользователя ClickHouse, выдачу grant исполнителю, включение unit и проверку, поэтому сам по себе работающий коннектор не даёт. В Kubernetes он пропускает только подготовку пользователя ClickHouse. Grant исполнителю всё равно выдаётся, поскольку исполнитель из chart не может быть запланирован без выданного ServiceAccount.

Установка и регистрация

1

Получите конечную точку коннектора и токен регистрации

Оба значения предоставляет команда сопровождения аккаунта ClickHouse после регистрации вашей среды. Конечная точка имеет следующую форму:
Токен одноразовый, и срок его действия быстро истекает, поэтому выполняйте регистрацию сразу после получения. Обращайтесь с ним как с секретом: CLI считывает его из скрытого промпта или из первой строки stdin, но никогда — из аргументов командной строки, с диска или из журналов. Если срок действия токена истёк до регистрации, запросите новый у команды сопровождения аккаунта ClickHouse.
2

Установите и проверьте CLI

Одна команда устанавливает проверенный бинарный файл clicklink. Она определяет вашу платформу (macOS или Linux, amd64 или arm64), скачивает текущий релиз и проверяет контрольную сумму SHA-256. Если установлен cosign, дополнительно проверяется подпись релиза. Установка выполняется в /usr/local/bin, если этот каталог доступен для записи, иначе — в ~/.local/bin (при необходимости добавьте его в PATH; параметр --bin-dir позволяет задать другой каталог). Для установки в Kubernetes выполните команду на любой рабочей станции, имеющей доступ к кластеру через kubeconfig:
Для установки на ВМ выполните тот же скрипт на хосте с флагом --host. После проверенной загрузки он создаёт системного пользователя clicklink, каталоги /etc/clicklink, /var/lib/clicklink и /var/log/clicklink, а также юниты systemd для всех трёх компонентов. Файл /etc/clicklink/redaction-patterns.yaml заполняется начальным набором шаблонов (существующий файл сохраняется), поэтому следующий шаг — регистрация:
Обе формы принимают --version vX.Y.Z для закрепления конкретной версии. Повторный запуск любой из них безопасен: при установке на хост создаётся резервная копия предыдущего бинарного файла и сохраняется действующая конфигурация. Чтобы изучить скрипт перед запуском или самостоятельно скачать и проверить tar-архив релиза, см. ручную загрузку и проверку.
3

Зарегистрируйте и установите коннектор

init --enroll погашает ваш токен, получает подписанный клиентский сертификат и cluster-wide grant исполнителя, после чего устанавливает и проверяет connector.В терминале init задает вопрос Enable managed mode (ClickHouse manages the lifecycle of ClickHouse services in this cluster)?, где предварительно выбран вариант yes. Передайте --managed, чтобы пропустить этот промпт, или --no-managed — для установки только в режиме наблюдения, без исполнителя. При автоматической установке «с нуля» без обоих этих флагов управляемый режим останется выключенным (при повторном запуске с --force сохраняется состояние заменяемой конфигурации), поэтому в скриптах всегда передавайте --managed.
На рабочей машине, направив kube context на ваш EKS cluster, выполните:
Вставьте токен регистрации в скрытом промпте. init считывает имя кластера, region и AWS account из EKS ARN текущего контекста, поэтому данные о кластере вводить не нужно. Затем будут запрошены:
  • namespace для connector (по умолчанию clicklink)
  • StorageClass — только если в кластере не задан класс по умолчанию
  • CIDR-диапазоны за конечной точкой вашего connector — для allowlist egress в NetworkPolicy (оставьте пустым, чтобы подготовить policy в отключенном состоянии)
  • состояние support-session и, если оно включено, allowlist email-адресов операторов
init погашает токен и сохраняет пакет регистрации в файл handoff.yaml в рабочем каталоге. Он подготавливает наложение values для Helm — clicklink-values.yaml — с блоком executor и диапазонами VPC вашего кластера в качестве CIDR API-сервера для NetworkPolicy. Он создает namespace, применяет Secret clicklink-hmac, генерирует private key внутри Secret clicklink-mtls и записывает CSR. Он выдает исполнителю cluster-wide access в namespace connector и запрашивает у ClickHouse Cloud подпись клиентского сертификата. Он устанавливает Helm-релиз clicklink-connector при помощи встроенного Helm-клиента (бинарный файл helm не требуется) и проверяет работоспособность.Для автоматических запусков отвечайте на промпты флагами. Используйте сохраненный пакет как точку входа либо передайте токен регистрации в --enroll первой строкой stdin:
Чтобы отключить support-сеансы, передайте --no-gateway вместо --operators; эти два флага взаимно исключают друг друга.
Если проверка установки прошла успешно, init выводит Managed mode is on вместе с командой, которая подготавливает ваш первый сервис. Перейдите к разделу создание сервиса.
4

Проверьте успешное выполнение

init проверяет установку, прежде чем сообщить об успешном завершении. В Kubernetes он опрашивает конечную точку /livez каждого включенного компонента, в том числе исполнителя, на протяжении до пяти минут. Если включен шлюз сеансов поддержки, дополнительно требуется, чтобы шлюз отвечал кодом 401 на неаутентифицированные проверки. На ВМ он дожидается /livez каждого демона, после чего выполняет полный набор предварительных проверок. Этот набор проверяет конфигурацию, файлы, конфликты портов, сетевую доступность, подключение к ClickHouse, состояние всех трех юнитов systemd, доступ для каждого компонента, диск и шаблоны маскирования.Чтобы проверить вручную в Kubernetes:
Все поды коннектора должны находиться в состоянии Running и быть готовы к работе: scraper, средство диагностики и исполнитель.Чтобы проверить это вручную на ВМ:
Он завершается с кодом 0, если все проверки пройдены, и с кодом 2 при любом сбое, а также выводит список непройденных проверок.
5

Очистка

Пакет регистрации handoff.yaml (режим 0600, в рабочем каталоге) позволяет выполнять повторные запуски и восстановление в ходе установки без второго token. В нём хранится API secret коннектора в plaintext, поэтому удалите его сразу после того, как установка будет проверена:
Запущенный коннектор хранит собственную копию учётных данных; для обновлений и изменений конфигурации этот файл не нужен. Если позже вам снова понадобится init, запросите новый enrollment token у команды сопровождения аккаунта ClickHouse и выполните init --enroll --force.

Установки в изолированной от интернета среде и с зеркалированием

Два независимых элемента можно передать вне основного канала — в зависимости от того, к чему у вашей среды есть доступ. Исполнителю не требуется ничего дополнительно: он аутентифицируется тем же клиентским сертификатом и теми же API-credentials, что и остальные компоненты. Cluster-wide grant для него вы применяете через свой kubeconfig, а не по сети. Доставка пакета. Если вы предпочитаете не активировать token через интернет, команда сопровождения аккаунта ClickHouse может передать пакет регистрации напрямую во время онбординга; выполните clicklink clctl init --handoff <bundle-file> вместо --enroll. --handoff заменяет только активацию токена. Подписание сертификата по-прежнему выполняется через конечную точку регистрации, поэтому используйте только --handoff, если эта конечная точка доступна оттуда, где вы запускаете init. Подписание сертификата вне основного канала. Если конечная точка регистрации недоступна оттуда, где вы запускаете init, добавьте --no-auto-sign: init подготовит всё необходимое и запишет clicklink.csr. Отправьте CSR команде сопровождения аккаунта ClickHouse, затем завершите установку с помощью полученных сертификата и chain. На виртуальной машине выполните sudo clicklink clctl init --signed-cert client.crt --chain ca-chain.crt. В Kubernetes выполните clicklink clctl init --signed-cert client.crt --chain ca-chain.crt --target helm --target-namespace <connector-namespace> --values clicklink-values.yaml; подготовленный запуск выведет эквивалентную последовательность kubectl patch и helm upgrade --install. Передаётся только CSR; private key никогда не покидает вашу среду. В Kubernetes параметр --chart принимает имя chart, разрешаемое через --chart-repo, ссылку oci://, прямой URL либо локальный архив или каталог. Значение --chart-version по умолчанию соответствует версии самого CLI, поэтому бинарный файл и chart обновляются вместе. Чтобы раздавать images из собственного registry, создайте зеркало контейнерного image и задайте image.repository в values overlay. Если ваш путь egress предъявляет connector private CA, передайте --api-private-ca. После этого connector проверяет вашу конечную точку коннектора по системным корневым сертификатам и по CA chain из пакета регистрации. Установщик работает и через зеркало: разместите артефакты релиза и install.sh на своём зеркале и укажите на него через CLICKLINK_MIRROR_URL.

Ручная загрузка и проверка

Если вы не хотите передавать установщик через конвейер, скачайте и проверьте релиз самостоятельно. Этот блок определит вашу платформу и архитектуру; запускайте его без изменений на macOS или Linux, с архитектурой amd64 или arm64:
Перед распаковкой проверьте подпись с помощью cosign:
На рабочей станции (при установке в Kubernetes) распакуйте tar-архив и установите бинарный файл:
На ВМ распакуйте tar-архив и выполните sudo ./install.sh из распакованного каталога. Рядом с артефактами релиза будет выполнена та же установка на хост, что и с параметром --host.

Если что-то не удалось

Выполните ту же команду повторно. init идемпотентна: повторные запуски приводят к одному и тому же состоянию, сохраняют существующий config и подготовленные файлы и пропускают уже выполненную работу. Если шаг прерывается на середине, CLI выводит точные команды восстановления; их безопасно повторять. Если в регистрации отказано, значит token уже был использован, недействителен или истёк. Для уже использованного token повторите запуск с --handoff handoff.yaml — этот файл существует до шага очистки. В противном случае запросите новый token у команды сопровождения аккаунта ClickHouse. Если регистрация завершается ошибкой транспортного уровня, выполните ту же команду повторно. Отказ при повторном запуске означает, что первая попытка израсходовала token, и нужно запросить новый. Если в управляемом режиме отказано из-за того, что кластер не является EKS, выполните запуск повторно с --no-managed, чтобы установить без исполнителя. На ВМ также будет отклонён kubeconfig, текущий context которого указывает на другой кластер: переключите context командой kubectl config use-context и выполните запуск повторно. Если grant для исполнителя не удаётся применить:
  • На ВМ init не завершается ошибкой. Она подготавливает bundle и выводит предупреждение с точной командой, которую нужно выполнить из kubeconfig с правами администратора кластера. Проверяющий preflight сообщает состояние исполнителя как есть. Выполните выведенную команду, затем запустите ту же команду init повторно для проверки:
  • В Kubernetes отклонённый grant прерывает init до развёртывания chart, поскольку исполнитель привязывается к выданному ServiceAccount и без него не может запуститься. Подготовленные оверлей, Secrets и CSR сохраняются, а init выводит две команды, которые нужно выполнить с хоста с правами администратора кластера. Выполните их, а затем снова запустите ту же команду init, чтобы продолжить:
--force — это явный сброс состояния; для обычной повторной попытки он не нужен. Он перезаписывает сохранённую конфигурацию или values overlay, заново генерирует клиентский ключ и заменяет неистёкший клиентский сертификат (ответ 409 от конечной точки подписи означает, что сертификат уже существует). При этом сохраняются UUID кластера коннектора и его управляемый режим. Автоматические повторные запуски сохраняют этот режим, а в терминале промпт по умолчанию предлагает именно его — если только вы не передадите --managed или --no-managed. Используйте --force для ротации учётных данных или замены сертификата; полную модель повторных запусков и восстановления смотрите в разделе operations.
Последнее изменение 7 октября 2026 г.