У цій статті ми розглянемо процес налаштування GitOps для автоматизованих деплойментів Kubernetes на Amazon EKS за допомогою ArgoCD, а також інтеграції Prometheus та Grafana для моніторингу Kubernetes. Поєднання цих інструментів допоможе автоматизувати деплойменти та надасть вам можливість бачити стан вашого кластера EKS.
Вступ
GitOps став основною стратегією для керування деплойментами Kubernetes. Зберігаючи маніфести Kubernetes у Git-репозиторії та використовуючи інструмент, такий як ArgoCD, ми можемо автоматично розгорнути та оновити наш кластер на основі змін у репозиторії. Це потужний підхід, який знижує потребу у ручному втручанні та забезпечує синхронізацію нашої інфраструктури з бажаною конфігурацією, що зберігається в Git.
У цій статті ми зосередимося на наступних ключових цілях:
- Налаштування ArgoCD для GitOps на EKS.
- Встановлення Prometheus для моніторингу метрик Kubernetes.
- Налаштування Grafana для візуалізації цих метрик.
Передумови
Перед початком вам потрібно встановити наступні інструменти:
- AWS CLI: Для взаємодії з сервісами AWS.
- kubectl: Інтерфейс командного рядка Kubernetes для керування вашим EKS кластером.
- Helm: Менеджер пакетів для Kubernetes.
- Git: Для версійного контролю та взаємодії з GitHub.
Також переконайтеся, що у вас є:
- Створений та запущений EKS кластер.
- Встановлений ArgoCD на вашому EKS кластері.
- GitHub репозиторій, де ви будете зберігати маніфести Kubernetes.
Крок 1: Встановлення ArgoCD на EKS
ArgoCD — це декларативний інструмент GitOps, який синхронізує ваш Kubernetes кластер з конфігурацією, збереженою у вашому Git-репозиторії. Почнемо з встановлення ArgoCD.
Встановлення ArgoCD за допомогою Helm:
kubectl create namespace argo
cd helm install argocd argo/argo-cd -n argocd
Відкриття сервісу ArgoCD:
Нам потрібно відкрити сервіс ArgoCD зовнішньо для взаємодії з інтерфейсом користувача.
kubectl expose svc argocd-server -n argocd — type=LoadBalancer — name=argocd-server
Доступ до інтерфейсу ArgoCD:
За замовчуванням облікові дані для ArgoCD:
Ім'я користувача: admin
Пароль: Отримати пароль за допомогою цієї команди:
kubectl -n argocd admin initial-admin-secret
Крок 2: Налаштування GitOps репозиторію
Тепер налаштуємо наш GitHub репозиторій для зберігання всіх маніфестів Kubernetes для деплойменту.
- Створіть GitOps репозиторій на GitHub.
- Додайте маніфести Kubernetes (такі як деплоймент, сервіси, ingress тощо) для налаштування застосунку та моніторингу.
- Додайте ці маніфести у директорію
gitops/
вашого репозиторію.
Крок 3: Встановлення Prometheus та Grafana для моніторингу
Моніторинг критично важливий у середовищі Kubernetes, і ми будемо використовувати Prometheus для збору метрик з кластера, а Grafana допоможе візуалізувати ці метрики.
Встановлення Prometheus:
-
Встановлення Prometheus за допомогою Helm:
helm install prometheus prometheus-community/kube-prometheus-stack -f monitoring/prometheus-values.yaml
-
Відкриття Prometheus через LoadBalancer:
kubectl expose svc prometheus-kube-prometheus-prometheus -n default — type=LoadBalancer — name=prometheus
Встановлення Grafana:
-
Встановлення Grafana за допомогою Helm:
helm install grafana grafana/grafana -f monitoring/grafana-values.yaml
-
Відкриття Grafana через LoadBalancer:
kubectl expose svc grafana -n default — type=LoadBalancer — name=grafana
Крок 4: Імпорт панелей у Grafana
Grafana постачається з готовими панелями, які допомагають візуалізувати ефективність вашого Kubernetes кластера. Ось як їх імпортувати:
- Моніторинг Kubernetes кластера: Ідентифікатор панелі
315
- Kubernetes Nodes: Ідентифікатор панелі
1427
- Kubernetes Cluster: Ідентифікатор панелі
1860
Після імпорту панелей ви зможете моніторити різні аспекти вашої інфраструктури Kubernetes, включаючи здоров'я подів, статус вузлів та інші критичні метрики.
Крок 5: GitOps синхронізація з ArgoCD
ArgoCD дозволяє нам автоматично розгортати конфігурації, збережені в нашому Git репозиторії.
Після налаштування ArgoCD з вашим репозиторієм ви можете синхронізувати зміни безпосередньо.
- Підключіть ArgoCD до вашого GitHub репозиторію, де зберігаються маніфести Kubernetes.
- Синхронізуйте Git репозиторій з ArgoCD для автоматичного деплойменту ваших застосунків на EKS.
Крок 6: Доступ до панелей Prometheus та Grafana
Після того, як все налаштовано:
- Доступ до Prometheus можна отримати, відвідавши його URL через LoadBalancer.
- Доступ до Grafana — через його URL LoadBalancer, увійдіть за стандартними обліковими даними та досліджуйте метрики Kubernetes.
Висновок
Дотримуючись цього посібника, ми налаштували GitOps для автоматизованих деплойментів Kubernetes за допомогою ArgoCD на Amazon EKS, а також реалізували надійний моніторинг за допомогою Prometheus та Grafana. Ця архітектура забезпечує безперервне постачання та отримання реальних даних про вашу інфраструктуру, що робить її ідеальною для сучасних хмарних додатків.
Перекладено з: Setting up GitOps and Monitoring in EKS with ArgoCD, Prometheus, and Grafana