Skip to main content
Коннектор поставляется в виде единого бинарного файла clicklink; команды запускаются через clicklink clctl. На этой странице описаны команды для установки и повседневной эксплуатации. Чтобы просмотреть полную справку, запустите любую команду с флагом --help. Флаги в поддеревьях troubleshoot, scraper, preflight, executor, instances create и platform, а также глобальные --endpoint и --cluster, также можно задавать через переменные окружения CLCTL_* (их имена указаны в справке для каждого флага) или в файле ~/.clicklink/clctl.yaml. Глобальный флаг -v выводит в журнал запросы к административному API, выполняемые командой; -vv дополнительно добавляет тела запросов. Команды instances и commands, а также executor teardown, обращаются к локальному API исполнителя. Его задают два глобальных флага: --endpoint <url> (по умолчанию http://127.0.0.1:9999, переменная окружения CLCTL_ENDPOINT) и --cluster <name> (переменная окружения CLCTL_CLUSTER), который указывает управляемый кластер, если он нужен команде. В Kubernetes сначала откройте kubectl port-forward к Развертыванию исполнителя; см. управляемые сервисы.

clicklink clctl init

Инициализирует коннектор с помощью токена регистрации, сохранённого пакета регистрации или подписанного сертификата, полученного вне основного канала. Один запуск подготавливает конфигурацию, настраивает доступ к ClickHouse, получает клиентский сертификат mTLS, выполняет развёртывание (Helm-чарт или модули systemd) и проверяет работоспособность. С флагом --managed он также включает исполнитель для обнаруженного EKS cluster и выдаёт исполнителю доступ в рамках всего кластера. Повторный запуск безопасен: init сохраняет конфигурацию и UUID кластера, атомарно перезаписывает учётные данные и повторно использует существующий клиентский ключ, если не указан --force. Полное описание процесса см. в разделе онбординг, а описание работы исполнителя — в разделе управляемые сервисы.

Точки входа

Требуется указать ровно одну точку входа.

Общие флаги

Флаги подписания (только для фазы 1)

Флаги только для Kubernetes

Действуют только с --target helm.

Флаги только для ВМ

Действуют только с --target systemd.

Конфликты флагов

  • --handoff, --enroll и --signed-cert взаимоисключающие; необходимо указать ровно один из них.
  • Флаги, предназначенные только для Kubernetes, не принимаются без --target helm; --server, --ca-data, --cluster-name и --no-instance не принимаются при --target helm (процесс Helm использует kubeconfig рабочей станции и определяет экземпляр внутри кластера).
  • --no-instance и --instance взаимоисключающие.
  • --managed и --no-managed взаимоисключающие, а --cluster-name не принимается вместе с --no-managed. При --target helm флаги --instance и --instance-namespace не принимаются вместе с --managed.
  • --no-auto-sign и --sign-endpoint взаимоисключающие; оба они, а также --api-private-ca, --managed, --no-managed и --cluster-name, не принимаются вместе с --signed-cert.
  • Для --platform-bundle требуются --target helm, --managed и --from-terraform; этот флаг не принимается вместе с --no-managed или --signed-cert. Четыре флага пулов не принимаются без --platform-bundle и отклоняются, если NodePools уже существуют.
  • --operators и --no-gateway взаимоисключающие.
  • При --skip-provision не принимаются --ch-pod, --ch-user-suffix, --server, --ca-data и --ch-admin-password-stdin (подготовка не выполняется).

clicklink clctl preflight

Запускает набор проверок коннектора, сгруппированных по категориям: config, files, network, clickhouse, systemd, access, disk, redaction. Каждая проверка возвращает один из статусов: pass, warn, fail или skip. Код выхода 0 означает, что все проверки успешно пройдены (предупреждения не блокируют выполнение); код выхода 2 означает, что как минимум одна проверка завершилась ошибкой. По умолчанию команда выполняется локально. При использовании --k8s-namespace она запускает бинарный файл в поде коннектора через kubectl exec, а отчет формирует локально (проверки systemd в подах всегда пропускаются). При использовании флагов удаленного канала вместо этого запускается установленный бинарный файл на удаленной ВМ. Флаги --k8s-* и флаги удаленного канала взаимоисключающие; выберите одну цель.

clicklink clctl troubleshoot session

Включает, отключает и проверяет сеанс поддержки — ограниченный по времени период, в течение которого troubleshooter принимает команды. Без активного сеанса демон отклоняет любую команду, даже если его WebSocket подключён. См. сеансы поддержки. Команды работают в одном из двух режимов:
  • Локальный файл (по умолчанию): считывают и записывают файл состояния сеанса на хосте, где запущен troubleshooter (по умолчанию /var/lib/clicklink/session.json).
  • Шлюз: при использовании --gateway-url получают ID-токен OIDC и вместо этого обращаются к шлюзу сеанса troubleshooter с вашей рабочей станции.

Общие флаги

включение сеанса

Включить сеанс не получится, если он уже активен: сначала отключите его или дождитесь истечения срока действия.

отключение сеанса

Немедленно деактивирует сеанс. Если активного сеанса нет, команда ничего не делает.

Статус сеанса

Показывает, активен ли сеанс, кто его включил и когда срок его действия истекает. --output (-o) задаёт формат вывода: table (по умолчанию) или json. В Kubernetes подключитесь к шлюзу с помощью проброса порта:

clicklink clctl troubleshoot gateway trust

На ВМ шлюз сеанса использует самоподписанный TLS-сертификат. Эта команда сохраняет SHA-256-отпечаток сертификата в ~/.clicklink/clctl.yaml, чтобы команды session могли его проверять; если закреплённый отпечаток перестаёт совпадать, подключение блокируется. Доверие устанавливается одним из двух способов вне канала:
  • С помощью флагов удалённого канала команда считывает сертификат с ВМ по уже аутентифицированному каналу и закрепляет его.
  • Без канала передайте --gateway-fingerprint со значением SHA-256, записанным коннектором в журнал при создании сертификата; команда закрепляет полученный сертификат, только если он совпадает. Если не указывать этот флаг, отображается представленный отпечаток без закрепления.
В Kubernetes закрепление не используется: предоставьте доступ к шлюзу через входной шлюз с сертификатом, выданным CA, или выполните проброс порта.

clicklink clctl troubleshoot audit tail

Выводит последние записи журнала аудита troubleshooter в формате JSON, по одной записи в строке для каждой команды, принятой или заблокированной демоном. Журнал открывается только для чтения. Образ среды выполнения коннектора не содержит оболочки, поэтому в Kubernetes эта команда является поддерживаемым средством чтения:

Настройка доступа

clicklink clctl scraper access provision и clicklink clctl troubleshoot access provision создают пакет доступа для каждого экземпляра компонента, а с --force выполняют его ротацию: пользователя ClickHouse только для чтения и его привилегии, а также ServiceAccount Kubernetes, RBAC и токен, используемые компонентом. init выполняет это встроенно при установке; автономные команды используются для повторного запуска и ротации учетных данных. Выполните ротацию учетных данных одного компонента для экземпляра:

clicklink clctl executor access

init --managed применяет cluster-wide grant исполнителя с вашими учётными данными. Если это невозможно, init выводит команды, которые нужно выполнить из kubeconfig с правами cluster admin: только access apply на ВМ (bundle уже подготовлен) либо access grant, а затем access apply в Kubernetes. См. онбординг.

executor access grant

Формирует bundle доступа исполнителя уровня кластера в каталоге <output-dir>/_cluster/: один ServiceAccount, РольКластера и ClusterRoleBinding, а также ValidatingAdmissionPolicy, ограничивающую ServiceAccount пространствами имен, вложенными в префикс пространства имен исполнителя. Проверьте сформированный RBAC перед его применением.

executor access apply

Применяет сформированный общекластерный bundle grant: домашнее Пространство имен ServiceAccount, сам ServiceAccount, РольКластера и ClusterRoleBinding, а также политику допуска, затем выпускает токен ServiceAccount и помещает его в bundle. Сервис при этом не регистрируется.

clicklink clctl executor prepare

Подготавливает на вашей стороне всё, что необходимо для создания managed service, за один идемпотентный запуск, который прерывается на первой же ошибке. Команда выбирает или проверяет имя сервиса и создаёт бакеты для данных и резервных копий, а также роль IAM (или проверяет роль, которую вы предоставили). На ВМ она также формирует и применяет пакет доступа исполнителя для пространства имён сервиса; в Kubernetes bundle не используется, поскольку исполнитель работает под ServiceAccount своего пода. Затем команда выпускает пароль пользователя default (показывается один раз) и записывает тело запроса на создание для instances create. См. managed services. На ВМ команда выполняется на хосте коннектора. При установке в Kubernetes — на рабочей станции, где есть AWS credentials и kube-контекст управляемого кластера. Такой рабочей станции также нужны копия конфигурации коннектора (--config), проброс порта к локальному API исполнителя и доступный для записи --output-dir.

clicklink clctl executor teardown

Удаляет то, что prepare создал для сервиса, удалённого в ClickHouse Cloud. А именно: роль IAM, записанное имя и запись исполнителя о сервисе; на ВМ — также РольКластера и ClusterRoleBinding сервиса, локальный пакет доступа и запись в registry. Исполнитель должен быть запущен, а сервис — находиться в состоянии terminated (или stale); выполнение отклоняется, пока в пространстве имён сервиса ещё есть ClickHouse cluster. Созданные prepare бакеты вместе с их данными и резервными копиями сохраняются, если вы не запросите удаление, а сохранённым бакетам присваивается тег clicklink:retained-from=<name>. Команда считывает все данные, прежде чем что-либо удалить. См. удалить сервис.

clicklink clctl instances

instances create

Отправляет подготовленный запрос на создание в ClickHouse Cloud через конечную точку вашего коннектора, используя собственные учётные данные коннектора. Создание включается для каждого окружения отдельно; см. создание сервиса. Выводит произносимое имя, присвоенное ClickHouse Cloud, state и подсказку watch:, в которой используется ваш Service name. Тело запроса на создание берётся либо из файла, записанного командой prepare, либо из четырёх флагов --deployed-name, --data-bucket, --backup-bucket и --irsa-role-arn, указанных вместе. Повторная попытка с теми же входными данными возвращает результат первого создания.

instances list

Выводит в формате JSON все сервисы, известные исполнителю. --cluster <name> выполняет фильтрацию по управляемому кластеру.

instances get

Выводит один сервис в формате JSON вместе с хранилищем, с которым он был создан. Параметр --name <name> обязателен, как и кластер: передайте --cluster, задайте CLCTL_CLUSTER или укажите его в ~/.clicklink/clctl.yaml. Три подкоманды ниже отправляют команды напрямую в локальный API исполнителя, минуя ClickHouse Cloud. Запускайте их только по просьбе команды сопровождения аккаунта ClickHouse. Каждой из них нужны --name <name> и кластер (--cluster, CLCTL_CLUSTER или ~/.clicklink/clctl.yaml), и каждая выводит команду в формате JSON. Передайте её id в commands get, чтобы отслеживать выполнение; у неуспешной команды поле result содержит описание ошибки.

instances scale

Задаёт количество реплик сервера для одного сервиса с помощью ScalingOverride. Параметр --server-replicas <n> обязателен и должен быть больше нуля. Исполнитель отображает статус команды как выполняющуюся в момент применения override и как завершённую, когда реплики готовы.

instances patch

Изменяет один сервис на месте. --create-nlb — единственный доступный patch; без него команда завершается с сообщением nothing to patch. Он создаёт внутренний NLB в виде объекта Kubernetes Service (только на AWS), чтобы scraper за пределами кластера мог обращаться к серверам. При следующей синхронизации исполнитель выполнит дозагрузку хоста scraper’а из load balancer.

instances delete

Удаляет один сервис из кластера. Останавливает сервис и дожидается упорядоченной остановки, выполняемой оператором. Затем удаляет рабочую нагрузку, пространство имен ns-<name> и артефакты scraper’а, дожидается исчезновения пространства имен и помечает сервис как terminated. Бакеты сервиса и роль IAM сохраняются; их удаляет команда executor teardown, используя ваши учетные данные. Повторный вызов уже завершенного удаления ничего не делает. Штатный способ — удалить сервис в ClickHouse Cloud; см. удалить сервис.

Команды clicklink clctl

commands list

Выводит команды, записанные исполнителем, в формате JSON, начиная с самых новых. У неудачно выполненной команды поле result содержит её ошибку; для синхронизации платформы, ожидающей вашего подтверждения, там указывается точная команда platform approve.

commands get

clicklink clctl commands get <id> выводит одну команду с её стадией и результатом.

clicklink clctl platform approve

Авторизует одно изменение платформы с использованием ваших собственных учетных данных кластера. Команда читает bundle, подготовленный исполнителем, вычисляет его хеш и рендерит каждый chart в нем ровно так же, как это сделает исполнитель. Она применяет половину с разрешениями в выбранном вами kube-контексте, при необходимости создает identity pcm-platform исполнителя и выпускает для него токен. Запросы к вашей конечной точке коннектора при этом не выполняются. Половина с разрешениями — это Namespaces, CustomResourceDefinitions, ServiceAccounts, РолиКластера и bindings, Roles и bindings, конфигурации webhook и admission, PriorityClasses и класс хранилища. Исполнитель затем применяет только половину с рабочими нагрузками и только пока этот токен действителен. См. обновления платформы. Для прямого доступа к registry ClickHouse выполняйте одобрение на EC2-ВМ коннектора: CLI использует ее instance profile, чтобы принять роль загрузки только для чтения, независимо от учетных данных вашего kubeconfig. Другие ECR-registry с chart используют окружающие учётные данные AWS. См. учетные данные registry.

clicklink clctl platform reset

Для тестовых кластеров без сервисов: удаляет релизы платформы в порядке, обратном порядку зависимостей, и удаляет bundle платформенных токенов исполнителя, чтобы первую установку можно было выполнить заново. Перед внесением каких-либо изменений выводит список кластеров ClickHouse в пространствах имён, принадлежащих этому коннектору, и прерывает работу, если такие кластеры найдены. CustomResourceDefinitions, RBAC и класс хранилища сохраняются. Перед следующей синхронизацией платформы снова выполните platform approve.

Флаги каналов удалённого доступа

preflight, gateway trust и access provision используют общий набор флагов для выбора способа подключения к целевой ВМ: