• Русский
  • Helm

    Введение

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

    Основные понятия Helm

    • Chart: Helm Chart — это пакет шаблонизированной конфигурации, содержащий определения ресурсов Kubernetes (файлы YAML).
    • Release: Helm Release — это экземпляр развернутого Helm Chart, представляющий конкретную конфигурацию ресурсов Kubernetes.
    • Values: Helm Values — это параметризованные конфигурации для Helm Chart, позволяющие пользователям настраивать определения ресурсов Kubernetes.

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

    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: sealed-secrets
      namespace: argocd
    spec:
      project: default
      source:
        chart: sealed-secrets
        repoURL: https://bitnami-labs.github.io/sealed-secrets
        targetRevision: 1.16.1
        helm:
          releaseName: sealed-secrets
      destination:
        server: "https://kubernetes.default.svc"
        namespace: kubeseal

    Пример Helm Chart OCI:

    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: nginx
    spec:
      project: default
      source:
        chart: nginx
        repoURL: registry-1.docker.io/bitnamicharts  # note: the oci:// syntax is not included.
        targetRevision: 15.9.0
      destination:
        name: "in-cluster"
        namespace: nginx
    INFO

    ** Жизненный цикл Application управляется Argo CD, а не Helm. ** Когда предоставлено несколько источников значений, порядок приоритета следующий: parameters > valuesObject > values > valueFiles > helm repository values.yaml.

    Преимущества

    • Шаблонизация: Helm использует движок шаблонов Go (gotpl) для динамической генерации файлов ресурсов Kubernetes.

    • Управление пакетами: Helm упаковывает приложения в виде Charts (включая шаблоны, значения по умолчанию и зависимости), упрощая распространение и управление версиями.

    • Управление зависимостями: Поддерживает зависимости между Charts.

    • Управление жизненным циклом: Предоставляет команды, такие как install, upgrade и rollback, для полного управления жизненным циклом.

    Варианты использования

    • Развертывание сложных приложений: Идеально подходит для сценариев, требующих динамической генерации конфигурации (например, переменных окружения или пользовательского ввода).

    • Развертывания в нескольких средах: Поддерживает конфигурации, специфичные для среды, через файлы values.yaml.

    • Распространение приложений: Позволяет упаковывать Charts для распространения в репозитории Helm или OCI registry.

    Ссылки

    Для получения более подробной информации см. Helm