Skip to main content
На этой странице описаны изменения конфигурации, которые чаще всего вносят после установки коннектора. Сведения о каждом ключе, его значении по умолчанию и назначении приведены в справочнике по конфигурации; флаги командной строки — в справочнике CLI. Создание, масштабирование и удаление сервисов описаны в разделе управляемые сервисы.

Варианты конфигурирования

Для каждой цели установки коннектора предусмотрен свой вариант конфигурирования.
clicklink clctl init создает в рабочем каталоге файл наложения значений clicklink-values.yaml и развертывает чарт clicklink-connector с его использованием. Этот файл — постоянная запись о вашем развертывании: при повторном запуске init он сохраняется, если не указать --force, поэтому внесенные изменения не теряются при повторных запусках и восстановлении.
Для последующих операций, описанных на этой странице и в разделе операции, используется CLI helm. Встроенный клиент Helm есть только в init.
Отредактируйте файл наложения и примените изменения:
Этот блок повторно применяет отредактированные значения к уже установленной версии чарт, поэтому изменение конфигурации не приводит к незапланированному обновлению. Переход на новую версию — отдельный шаг; см. раздел операции. При mirror-установке с репозиторием чарт замените --repo на адрес своего mirror.При установке по прямой ссылке на чарт (oci://, URL, локальный архив или каталог; см. частные зеркала) репозиторий для разрешения недоступен. Повторите обновление, указав ту же ссылку, которая использовалась при установке:

Управляемый режим

В управляемом режиме запускается исполнитель, который применяет к вашему кластеру жизненный цикл сервисов, задаваемый ClickHouse Cloud. init включает его при регистрации и заполняет идентификационные данные кластера (см. включение управляемого режима). Ниже перечислены параметры, к которым вы, возможно, вернётесь позже. Чтобы изменить режим, выполните init повторно с --force и --managed либо --no-managed. Как и любому запуску init, ему нужна точка входа: --handoff, если вы сохранили bundle, либо --enroll с новым token (см. повторные запуски и восстановление). На ВМ --no-managed отключает исполнитель в конфигурации, но не останавливает и не выключает уже запущенный юнит systemd. Остановите его перед изменением конфигурации:
В Kubernetes задайте executor.enabled: false в values и примените изменения командой helm upgrade, чтобы удалить Развертывание исполнителя. В обоих случаях grant на кластере сохраняется до тех пор, пока вы его не удалите; см. остановка управляемого режима.
init формирует блок executor в clicklink-values.yaml на основе EKS cluster, на который указывает ваш kube context:
  • cluster.namespacePrefix используется всеми компонентами и представляет собой префикс, которым grant ограничивает исполнителя. Его изменение после установки означает повторную выдачу grant.
  • executor.cluster — это ровно один кластер: name, region, accountId и inCluster: true, благодаря чему исполнитель аутентифицируется как ServiceAccount пода. Остальные ключи передаются исполнителю без изменений в snake_case, например s3_storage.
  • executor.serviceAccount остаётся create: false: init выдаёт доступ уровня кластера ServiceAccount pcm-executor в пространстве имён коннектора, а chart привязывается именно к нему, а не создаёт новый, ни с чем не связанный.
  • executor.persistence обеспечивает работу /var/lib/clicklink, где исполнитель хранит свою базу данных команд и реестр сервисов; см. хранилище.
  • executor.platformBundleSecret задаёт имя Secret, содержащего утверждённое обновление платформы. Монтирование необязательно, поэтому под запускается ещё до первого утверждения; см. утверждение обновления платформы.
  • executor.ports.health обслуживает /livez и /metrics; отдельного порта для метрик нет ни у одного компонента.
Примените изменения с помощью helm upgrade, как показано в разделе поверхности конфигурации.

Добавление или изменение экземпляров ClickHouse

Сервисы, создаваемые исполнителем, регистрируются сами, поэтому в управляемом режиме добавлять их здесь не требуется. Этот раздел относится к отдельному развертыванию коннектора, работающему без исполнителя, которое наблюдает за ClickHouse, который вы запускаете самостоятельно. Укажите --ch-user-suffix при его init, если оба развертывания используют один и тот же экземпляр. Каждая запись в instances задает конечную точку ClickHouse с нативным протоколом, из которой читает коннектор: host, port, database, secure, cluster, а в Kubernetes — namespace. Параметры max_open_conns и max_idle_conns ограничивают пул соединений. Учетные данные никогда не хранятся в конфигурации: каждый компонент получает своего пользователя ClickHouse с правами только для чтения из bundle доступа, создаваемого на этапе подготовки.
Добавьте экземпляр в карту instances верхнего уровня в clicklink-values.yaml (те же поля, что и в реестре на ВМ). Добавьте его пространство имен в networkPolicy.clickhouseNamespaces; сопоставление выполняется по метке пространства имен kubernetes.io/metadata.name. Chart преобразует эту карту в ConfigMap clicklink-instance-registry, который читают оба демона. Это работает только при executor.enabled равном false; если исполнитель включен, рендеринг завершается ошибкой, поскольку этот ConfigMap принадлежит исполнителю.
Настройте доступ только для чтения для каждого компонента с рабочей станции. --apply-ch-grants применяет сгенерированные привилегии ClickHouse внутри пода через kubectl exec; без этого параметра команда создает только ресурсы Kubernetes и оставляет ch-grants.sql на диске для последующего применения. Если у пользователя admin задан пароль, добавьте --ch-admin-password-stdin и передайте пароль через стандартный ввод.
Для экземпляра, управляемого оператором, без SQL-совместимого пользователя admin замените --apply-ch-grants на --ch-user-via cr (флаги выбора пода сохраняются); см. справочник CLI. Затем добавьте создаваемую каждой командой пару Secret и ServiceAccount в соответствующую карту accessBundles и выполните указанную выше команду helm upgrade:
Команды access provision с параметром --force также выполняют ротацию учетных данных ClickHouse для экземпляра. См. раздел операции.

Список разрешённых операторов

Доступ к сеансам, управляемым шлюзом, ограничен списком разрешённых адресов электронной почты операторов. Каждый запрос к шлюзу сеансов должен содержать краткоживущий OIDC ID-токен с подтверждённым адресом электронной почты из этого списка. Если список разрешённых пуст, шлюз закрыт. На виртуальной машине пользователь root на хосте также может управлять сеансами напрямую через локальный файл сеансов; список разрешённых действует только для доступа через шлюз. Полную модель доверия см. в разделе сеансы поддержки.
Список разрешённых хранится в оверлее, и чарт преобразует его в ConfigMap. Чтобы изменить его, отредактируйте список и выполните helm upgrade:

Сетевая политика и исходящий трафик

В Kubernetes chart поставляется с NetworkPolicy, которая по умолчанию запрещает весь трафик, и со списком разрешённых для исходящего трафика. Объекты NetworkPolicy действуют только в том случае, если ваш CNI их применяет. При таком CNI доступны только кластерный DNS и пространства имен сервиса ClickHouse — до тех пор, пока не заполнены оба списка CIDR. До этого момента у коннектора нет исходящего доступа ни к вашей конечной точке коннектора, ни к API-серверу Kubernetes. init включает политику только тогда, когда ему известны CIDR, стоящие за вашей конечной точкой коннектора.
Два списка CIDR берутся из разных источников:
  • allowEgressCIDRs задаёте вы: это диапазоны, стоящие за вашей конечной точкой коннектора, которые передаются при установке через --egress-cidrs или вводятся в ответ на промпт. Они нужны каждому компоненту, чтобы достучаться до вашей конечной точки коннектора. В управляемом режиме, когда чарты платформы размещены в Amazon ECR, добавьте диапазоны ECR и STS для вашего region (или диапазон вашего mirror). Без них загрузка чартов исполнителем будет завершаться ошибкой из-за policy.
  • apiserverCIDRs в управляемом режиме определяется командой init на основе VPC вашего EKS cluster (eks:DescribeCluster и ec2:DescribeVpcs). Каждый компонент отправляет запросы токенов Kubernetes, а исполнитель управляет сервисами через API, поэтому при CNI с принудительным применением правил все они блокируются, пока значение не задано. Если lookup не удаётся, init выводит предупреждение и оставляет список пустым, чтобы вы заполнили его CIDR-блоками своего VPC.
Пространства имен сервисов выбираются двумя способами. Пространства имен, создаваемые исполнителем, получают метку clicklink.clickhouse.com/managed-by: executor, и policy допускает их именно по этой метке, поэтому при установке в управляемом режиме параметр clickhouseNamespaces можно оставить пустым. Перечислять по имени нужно только те пространства имен, которые созданы вне исполнителя — для ClickHouse, который вы разворачиваете самостоятельно. Включение policy позже. Если при установке вы пропустили CIDR для конечной точки, init подготовил конфигурацию с enabled: false и allowEgressCIDRs: [] и вывел шаг, который нужно выполнить для её завершения. Когда CIDR станут известны, задайте enabled: true и allowEgressCIDRs в clicklink-values.yaml, убедитесь, что apiserverCIDRs содержит диапазоны вашего VPC, и выполните helm upgrade, как показано в разделе конфигурационные поверхности. Когда включён шлюз сеанса, важно ещё одно правило исходящего трафика: clctl.gateway.jwksEgressCIDRs. Средство диагностики запрашивает JWKS вашего провайдера идентификации, чтобы валидировать токены операторов, поэтому при политике запрета по умолчанию пустой список блокирует любую проверку токенов:
В примере используется диапазон private.googleapis.com, который охватывает провайдер идентификации Google, доступный через Private Google Access. Для любого другого провайдера идентификации укажите его диапазон либо CIDR egress-прокси, стоящего перед ним. Остаются два ключа входящего трафика: metricsScrapeSelector ограничивает входящий трафик сбора метрик одним пространством имен Prometheus по метке, а kubeletProbeCIDRs явным образом разрешает проверки состояния кубелета при строгой политике запрета по умолчанию. Полный список ключей см. в справочнике по конфигурации.

Шаблоны маскирования

Средство диагностики маскирует свой вывод, прежде чем тот покинет ваш периметр. Встроенные шаблоны охватывают ipv4, ipv6, bearer-token, aws-access-key, email, jwt, ssh-private-key и connection-string-credentials. Добавьте собственные шаблоны в YAML-файл. Они применяются первыми в порядке, указанном в файле, затем применяются встроенные; запись, использующая name встроенного шаблона, заменяет его. Для каждого шаблона задаются name (обязательный, уникальный), regex (обязательный, синтаксис Go RE2), replace (по умолчанию [REDACTED], поддерживает ссылки на захваченные группы $1) и case_insensitive (по умолчанию false):
На виртуальной машине файл находится по пути /etc/clicklink/redaction-patterns.yaml. Установщик заполняет его начальным набором активных шаблонов (ключи API сторонних сервисов, секретные ключи AWS и т. д.). Сокращайте или расширяйте этот набор; установщик сохраняет вашу версию при обновлениях. В Kubernetes поместите YAML в ConfigMap с ключом redaction-patterns.yaml и задайте его имя в troubleshooter.redaction.patternsConfigMap; чарт монтирует его по тому же пути.
Средство диагностики не запустится, если файл шаблонов существует, но некорректен, и запишет в журнал проблемную запись. Если файл задан, но отсутствует, в журнал записывается только предупреждение и используются встроенные шаблоны. clicklink clctl preflight проверяет файл, поэтому запустите его перед перезапуском демона.

Частное зеркало и конечные точки внутри периметра

В опубликованном чарт для image.repository заранее указан публичный мультиархитектурный образ коннектора, подписанный cosign, поэтому для обычной установки не нужно задавать значения image. Чтобы просмотреть опубликованные значения по умолчанию:
Чтобы использовать собственный registry для Pull, переопределите repository в оверлее:
Чтобы установить сам чарт из частного зеркала, init принимает --chart как имя чарт из --chart-repo либо как прямую ссылку oci://, URL, локальный архив или каталог. По умолчанию --chart-version соответствует версии самого CLI, поэтому бинарный файл и чарт обновляются вместе.
Если конечная точка вашего коннектора находится за private CA в пределах вашего периметра, передайте --api-private-ca в init. Он задаст api.tls.caFile: /etc/clicklink/secrets/mtls/ca.crt, и коннектор будет проверять конечную точку по системным корневым сертификатам вместе с цепочкой CA из вашего пакета регистрации. На виртуальной машине эквивалентом является api.tls.ca_file в /etc/clicklink/config.yaml: init устанавливает цепочку сертификатов из пакета в /etc/clicklink/tls/ca.crt, и коннектор таким же образом добавляет её к системным корневым сертификатам. Инструкции по регистрации и подписанию сертификатов в полностью изолированной от интернета среде см. в разделе онбординг.

Хранилище

Два компонента хранят состояние в PersistentVolumeClaim. Том средства диагностики содержит состояние сеанса и журнал аудита:
Том исполнителя содержит его базу данных команд и реестр управляемых им сервисов:
init задаёт для обоих параметров storageClass выбранный вами класс. Пустое значение storageClass означает использование класса хранилища по умолчанию для кластера; если в кластере класс по умолчанию не задан, init потребует указать его в промпте или через --storage-class. Claim исполнителя помечен аннотацией helm.sh/resource-policy: keep, поэтому helm uninstall оставляет его на месте; см. uninstall.
Последнее изменение 7 октября 2026 г.