Установка в Kubernetes
Узел разворачивается в существующий кластер Kubernetes через OCI helm-чарт klvd-node. Подключается к внешним PostgreSQL и Solr уже работающего кластера Клавдия — локальные базы данных чарт не разворачивает. Образ закреплён по digest (тег latest не используется).
Предпосылки
- Внешний PostgreSQL кластера Клавдия (адрес, порт, база, учётные данные).
- Внешний Solr кластера Клавдия (URL).
-
helmверсии 3.8 и выше (поддержка OCI),kubectl,openssl. - Доступ к образу
registry-ru-2.afi-d.ru/afi/klvd/klvd-node(imagePullSecret или локальный реестр).
Интерактивная установка
curl -fsSL https://static.afi-d.ru/products/klvd/install/klvd-install-helm.sh | bash
Скрипт спрашивает: пространство имён, ingress (домен, класс, порт), внешний PostgreSQL, Solr, порт веб-интерфейса, роли, число реплик, авторизацию в реестре, способ создания секрета. Затем создаёт Secret и выполняет helm install.
Установка вручную
-
Создайте Secret (на основе файлов, ключи
pg_user,pg_password,klvd_key,ssl_cert):bash gen-secrets.sh -n klvd -
Установите чарт:
helm install klvd oci://registry-ru-2.afi-d.ru/afi/klvd/charts/klvd-node \ -n klvd --create-namespace --version <ВЕРСИЯ> \ -f examples/values-min.yaml
Минимальный набор в values.yaml: postgresql.host, postgresql.existingSecret, solr.url. Остальное — рабочие значения по умолчанию.
Масштабирование
helm upgrade klvd oci://registry-ru-2.afi-d.ru/afi/klvd/charts/klvd-node \
-n klvd --version <ВЕРСИЯ> -f values.yaml --set replicaCount=3
Каждая новая реплика — отдельный узел кластера со своим идентификатором на собственном томе (PVC). Новым узлам включите роли IMAP/SMTP в панели управления.
[СКРИНШОТ: раздел «Кластер/Узлы» — список узлов с ролями — screenshots/install-book/02b-k8s-nodes.png]
Порты
| Служба | Порт | Появляется при роли |
|---|---|---|
| Веб-интерфейс | 8001 | всегда |
| IMAP | 993 (+143) | imap |
| SMTP | 25 (+587) | smtp |
| Хранилище | 8444 | storage |
Офлайн-установка (изолированная сеть)
Чарт закрепляет образ по digest — содержимое адресуется однозначно, поэтому один и тот же образ имеет одинаковый digest в любом реестре.
- На машине с доступом в сеть:
docker pull …@sha256:<DIGEST>→docker save -o klvd-node.tar. - Перенесите файл на изолированную машину →
docker load, запушьте в локальный реестр. - В
values.yamlпереопределитеimage.repositoryна локальный реестр (digest не меняйте).
Обновление версии
Новая версия чарта публикуется разработчиком (образ закреплён по digest). Обновление — это смена --version в helm upgrade:
helm upgrade klvd oci://registry-ru-2.afi-d.ru/afi/klvd/charts/klvd-node \
-n klvd --version <НОВАЯ_ВЕРСИЯ> -f values.yaml
StatefulSet обновляет реплики по одной (rolling). Миграции схемы базы данных применяются автоматически при старте узла — не выполняйте изменения схемы вручную.