• Русский
  • Kustomize

    Введение

    Kustomize — это инструмент управления конфигурацией, ориентированный на Kubernetes, который позволяет пользователям настраивать определения ресурсов Kubernetes (файлы YAML) с помощью overlay и композиции без непосредственного изменения исходных файлов.

    Основные концепции Kustomize

    • Base: Базовые конфигурации, содержащие общие определения ресурсов Kubernetes.
    • Overlay: Слой настройки, который изменяет базовые конфигурации.
    • kustomization.yaml: Файл конфигурации, определяющий, как ресурсы компонуются и изменяются.

    Интеграция Argo CD с Kustomize усиливает практики GitOps, обеспечивая декларативную непрерывную доставку. Пример:

    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: kustomize-example
    spec:
      project: default
      source:
        path: examples/helloWorld
        repoURL: 'https://github.com/kubernetes-sigs/kustomize'
        targetRevision: HEAD
      destination:
        namespace: default
        server: 'https://kubernetes.default.svc'

    Если файл 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