Kustomize — это встроенный в `kubectl` инструмент для управления Kubernetes-манифестами без шаблонизаторов вроде Helm. Он помогает переиспользовать YAML, разделять базовую конфигурацию и окружения, а главное — менять ресурсы без копирования файлов и ручных правок.
Почему Kustomize часто выбирают вместо Helm:
- Без шаблонов и Go-template
Вы работаете с обычными YAML-манифестами, а не с логикой внутри шаблонов. Это упрощает чтение, ревью и сопровождение конфигураций. - Базовый слой + overlays
Можно создать `base` с общими ресурсами и `overlays` для `dev`, `stage`, `prod`. Например, в production увеличить replicas, добавить лимиты ресурсов или изменить ingress. - Патчи вместо дублирования
Kustomize позволяет точечно менять Deployment, Service, ConfigMap и другие объекты через patch’и. Это снижает риск ошибок и уменьшает объем конфигурации. - Встроен в kubectl
Во многих случаях не нужен отдельный пакетный менеджер:`kubectl apply -k ./overlays/prod` - Прозрачность результата
Перед применением можно легко увидеть итоговые манифесты:`kubectl kustomize ./overlays/dev`
Когда Kustomize особенно полезен 🧩
- если у вас несколько окружений с небольшими отличиями
- если команда хочет хранить “чистые” YAML без шаблонной магии
- если нужен GitOps-подход с понятной структурой репозитория
- если Helm кажется избыточным для внутренних сервисов
Пример структуры проекта:
base/- deployment.yaml
- service.yaml
- kustomization.yaml
overlays/dev/- kustomization.yaml
- patch-deployment.yaml
overlays/prod/- kustomization.yaml
- patch-resources.yaml
Что умеет Kustomize:
- добавлять common labels и annotations
- менять namespace
- подставлять префиксы и суффиксы в имена
- генерировать ConfigMap и Secret
- обновлять образы контейнеров
- объединять ресурсы из разных файлов
Где у Kustomize ограничения ⚠️
- нет богатой экосистемы chart’ов, как у Helm
- слабее подходит для сложной параметризации
- при большом количестве patch’ей структура может стать запутанной
- не решает задачи релиз-менеджмента так, как Helm
Итог:
Kustomize — отличный выбор, если нужен простой, нативный и предсказуемый способ управлять Kubernetes-конфигурациями. Он особенно хорош там, где важны читаемость YAML, контроль изменений и работа с несколькими окружениями без лишней сложности. 🚀
Подборку полезных каналов про IT — разработку, DevOps, инфраструктуру и карьеру — стоит посмотреть отдельно.