Требования Kubernetes
Поддерживаемые версии, обязательные компоненты кластера, проверка точной цели установки и подтверждённые минимальные запросы ресурсов.
Краткий словарь
- Установка Helm (Helm release) — установленный и независимо управляемый набор ресурсов одного чарта.
- Объект Secret — ресурс Kubernetes для ссылок на конфиденциальные значения; поставочные чарты не владеют самими значениями.
- Запрос постоянного тома (PersistentVolumeClaim, PVC) — запрос хранилища для встроенного компонента данных.
- Сетевая политика (NetworkPolicy) — правила допустимых сетевых соединений модулей приложения.
- Интерфейс хранения контейнеров (Container Storage Interface, CSI) и сетевой интерфейс контейнеров (Container Network Interface, CNI) предоставляются кластером заказчика.
Поддерживаемые версии и конфигурации
Значения взяты из текущих метаданных чартов и руководства администратора. Перед каждой установкой или обновлением повторно проверьте метаданные версионированного артефакта.
| Область | Поддерживаемая конфигурация |
|---|---|
| Kubernetes | Версии 1.33–1.36 |
| Helm | Поддержка upgrade --install, --rollback-on-failure, --wait, lint, template и test |
| Python | 3.10+, PyYAML для storage preflight |
| Версия приложения | Неизменяемая версия из values/massaccess-images.json скачанного пакета; latest запрещён |
| Встроенные хранилища | По одному экземпляру выбранного хранилища, без высокой доступности, RWO PVC и политика сохранения PVC Retain/Retain |
| Внешний PostgreSQL | 18.x, устойчивое имя DNS, семь изолированных ролей, TLS verify-full или явно разрешённый незашифрованный режим disable |
| Внешняя Kafka | Совместимый протокол Kafka, 1–20 bootstrap endpoints, SASL_SSL или SASL_PLAINTEXT; cluster ID, топики, ACL и репликацию готовит инфраструктура компании |
| Внешний ClickHouse | 26.4.x, один узел, раздельные порты HTTP и native, три идентичности, необязательный проверяемый TLS |
| Внешний Redis | 8.6.x, устойчивое имя DNS доступного для записи основного узла, пространство имён ACL, сохранение AOF, noeviction, необязательный проверяемый TLS |
| Нижняя граница ресурсов приложения | Девять прикладных Pod: requests/limits процессора 2025m/3425m и памяти 1632Mi/2944Mi в локальной эталонной среде. Ресурсы задаются в Helm values; webhook transport настраивается отдельно |
| Нижняя граница ресурсов встроенных данных | Четыре Pod: requests/limits процессора 400m/1250m и памяти 1024Mi/1920Mi в локальной эталонной среде |
Требования к кластеру и точное определение целевой среды
Оператор заказчика предоставляет и проверяет платформу Kubernetes до применения Helm. Если namespace отсутствует, создайте его командой kubectl --context "$MA_CONTEXT" create namespace "$MA_NAMESPACE" после проверки целевого кластера.
- Проверенное несистемное пространство имён и разные имена установок приложения и данных для одного одноклиентского экземпляра
- Рабочая внутренняя служба имён и сетевой модуль CNI, для которого действие запрещающей по умолчанию NetworkPolicy подтверждено разрешённым и запрещённым соединением
- Явно назначенный владелец сетевых политик NetworkPolicy: пакет Helm или инфраструктура компании
- Доступ к реестру и успешное свежее получение каждого образа по неизменяемому digest через управляемый заказчиком imagePullSecret
- Для встроенных хранилищ — проверенный CSI StorageClass с режимом RWO, способом привязки, политикой освобождения, возможностью расширения, доступной ёмкостью и сведениями о топологии
- Достаточные квоты и доступные на узлах процессор, память, временное хранилище, число Pod и ёмкость постоянного хранилища с учётом накладных расходов платформы
- Для внешнего доступа — принятый в компании reverse proxy, балансировщик, Ingress, Gateway API, DNS и TLS; локальный интерфейс на хосте установки от них не зависит
- Средства мониторинга заказчика, зашифрованное внешнее хранилище резервных копий, правила хранения и проверенная процедура восстановления
helm version --short
helm upgrade --help | grep -- --rollback-on-failure
kubectl version --client
python3 --version
python3 -c 'import yaml'
command -v sha256sum openssl ssh-keygen curl
kubectl config get-contexts
export MA_CONTEXT='<context>'
export MA_NAMESPACE='<namespace>'
kubectl --context "$MA_CONTEXT" get nodes
kubectl --context "$MA_CONTEXT" version --output=json
helm --kube-context "$MA_CONTEXT" list -n "$MA_NAMESPACE"
API_SERVER="$(kubectl --context "$MA_CONTEXT" config view --minify -o jsonpath='{.clusters[0].cluster.server}')"ВажноЗаданные в чарте requests и limits — только нижняя граница для планирования, измеренная в локальной эталонной среде. Это не расчёт ресурсов заказчика и не доказательство ёмкости, производительности, высокой доступности или соглашения об уровне обслуживания.