GitOps через ArgoCD: манифесты в Git → agent в Kubernetes автоматически применяет → UI показывает sync status. Setup за 15 мин: install ArgoCD через manifests, create Application CRD pointing Git repo, enable auto-sync. Changes в Git = changes в cluster автоматически. Rollback = git revert.
Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.
Бесплатный онлайн-инструмент — проверка HTTP-заголовков: результат мгновенно, без регистрации.
kubectl create namespace argocd && kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -dkubectl port-forward svc/argocd-server -n argocd 8080:443 → https://localhost:8080syncPolicy: { automated: { prune: true, selfHeal: true } }| Сценарий | Конфиг |
|---|---|
| First Application | apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/me/manifests
path: apps/my-app
targetRevision: main
destination:
server: https://kubernetes.default.svc
namespace: my-app
syncPolicy:
automated:
prune: true
selfHeal: true |
| App of Apps pattern | apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: root
spec:
source:
repoURL: https://github.com/me/manifests
path: root
# Directory содержит yaml с дополнительными Application CRDs |
| Helm chart via ArgoCD | source:
repoURL: https://charts.bitnami.com/bitnami
chart: postgresql
targetRevision: 13.0.0
helm:
values: |
auth: { postgresPassword: "from-secret" } |
| Sync wave (order resources) | metadata:
annotations:
argocd.argoproj.io/sync-wave: "1" # Deploy этот first |
| Notifications на Slack | # Install argocd-notifications addon
data:
service.slack: |
token: $slack-token
subscriptions: |
- recipients: [slack:deployments]
triggers: [on-sync-succeeded, on-sync-failed] |
Чтобы настроить GitOps с ArgoCD в 2026 году, установите ArgoCD в ваш кластер Kubernetes, настройте репозиторий Git с манифестами Kubernetes и используйте команду argocd app create для создания приложения. Затем синхронизируйте приложение с помощью argocd app sync. Это позволит вам управлять развертыванием приложений через Git, обеспечивая автоматизацию и контроль версий.
Первым шагом в настройке GitOps с ArgoCD является его установка в ваш кластер Kubernetes. Для этого выполните следующие шаги:
Скачайте и установите ArgoCD:
kubectl create namespace argocdЗатем примените манифест для установки ArgoCD:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlПосле успешной установки проверьте, что все поды работают:
kubectl get pods -n argocdТеперь вам нужно получить пароль для входа в интерфейс ArgoCD. Выполните следующую команду:
kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o jsonpath='{.items[0].metadata.name}'После этого получите пароль:
kubectl get pod -n argocd -o jsonpath='{.data.password}' | base64 -dТеперь вы можете войти в веб-интерфейс ArgoCD, используя имя пользователя admin и полученный пароль.
После установки ArgoCD следующим шагом будет настройка репозитория Git, который будет содержать манифесты Kubernetes. Убедитесь, что ваш репозиторий имеет корректную структуру и доступен для ArgoCD. Например, ваш репозиторий может выглядеть следующим образом:
my-app/
├── k8s/
│ ├── deployment.yaml
│ ├── service.yaml
└── README.mdТеперь добавим репозиторий в ArgoCD:
argocd repo add --username --password После этого создайте приложение с помощью следующей команды:
argocd app create my-app --repo --path k8s --dest-server https://kubernetes.default.svc --dest-namespace defaultТеперь ваше приложение настроено для отслеживания изменений в репозитории Git. Чтобы синхронизировать приложение с состоянием в Git, используйте команду:
argocd app sync my-appЭто позволит ArgoCD автоматически развертывать изменения, внесенные в репозиторий, в кластер Kubernetes, что делает процесс управления приложениями более эффективным и предсказуемым.
Для настройки GitOps с ArgoCD необходимо установить ArgoCD, создать репозиторий Git с необходимыми манифестами Kubernetes и настроить приложение в ArgoCD, указав путь к этому репозиторию. Используйте команды argocd app create и argocd app sync для создания и синхронизации приложения соответственно.
В этой секции мы рассмотрим подробный пример настройки GitOps с использованием ArgoCD, включая создание репозитория и конфигурацию приложения. Для начала, убедитесь, что у вас установлен Git и kubectl, а также доступ к вашему кластеру Kubernetes.
1. Создайте новый репозиторий на GitHub, где будут храниться ваши манифесты Kubernetes. Например, создайте структуру каталогов:
my-gitops-repo/
├── apps/
│ └── my-app/
│ ├── deployment.yaml
│ └── service.yaml
└── kustomization.yaml
2. В файле deployment.yaml добавьте описание вашего приложения:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app-image:latest
ports:
- containerPort: 80
3. В файле service.yaml создайте сервис для доступа к вашему приложению:
apiVersion: v1
kind: Service
metadata:
name: my-app
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 80
selector:
app: my-app
4. Создайте файл kustomization.yaml для управления ресурсами:
resources:
- deployment.yaml
- service.yaml
5. После подготовки файлов, зафиксируйте изменения и отправьте их в ваш репозиторий:
git add .
git commit -m "Добавлены манифесты приложения"
git push origin main
6. Убедитесь, что ArgoCD установлен и запущен в вашем кластере Kubernetes. Теперь вам нужно создать приложение в ArgoCD, используя команду:
argocd app create my-app \
--repo https://github.com/your-username/my-gitops-repo \
--path apps/my-app \
--dest-server https://kubernetes.default.svc \
--dest-namespace default
7. После создания приложения, выполните синхронизацию:
argocd app sync my-app
8. Проверьте статус приложения с помощью команды:
argocd app get my-app
Теперь ваше приложение развернуто в Kubernetes, и вы можете управлять его состоянием с помощью GitOps. Если вы внесете изменения в манифесты, просто обновите репозиторий, и ArgoCD автоматически применит их в кластере.
Для 1 app — overkill. Для 3+ apps/services в Kubernetes — ArgoCD убирает manual kubectl + provides audit trail + rollback.
HTTPS: username + personal access token в secret. SSH: deploy key. В UI → Settings → Repositories.
НЕ plain в Git. Sealed Secrets (bitnami) encrypted в Git, расшифровываются в cluster. Или External Secrets Operator → Vault/AWS SM/SSM.
Kustomize overlays + separate Applications per env. Или ApplicationSet для DRY.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.