Управление развертываниями Ключ-АСТРОМ с помощью GitOps: различия между версиями
(Новая страница: «Поскольку многие компании сегодня внедряют '''GitOps''' для оптимизированного развертывания...») |
(нет различий)
|
Текущая версия на 16:19, 19 ноября 2025
Поскольку многие компании сегодня внедряют GitOps для оптимизированного развертывания Kubernetes, растёт интерес к применению этих практик к компонентам Ключ-АСТРОМ. Данное руководство посвящено развертыванию Ключ-АСТРОМ Operator с помощью инструментов GitOps и эффективной настройке мониторинга с использованием настраиваемого ресурса DynaKube (CR) в соответствии с современными стратегиями развертывания.
Использование ArgoCD
В этом разделе рассматривается развертывание Ключ-АСТРОМ Operator и применение DynaKube CR с использованием ArgoCD. Кроме того, здесь описываются варианты и даются советы по гибкой интеграции с ArgoCD.
В следующих трех пунктах описываются варианты развертывания Ключ-АСТРОМ, изложенные в подразделах, а также их комбинации.
- Индивидуальное развертывание Ключ-АСТРОМ Operator и применение DynaKube CR через приложения ArgoCD
- Применение шаблона «App of Apps» от ArgoCD
- Использование нескольких источников для приложения 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 с инструментами автоматизации зависимостей.