Оптимізація розгортань Kubernetes за допомогою ArgoCD

Як 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

Leave a Reply

Your email address will not be published. Required fields are marked *