Управление развертываниями Ключ-АСТРОМ с помощью GitOps

Материал из Документация Ключ-АСТРОМ
Версия от 16:19, 19 ноября 2025; IKuznetsov (обсуждение | вклад) (Новая страница: «Поскольку многие компании сегодня внедряют '''GitOps''' для оптимизированного развертывания...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Поскольку многие компании сегодня внедряют GitOps для оптимизированного развертывания Kubernetes, растёт интерес к применению этих практик к компонентам Ключ-АСТРОМ. Данное руководство посвящено развертыванию Ключ-АСТРОМ Operator с помощью инструментов GitOps и эффективной настройке мониторинга с использованием настраиваемого ресурса DynaKube (CR) в соответствии с современными стратегиями развертывания.

Использование ArgoCD

В этом разделе рассматривается развертывание Ключ-АСТРОМ Operator и применение DynaKube CR с использованием ArgoCD. Кроме того, здесь описываются варианты и даются советы по гибкой интеграции с ArgoCD.

В следующих трех пунктах описываются варианты развертывания Ключ-АСТРОМ, изложенные в подразделах, а также их комбинации.

  1. Индивидуальное развертывание Ключ-АСТРОМ Operator и применение DynaKube CR через приложения ArgoCD
  2. Применение шаблона «App of Apps» от ArgoCD
  3. Использование нескольких источников для приложения ArgoCD (бета-функция)
Данное руководство было разработано и протестировано с использованием ArgoCD версии 2.10.3.

Развертывание Ключ-АСТРОМ Operator

Следующее приложение ArgoCD определяет развертывание Ключ-АСТРОМ Operator с использованием диаграммы Helm на основе OCI из Amazon ECR:

apiVersion: argoproj.io/v1alpha1

kind: Application

metadata:

  name: astromkey-operator

  namespace: argocd

spec:

  project: default

  destination:

    server: https://kubernetes.default.svc

    namespace: astromkey

  source:

    repoURL: public.ecr.aws/astromkey

    chart: astromkey-operator

    targetRevision: 1.0.0

    helm: {}

Информацию о настройке развертывания с помощью значений Helm см. в руководстве пользователя Helm от ArgoCD .

Заявление CR можно подать следующими способами:

  • Напрямую через kubectl
  • Применяя шаблон «App of Apps»

Развертывания нескольких кластеров через ArgoCD ApplicationSet

Чтобы использовать ApplicationSet CR для многокластерных развертываний, используйте Application CR, указанный выше, в качестве шаблона и интегрируйте его в ApplicationSet CR в соответствии с официальной документацией ArgoCD.

Применить пользовательский ресурс DynaKube

Следующее приложение ArgoCD ссылается на репозиторий Git, содержащий DynaKube CR по указанному пути к файлу:

apiVersion: argoproj.io/v1alpha1

kind: Application

metadata:

  name: dynakube

  namespace: argocd

spec:

  project: default

  destination:

    server: https://kubernetes.default.svc

    namespace: astromkey

  source:

    repoURL: <git-reopository-url>

    targetRevision: <revision>

    path: <path-to-dynakube-dir>

Замените поля repoURL, targetRevision, и path source осмысленными значениями перед применением запроса на изменение приложения одним из следующих способов:

  • Напрямую через kubectl
  • Применяя шаблон «App of Apps»

Подробную информацию о настройке DynaKube CR см. в документации по режимам развертывания.

Применение шаблона «App of Apps»

Шаблон App Of Apps от ArgoCD описывает очень распространённый в сообществе ArgoCD подход, позволяющий автоматически загружать кластер. В сочетании с Sync Phases и Waves шаблон App of Apps обеспечивает последовательное управление синхронизацией приложений, необходимое для развёртывания Ключ-АСТРОМ Operator перед применением DynaKube CR 1.

Добавьте аннотацию argocd.argoproj.io/sync-wave с соответствующим значением в запросы на изменение заявок из приведенных выше разделов, как показано в следующем фрагменте:

apiVersion: argoproj.io/v1alpha1

kind: Application

metadata:

  annotations:

    argocd.argoproj.io/sync-wave: "0"

  name: astromkey-operator

  namespace: argocd

spec:

  ...

---

apiVersion: argoproj.io/v1alpha1

kind: Application

metadata:

  annotations:

    argocd.argoproj.io/sync-wave: "10"

  name: dynakube

  namespace: argocd

spec:

  ...

Оба запроса на обновление приложений предназначены для применения через шаблон «App of Apps» (для которого требуется родительский запрос на обновление приложений).

1 Создание пользовательских определений ресурсов (CRD), устанавливаемых через диаграмму Helm, может занять несколько секунд, что может привести к сбою первоначального приложения DynaKube CR. Чтобы обойти данное состояние, мы рекомендуем настроить ArgoCD для использования приложения приложений, изменив логику оценки работоспособности для приложений. В качестве альтернативы можно настроить автоматические повторные попытки синхронизации.

Использование нескольких источников для приложения ArgoCD (бета-функция)

Функция «Множественные источники для приложения» является бета-версией ArgoCD и может быть изменена способами, несовместимыми с предыдущими версиями, согласно документации ArgoCD.

Несколько источников для одного приложения позволяют использовать одно приложение ArgoCD для развёртывания Ключ-АСТРОМ Operator и DynaKube CR. Кроме того, эта функция позволяет использовать файлы значений Helm в качестве источников из репозитория Git, отличного от самого чарта Helm, что ранее было невозможно в ArgoCD.

apiVersion: argoproj.io/v1alpha1

kind: Application

metadata:

  name: astromkey

  namespace: argocd

spec:

  project: default

  destination:

    server: https://kubernetes.default.svc

    namespace: astromkey

  sources:

  - repoURL: public.ecr.aws/astromkey

    chart: astromkey-operator

    targetRevision: 1.0.0

    helm:

      valueFiles:

      - $values/<path-to-astromkey-operator-values-file>

  - repoURL: <git-repository-url>

    targetRevision: HEAD

    ref: values

  - repoURL: <git-repository-url>

    targetRevision: HEAD

    path: <path-to-dynakube-dir>

  syncPolicy:

    retry: # sample retry configuration; for details, see footnote below

      limit: 5

      ...

    ...

Перед применением замените все заполнители осмысленными значениями и настройте автоматические повторные попытки 2 .

2 Создание пользовательских определений ресурсов (CRD), устанавливаемых через диаграмму Helm, может занять несколько секунд, что может привести к сбою первоначального применения ресурса DynaKube. Для обеспечения успешного развертывания необходимо настроить повторные попытки, указав политику синхронизации.

Автоматическое обновление для Ключ-АСТРОМ Operator

Информацию о настройке автоматических обновлений для Ключ-АСТРОМ Operator см. в разделе Автоматическое обновление Ключ-АСТРОМ Operator, где объясняется интеграция GitOps с инструментами автоматизации зависимостей.