Требования 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
Python3.10+, PyYAML для storage preflight
Версия приложенияНеизменяемая версия из values/massaccess-images.json скачанного пакета; latest запрещён
Встроенные хранилищаПо одному экземпляру выбранного хранилища, без высокой доступности, RWO PVC и политика сохранения PVC Retain/Retain
Внешний PostgreSQL18.x, устойчивое имя DNS, семь изолированных ролей, TLS verify-full или явно разрешённый незашифрованный режим disable
Внешняя KafkaСовместимый протокол Kafka, 1–20 bootstrap endpoints, SASL_SSL или SASL_PLAINTEXT; cluster ID, топики, ACL и репликацию готовит инфраструктура компании
Внешний ClickHouse26.4.x, один узел, раздельные порты HTTP и native, три идентичности, необязательный проверяемый TLS
Внешний Redis8.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; локальный интерфейс на хосте установки от них не зависит
  • Средства мониторинга заказчика, зашифрованное внешнее хранилище резервных копий, правила хранения и проверенная процедура восстановления
bash
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 — только нижняя граница для планирования, измеренная в локальной эталонной среде. Это не расчёт ресурсов заказчика и не доказательство ёмкости, производительности, высокой доступности или соглашения об уровне обслуживания.