Kustomize
Введение
Kustomize — это инструмент управления конфигурацией, ориентированный на Kubernetes, который позволяет пользователям настраивать определения ресурсов Kubernetes (файлы YAML) с помощью overlay и композиции без непосредственного изменения исходных файлов.
Основные концепции Kustomize
- Base: Базовые конфигурации, содержащие общие определения ресурсов Kubernetes.
- Overlay: Слой настройки, который изменяет базовые конфигурации.
- kustomization.yaml: Файл конфигурации, определяющий, как ресурсы компонуются и изменяются.
Интеграция Argo CD с Kustomize усиливает практики GitOps, обеспечивая декларативную непрерывную доставку. Пример:
Если файл kustomization.yaml существует в расположении repoURL и path, Argo CD будет рендерить манифесты с использованием Kustomize.
Kustomize поддерживает следующие параметры конфигурации:
namePrefix: Префикс, добавляемый к именам ресурсов, сгенерированным Kustomize.nameSuffix: Суффикс, добавляемый к именам ресурсов, сгенерированным Kustomize.images: Список переопределений образов Kustomize.replicas: Список переопределений реплик Kustomize.commonLabels: Карта меток, добавляемых ко всем ресурсам.labelWithoutSelector: Логическое значение, определяющее, должны ли общие метки применяться к селекторам ресурсов и шаблонам.forceCommonLabels: Логическое значение, позволяющее переопределять существующие метки.commonAnnotations: Карта аннотаций, добавляемых ко всем ресурсам.namespace: Пространство имен ресурса Kubernetes.forceCommonAnnotations: Логическое значение, позволяющее переопределять существующие аннотации.commonAnnotationsEnvsubst: Логическое значение, включающее подстановку переменных окружения в значениях аннотаций.patches: Список патчей Kustomize с поддержкой встроенных обновлений.components: Список компонентов Kustomize.
Чтобы использовать Kustomize с overlay, укажите путь к каталогу overlay.
Преимущества
-
Декларативная конфигурация: использует файлы YAML (через kustomization.yaml) для определения композиции и изменений ресурсов.
-
Без шаблонов: настраивает конфигурации с помощью патчей и overlay без механизмов шаблонизации.
-
Интеграция, ориентированная на Kubernetes: Kustomize встроен в kubectl и не требует дополнительных инструментов.
Сценарии использования
-
Развертывание для нескольких сред: обеспечьте конфигурации для конкретных сред (например, apps, clusters) с помощью Base и Overlay.
-
Повторное использование конфигураций: идеально подходит для повторного использования базовых конфигураций в разных проектах.
-
Поэтапная доставка: постепенно изменяйте конфигурации ресурсов с помощью патчей.
Ссылки
Для получения более подробной информации см. Kustomize