Як Kubernetes стає стандартом для оркестрації контейнеризованих додатків, ефективне управління розгортаннями стає важливішим, ніж будь-коли раніше. ArgoCD, потужний інструмент GitOps для безперервної доставки, пропонує безшовний спосіб автоматизації та спрощення розгортань на Kubernetes. У цій статті ми розглянемо, як використовувати ArgoCD для розгортання додатків на Kubernetes-кластері, який працює на Minikube — інструменті для запуску кластерів Kubernetes локально.
Що таке GitOps і чому ArgoCD важливий?
GitOps — це операційна модель, яка використовує репозиторії Git як єдине джерело істини для керування конфігураціями Kubernetes і розгортаннями. За допомогою GitOps будь-які зміни в додатку або середовищі вносяться шляхом відправлення змін коду до репозиторію Git, що тригерить ArgoCD для застосування цих змін на Kubernetes-кластері.
ArgoCD спрощує процес розгортання, надаючи:
- Декларативне управління конфігураціями: Усі налаштування стану додатків і середовища описуються в Git, що забезпечує узгодженість між середовищами.
- Автоматичну синхронізацію: ArgoCD автоматично синхронізує Kubernetes-кластер із бажаним станом в Git-репозиторії.
- Можливість відкату: У разі проблем ArgoCD дозволяє легко повернутися до попереднього стану додатку.
Налаштування Minikube та встановлення ArgoCD
У цьому підручнику ми використовуватимемо Minikube для симуляції реального середовища Kubernetes локально. Це налаштування ідеальне для розробників, які хочуть протестувати ArgoCD в контрольованому середовищі з низькими витратами.
Крок 1: Налаштування Minikube
Перше, що потрібно зробити, — це переконатися, що Minikube встановлений на вашому комп'ютері. Якщо його ще немає, скористайтеся посібником із встановлення Minikube для вашої операційної системи.
Після встановлення, запустіть ваш Minikube кластер за допомогою наступної команди:
minikube start
Це налаштує Kubernetes-кластер локально, з яким ви зможете взаємодіяти через kubectl
.
Крок 2: Встановлення ArgoCD на Minikube
Тепер ми встановимо ArgoCD в Minikube кластер. Спочатку завантажимо YAML файл для встановлення ArgoCD:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Зачекайте кілька хвилин, поки компоненти ArgoCD будуть розгорнуті.
Щоб отримати доступ до API-сервера ArgoCD, виконайте порт-форвардинг до сервера ArgoCD:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Тепер ви можете отримати доступ до веб-інтерфейсу ArgoCD, перейшовши за адресою http://localhost:8080
у вашому браузері. Стандартні дані для входу:
- Логін:
admin
- Пароль: отримайте його за допомогою цієї команди:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath='{.data.password}' | base64 -d; echo
Розгортання додатка за допомогою ArgoCD
ArgoCD працює шляхом синхронізації Kubernetes-додатків з Git-репозиторію до вашого кластера. Ось як налаштувати ArgoCD для розгортання демонстраційного додатка.
Крок 3: Ручне розгортання application.yaml
Перший крок — вручну застосувати файл application.yaml
, який визначає конфігурацію додатку в ArgoCD. Це єдиний крок розгортання, який потрібно зробити вручну. У файлі application.yaml
ми визначаємо Git-репозиторій, де ArgoCD шукатиме Kubernetes маніфести.
Ось приклад, як розгорнути application.yaml
: https://github.com/ekbaya/argocd/blob/main/application.yaml
kubectl apply -f application.yaml
Це створить об'єкт ArgoCD Application, який зв'язує ваш Git-репозиторій з Minikube Kubernetes кластером.
Крок 4: Синхронізація додатка з Git-репозиторієм
Після того, як application.yaml
буде застосований, перейдіть до веб-інтерфейсу ArgoCD (http://localhost:8080
). Ви побачите ваш додаток у списку.
ArgoCD автоматично почне синхронізувати додаток на основі маніфестів у вашому Git-репозиторії.
Статус синхронізації буде оновлюватися в інтерфейсі, і ви зможете моніторити розгортання в реальному часі.
Крок 5: Перегляд і керування додатком
Тепер, коли ваш додаток розгорнуто, ви можете керувати ним безпосередньо з веб-інтерфейсу ArgoCD. Ось деякі ключові функції:
- Статус синхронізації: Перегляньте, чи додаток синхронізовано з Git-репозиторієм.
- Журнали: Переглядайте журнали додатка і усувайте проблеми прямо з інтерфейсу.
- Відкат: У разі проблем ви можете легко відкотити додаток до попередньої версії.
ArgoCD буде постійно моніторити ваш Git-репозиторій на наявність змін, автоматично синхронізуючи Kubernetes-кластер, щоб відобразити будь-які оновлення.
Переваги GitOps з ArgoCD
Використовуючи ArgoCD для розгортання на Kubernetes, ви приймаєте методологію GitOps, яка має кілька переваг:
- Автоматизація: Зміни в додатку автоматично розгортаються при їх пуші в Git, що усуває необхідність в ручних кроках.
- Контроль версій: Вся історія розгортань додатка відслідковується в Git, що дозволяє легко переглядати зміни та відкотити їх при необхідності.
- Декларативна конфігурація: Бажаний стан вашого додатку завжди зберігається в Git, що гарантує узгодженість між середовищами.
- Зменшення помилок: Завдяки автоматизації процесу розгортання з ArgoCD зменшується ймовірність людських помилок і підвищується узгодженість розгортання.
Висновок
ArgoCD спрощує розгортання на Kubernetes, автоматизуючи процес синхронізації між вашим Git-репозиторієм і Kubernetes-кластером. Використовуючи Minikube в цьому підручнику, ми показали, як просто налаштувати ArgoCD і розгортати додатки за допомогою GitOps. З ArgoCD ви можете ефективніше керувати своїми Kubernetes-додатками, з більшою безпекою та меншим втручанням людини.
Для повного набору маніфестів розгортання та ресурсів відвідайте мій репозиторій на GitHub за адресою github.com/ekbaya/argocd.
Перекладено з: Streamlining Kubernetes Deployments with ArgoCD