Подготовка окружения к установке
Проверка инструментов
Перед установкой подготовьте рабочее место администратора:
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-чартов.