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, записанным коннектором в журнал при создании сертификата; команда закрепляет полученный сертификат, только если он совпадает. Если не указывать этот флаг, отображается представленный отпечаток без закрепления.
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
Применяет сформированный общекластерный bundlegrant: домашнее Пространство имен 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-контексте, при необходимости создает identitypcm-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 используют общий набор флагов для выбора способа подключения к целевой ВМ: