Обновление
Kubernetes
Для операций Kubernetes после первоначального развертывания используется CLI
helm, установленный на рабочей станции. Только init содержит встроенный клиент Helm, поэтому перед первым обновлением установите helm.init:
v (chart X.Y.Z соответствует тегу vX.Y.Z). Опубликованный chart уже указывает на публичный образ контейнера, поэтому при обычной установке и обновлении не нужно задавать значения image. Чтобы просмотреть значения chart по умолчанию, выполните helm show values clicklink-connector --repo https://releases.clicklink.clickhouse.com/charts. Исполнитель работает в одной реплике со стратегией Recreate, поэтому при обновлении он ненадолго отключается. О том, что происходит с командами в этот период, см. когда connector offline.
При установке по прямой ссылке на chart (oci://, URL или локальный архив либо каталог) отсутствует repository, по которому можно определить обновление. Вместо этого выполните helm upgrade clicklink-connector <same-chart-reference> повторно, указав новую версию. Повторный запуск init с более новой версией CLI также приведёт систему к нужному состоянию, но требует точки входа: --handoff, если вы сохранили bundle, или новый токен регистрации с --force после описанной в документации очистки. Приведённая выше команда helm upgrade — стандартный способ (см. повторные запуски и восстановление).
Linux VM
Повторно запустите установщик на хосте. Он скачает и проверит новый релиз так же, как во время онбординга. Он создаст резервную копию предыдущего бинарного файла, установит текущие юниты systemd и сохранит действующие шаблоны маскирования и файл окружения. Затем перезапустите демоны:--version vX.Y.Z к команде установки.
Проверка работоспособности
Каждый демон предоставляет конечную точку/livez на порту проверки работоспособности. Индикатором работоспособности служит поле JSON status в теле ответа, а не код состояния HTTP. Метрики Prometheus доступны по пути /metrics на том же порту; отдельного порта метрик нет. Порты по умолчанию для обеих целей:
Исполнитель также предоставляет свой локальный API команд по адресу
127.0.0.1:9999. Собственной аутентификации у него нет, и он никогда не доступен за пределами хоста или пода; сервисные команды clicklink clctl обращаются к нему локально.
Когда включены сеансы поддержки, шлюз также прослушивает порт 8443: с самоподписанным TLS на виртуальной машине, по pod-local HTTP через kubectl port-forward или через входной шлюз с терминацией TLS в Kubernetes.
На виртуальной машине полный набор проверок можно запустить в любое время:
2.
Сертификаты
Коннектор самостоятельно продлевает свой клиентский сертификат. Scraper, средство диагностики и исполнитель каждые 12 часов проверяют срок действия конечного сертификата и продлевают его, когда до истечения остаётся 10 дней. При продлении по существующему каналу с mTLS и HMAC-аутентификацией возвращается новый конечный сертификат сроком на 30 дней, поэтому действия оператора не требуются. В Kubernetes демон записывает обновлённый конечный сертификат обратно в Secretclicklink-mtls; на виртуальной машине — в /etc/clicklink/tls/.
Чтобы проверить текущий срок действия:
Ротация учётных данных
Учетные данные API (HMAC)
Запросите новый токен регистрации у команды сопровождения аккаунта ClickHouse, затем повторно выполните исходную командуinit с параметрами --enroll и --force. Сохраните все флаги, относящиеся к целевому развертыванию, из первой установки (--target-namespace, --values, а также все флаги mirror: --chart, --chart-repo и --chart-version), поскольку --force повторно развертывает сохраненную конфигурацию. Режим Managed переносится из заменяемой конфигурации, поэтому флаг --managed здесь необязателен. Для установки по умолчанию:
init включает и запускает только те юниты, которые еще не запущены, поэтому после ротации перезапустите демоны:
init заранее создает обновленные Secret-ы clicklink-hmac и clicklink-mtls; чарт их не формирует. Его annotation с checksum их не охватывает, поэтому запущенные поды продолжают использовать те учетные данные, с которыми были запущены. После ротации перезапустите каждый компонент:
Для автоматической ротации, когда для настройки SQL требуется пароль, через stdin последовательно передаются оба секрета: токен в первой строке, пароль — во второй. При чтении токена считывается ровно одна строка.
Пользователи ClickHouse
Повторно создайте пользователей коннектора с доступом только для чтения для каждого инстанса, который вы зарегистрировали самостоятельно. В Kubernetes выполните команды на рабочей станции.--apply-ch-grants повторно применяет обновлённые привилегии внутри пода, чтобы новые учётные данные попали в ClickHouse; если у пользователя admin задан пароль, добавьте --ch-admin-password-stdin и передайте пароль через канал:
--ch-user-via cr:
--ch-user-via cr и флаги выбора пода в любой из вариантов; см. справочник CLI.
Клиентский сертификат
Продление выполняется автоматически (см. сертификаты). Чтобы немедленно заменить ещё действующий сертификат, повторно выполнитеinit с параметром --force. Затем перезапустите все компоненты, чтобы демоны начали предъявлять новый конечный сертификат: в Kubernetes — так, как описано в разделе API credentials, а на ВМ — все три юнита.
Повторные запуски и восстановление
Повторный запускinit приводит систему к согласованному состоянию, поэтому первым делом всегда следует повторно выполнить ту же команду. Без --force сохраняются существующие /etc/clicklink/config.yaml (VM) или оверлей clicklink-values.yaml (Kubernetes), а существующий клиентский ключ используется повторно; init перезаписывает учетные данные и цепочку CA атомарно. Команды восстановления, которые CLI выводит после частичного сбоя, можно безопасно выполнять повторно.
--force перезаписывает сохраненную конфигурацию или оверлей, генерирует новый клиентский ключ и заменяет действующий клиентский сертификат. Он никогда не создает новый UUID кластера, поэтому идентичность коннектора сохраняется. Управляемый режим заменяемой конфигурации сохраняется при автоматических повторных запусках и предлагается по умолчанию в терминале, если вы не передали --managed или --no-managed.
Если подписание сертификата завершилось ошибкой после промежуточного хранения или конечная точка подписания вернула 409, так как действующий сертификат уже существует, новый токен или повторный выпуск не требуются. Завершите установку, используя уже подписанные материалы на диске:
/etc/clicklink и управляет сервисами). В Kubernetes CLI выводит полный вариант, включая --target helm, --target-namespace и --values; используйте выведенную команду без изменений.
Коннектор офлайн. Пока коннектор не работает или недоступен, управляемые им сервисы продолжают работать. ClickHouse Operator в вашем кластере поддерживает их в рабочем состоянии, а исполнитель не находится в пути данных. Для изменений жизненного цикла требуется подключенный исполнитель, поэтому ни одно из них не применяется до повторного подключения. При перезапуске исполнитель восстанавливает из своей базы данных команд команды, выполнение которых не было завершено. Команда, повторно доставленная ClickHouse Cloud, обрабатывается на основе записанного результата; повторно выполняется только команда, завершившаяся ошибкой. О командах жизненного цикла, когда ни один исполнитель не подключен, см. когда коннектор офлайн.
Удаление
Linux VM
Скриптuninstall.sh входит в архив релиза. Если на хосте не сохранился распакованный архив, скачайте и распакуйте его (см. ручная загрузка и проверка). Запустите uninstall.sh из распакованного каталога:
clicklink-scraper, clicklink-troubleshooter и clicklink-executor, а также удаляет юниты systemd и бинарный файл. При этом сохраняется следующее, поэтому при последующей установке будет использована существующая конфигурация:
/etc/clicklink, включая access bundles исполнителя в/etc/clicklink/access/executor/var/lib/clicklink, включая базу данных команд исполнителяexecutor.dbи registry сервисов/var/log/clicklink- пользователь
clicklink
clicklink-system; удалите его, когда оно больше ничем не используется.
Kubernetes
helm.sh/resource-policy: keep, поэтому при удалении он сохраняется вместе с базой данных команд и реестром сервисов на нём. Secret’ы, созданные командой init, Secret с platform bundle, записанный командой platform approve, и ConfigMap реестра сервисов, который ведёт исполнитель, также не принадлежат чарту и остаются после удаления. Удалите их явно. Включите пару из Secret с доступом и ServiceAccount для каждого инстанса, зарегистрированного вами вручную, и для каждого управляемого сервиса, для которого вы развернули средство диагностики (они названы по имени сервиса). Флаг --ignore-not-found учитывает объекты, которые так и не были созданы, — например, Secret с platform bundle до первого одобрения:
init применил общекластерный grant исполнителя, а не chart. Удалите его от имени администратора кластера, когда не останется ни одного управляемого сервиса:
Платформенный слой
Удаление коннектора не удаляет платформенный слой. Пространства имен и рабочие нагрузки платформы, RBACpcm-platform и объекты допуска, установленные при ваших одобрениях, остаются в кластере, как и все управляемые сервисы. Сначала удалите сервисы; см. удалить сервис. На тестовом кластере без сервисов команда clicklink clctl platform reset удаляет релизы платформы. Оставшиеся после нее CustomResourceDefinition, RBAC и класс хранилища приходится удалять вручную; см. сброс тестового кластера. За пределами тестового кластера согласуйте план удаления с командой сопровождения аккаунта ClickHouse, прежде чем вносить изменения в платформенный слой.
Пользователи ClickHouse
При удалении с любого из целевых экземпляров подготовленные пользователи с правом только на чтение остаются на инстансах, которые вы зарегистрировали самостоятельно. Удалите их от имени администратора на каждом экземпляре (если вы задали--ch-user-suffix, добавьте его к именам):