Перейти к основному контенту

Установка в 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.

Установка вручную

  1. Создайте Secret (на основе файлов, ключи pg_user, pg_password, klvd_key, ssl_cert):

    bash gen-secrets.sh -n klvd
    
  2. Установите чарт:

    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всегда
IMAP993 (+143)imap
SMTP25 (+587)smtp
Хранилище8444storage

Офлайн-установка (изолированная сеть)

Чарт закрепляет образ по digest — содержимое адресуется однозначно, поэтому один и тот же образ имеет одинаковый digest в любом реестре.

  1. На машине с доступом в сеть: docker pull …@sha256:<DIGEST> → docker save -o klvd-node.tar.
  2. Перенесите файл на изолированную машину → docker load, запушьте в локальный реестр.
  3. В 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). Миграции схемы базы данных применяются автоматически при старте узла — не выполняйте изменения схемы вручную.