Index
GitOps: управление инфраструктурой через Git
1. Основные принципы GitOps
Главное правило: Git — единственный источник истины для инфраструктуры и конфигураций
Преимущества
- Полная аудитория изменений через git-историю
- Автоматическое применение изменений
- Простое откатывание через git-revert
Ограничения
- Требует культурных изменений в команде
- Сложность для legacy-систем
Developer → Git Commit → CI/CD → Kubernetes Cluster
↑____________ArgoCD____________↓
2. Компоненты GitOps-стека
Компонент |
Примеры инструментов |
Назначение |
Система контроля версий |
GitHub, GitLab, Bitbucket |
Хранение declarative-конфигов |
Оператор GitOps |
ArgoCD, Flux |
Синхронизация кластера с репозиторием |
Инфраструктура |
Kubernetes, Terraform |
Целевая среда развертывания |
3. Пример рабочего процесса
Типичный GitOps-пайплайн
- Разработчик изменяет YAML-манифесты в git-репозитории
- CI-система (GitHub Actions) проверяет и собирает образы
- ArgoCD обнаруживает изменения и применяет их в кластере
- Мониторинг (Prometheus) отслеживает состояние
# Пример ArgoCD Application (app-of-apps.yaml)
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: production-app
spec:
destination:
namespace: production
server: https://kubernetes.default.svc
source:
repoURL: https://github.com/company/production-configs
path: k8s/
targetRevision: HEAD
syncPolicy:
automated:
selfHeal: true
prune: true
4. GitOps vs Традиционный DevOps
Критерий |
GitOps |
Classic DevOps |
Управление конфигурацией |
Declarative через Git |
Imperative скрипты |
Доступ к кластерам |
Только через git-коммиты |
Прямой доступ (kubectl) |
Аудитория изменений |
Полная история в git |
Логи в отдельных системах |
Где лучше GitOps: Kubernetes-среды, compliance-требования (финансы, здравоохранение)
5. Как внедрить GitOps
Пошаговый план:
1. Инфраструктура как код → 2. Настройка ArgoCD → 3. Обучение команды
- Старт: Начните с non-production окружений
- Безопасность: RBAC для git-репозиториев
- Мониторинг: Отслеживание drift между git и кластером