Подготовка окружения к установке

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

Перед установкой подготовьте рабочее место администратора:

  • kubectl с доступом к целевому Kubernetes-кластеру;
  • helm версии 3.x;
  • доступ к Helm-репозиторию или локальным архивам чартов;
  • файл лицензии licence;
  • доступ к registry с образами Zakroma-Storage и Zakroma-ZDS.

Проверьте подключение:

1kubectl cluster-info 2kubectl get nodes 3helm version

Подготовка namespace

Создайте отдельные неймспейсы для управляющего слоя Zakroma-Storage и слоя хранения Zakroma-ZDS:

1kubectl create namespace zakroma-storage 2kubectl create namespace zakroma-zds

Если образы скачиваются из приватного registry, создайте imagePullSecret в каждом неймспейсе:

1kubectl -n zakroma-storage create secret docker-registry regcred \ 2 --docker-server=<registry> \ 3 --docker-username=<username> \ 4 --docker-password=<password> 5 6kubectl -n zakroma-zds create secret docker-registry regcred \ 7 --docker-server=<registry> \ 8 --docker-username=<username> \ 9 --docker-password=<password>

Имя секрета укажите в values.yaml в параметре imagePullSecrets.

Подготовка лицензии и доверенных сертификатов

Создайте секрет с лицензией в namespace zakroma-storage:

1kubectl -n zakroma-storage create secret generic licence \ 2 --from-file=licence=./licence

Если внешние сервисы используют внутренний CA, подготовьте ConfigMap с цепочкой доверенных сертификатов и смонтируйте его в Pod’ы через values.yaml:

1kubectl -n zakroma-storage create configmap ca-certificates \ 2 --from-file=ca-certificates.crt=./ca-certificates.crt

Подготовка PostgreSQL

PostgreSQL должен быть доступен из namespace zakroma-storage.

Подробная инструкция по подготовке базы данных описана в статье Настройка PostgreSQL. Для расчёта max_connections используйте Расчёт максимального количества подключений к PostgreSQL.

Подготовьте:

  • базу данных для ЗАКРОМА.Хранение;
  • пользователя с правами на создание и изменение схем;
  • схемы core, permission, notification, seclog, если их создание не делегируется приложению;
  • параметры подключения: host, port, database, user, password, sslmode.

Проверьте сетевую доступность из кластера любым debug Pod’ом или штатным способом, принятым в вашем окружении.

Подготовка Keycloak или другого провайдера авторизации

Общие варианты авторизации и настройки Keycloak описаны в статье Настройка авторизации.

Если используется Keycloak:

  • создайте realm, например zakroma;
  • создайте client для Admin UI и Gateway;
  • задайте clientId, secret и redirect URI;
  • выберите стратегию синхронизации пользователей: roles или groups;
  • назначьте пользователям нужную роль или группу;
  • обеспечьте доступность Keycloak по HTTPS из Kubernetes-кластера.

Если используется file, ldap или oidc, подготовьте соответствующие параметры и внесите их в блок global.config.auth в values.yaml.

Подготовка Kafka

Kafka нужна для событий аудита, webhooks, notification, seclog и мультикластера. Если эти функции не используются, Kafka можно не включать в values.yaml.

Если Kafka используется, подготовьте:

  • список broker endpoints, доступных из Kubernetes-кластера;
  • параметры SASL/TLS или mTLS, если они требуются;
  • trusted CA для TLS-подключений;
  • топики или разрешение на auto-creation топиков.

Подготовка хранилища для Zakroma-ZDS

Для Zakroma-ZDS подготовьте StorageClass, который поддерживает нужный режим доступа и размер PersistentVolume.

Проверьте:

1kubectl get storageclass 2kubectl -n zakroma-zds get pvc

Для режима EC количество Pod’ов и параметры dataPart/parityPart должны соответствовать выбранной схеме отказоустойчивости. Для режима FS используйте один Pod и один volume.

Подготовка Ingress, DNS и TLS

Установите Ingress-контроллер и определите IngressClass, который будет использоваться в values.yaml.

Подробные примеры DNS-записей и набора TLS-сертификатов приведены в статье Подготовка окружения к установке 7.0.1.

Подготовьте DNS-записи для актуальной схемы доступа:

  • zakroma-admin.<domain> для Admin UI;
  • zakroma-gateway.<domain> или выбранный gateway hostname для S3 API и Management API.

TLS можно настроить через заранее выпущенный сертификат или через cert-manager. Сертификат должен покрывать публичные FQDN, через которые пользователи и S3-клиенты обращаются к системе.

Legacy-схема ps/vs/gs применяется только для окружений, где она уже используется и явно поддерживается внешней маршрутизацией.

Preflight-проверка

Перед установкой проверьте, что базовые объекты и доступы готовы:

1kubectl get namespace zakroma-storage zakroma-zds 2kubectl -n zakroma-storage get secret licence 3kubectl get ingressclass 4kubectl get storageclass

После заполнения values.yaml выполните dry-run:

1helm template zakroma-storage <chart-ref> -n zakroma-storage -f values.yaml 2helm template zakroma-zds <chart-ref> -n zakroma-zds -f values.yaml

Если все проходит без ошибок, переходите к установке соответствующих Helm-чартов.