Вступ
Ласкаво просимо до покрокового посібника з розгортання ArgoCD на кластері Amazon Elastic Kubernetes Service (EKS). ArgoCD — це потужний, декларативний інструмент GitOps, який дозволяє розробникам керувати та автоматизувати ресурси Kubernetes. Після завершення цього посібника ви матимете повністю функціональний екземпляр ArgoCD, що працює на кластері EKS, готовий для спрощення ваших процесів CI/CD.
Чому ArgoCD?
- Декларативна конфігурація: ArgoCD дозволяє вам керувати конфігураціями Kubernetes як кодом.
- GitOps робочий процес: Він синхронізує стан вашого кластера з Git-репозиторієм, забезпечуючи відповідність кластера бажаному стану.
- Легке відкатування: Історія Git служить вашою системою контролю версій, спрощуючи відкат версій.
- Безшовна інтеграція: Підтримує кілька Git-постачальників і версій Kubernetes.
Передумови
Перед тим, як почати, переконайтесь у наступному:
- Встановлені AWS CLI, kubectl та eksctl.
- У вас є обліковий запис AWS та дозволи для створення ресурсів.
- Доменне ім’я (необов'язково) для доступу до ArgoCD.
- Базові знання Kubernetes та принципів GitOps.
Огляд архітектури
Крок 1: Налаштування вашого EKS кластера
1.1 Створення EKS кластера
EKS спрощує управління Kubernetes, знімаючи операції з керування контрольними площинами з AWS.
Команда:
eksctl create cluster \
--name argo-eks-cluster \
--region us-east-1 \
--nodes 3 \
--node-type t3.medium \
--with-oidc \
--managed
Пояснення:
- --name: Вказує назву кластера.
- --region: Регион AWS, де буде розгорнуто кластер.
- --nodes: Кількість робочих вузлів.
- --node-type: Вказує тип інстансу EC2.
- --with-oidc: Включає OpenID Connect для ролей IAM.
- --managed: Створює керовані групи вузлів для легших оновлень.
1.2 Перевірка конфігурації кластера
Після створення кластера перевірте з'єднання:
aws eks update-kubeconfig --region us-east-1 --name argo-eks-cluster
kubectl get nodes
Якщо успішно, ви побачите вузли, позначені як Ready.
Крок 2: Встановлення ArgoCD
2.1 Створення простору імен для ArgoCD
Простори імен ізолюють ресурси в межах кластера Kubernetes.
kubectl create namespace argocd
2.2 Застосування маніфесту для встановлення ArgoCD
ArgoCD надає маніфест для легкого встановлення:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Ця команда розгортає всі необхідні компоненти, включаючи API сервер, контролер та інтерфейс користувача.
2.3 Викриття сервера ArgoCD
За замовчуванням сервер ArgoCD не доступний ззовні. Зробіть його доступним за допомогою LoadBalancer.
Команда:
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
Отримати зовнішню IP-адресу:
kubectl get svc -n argocd
Запишіть EXTERNAL-IP для сервісу argocd-server.
Крок 3: Налаштування доступу до ArgoCD
3.1 Отримання початкового пароля адміністратора
ArgoCD генерує пароль адміністратора під час встановлення. Отримати його можна за допомогою:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Використайте цей пароль для входу в інтерфейс ArgoCD за адресою http://.
3.2 Зміна пароля адміністратора
Для безпеки оновіть пароль адміністратора:
argocd login
argocd account update-password
Крок 4: Підключення Git репозиторію
4.1 Додайте ваш Git репозиторій
ArgoCD потребує Git репозиторію, що містить маніфести Kubernetes.
Підключіть ваш репозиторій:
argocd repo add --username --password
Замініть *, * та **** на дані вашого Git репозиторію.
4.2 Створення додатку
Оголосіть додаток для синхронізації ресурсів з репозиторієм:
argocd app create my-app \
--repo \
--path \
--dest-server https://kubernetes.default.svc \
--dest-namespace default
- --repo: Директорія, що містить ваші маніфести Kubernetes.
- --dest-namespace: Цільове простір імен у кластері.
4.3 Синхронізація додатку
Синхронізуйте додаток для розгортання ресурсів:
argocd app sync my-app
Моніторинг статусу синхронізації:
argocd app get my-app
Крок 5: Моніторинг і керування ArgoCD
5.1 UI ArgoCD
Інтерфейс користувача (UI) надає інтуїтивно зрозумілу панель для керування додатками. Доступ до неї можна отримати за допомогою IP-адреси LoadBalancer.
5.2 Команди CLI
Використовуйте CLI для керування додатками, синхронізації ресурсів та моніторингу статусів.
5.3 Сповіщення (необов'язково)
Налаштуйте сповіщення, щоб отримувати оновлення про здоров'я додатків:
argocd-notifications install
Висновок
Вітаємо! Ви успішно розгорнули ArgoCD на кластері EKS. З ArgoCD керування ресурсами Kubernetes стає більш ефективним, надійним і безпечним. Прийміть GitOps робочий процес, щоб спростити ваші пайплайни розробки та розгортання.
Не соромтеся досліджувати складніші налаштування, інтегрувати з іншими інструментами CI/CD та налаштовувати ArgoCD відповідно до ваших потреб.
Щасливого GitOps!
Не соромтеся аплодувати та поділитися своїми думками з цього приводу.
Зв’яжіться зі мною, якщо хочете обговорити хмарні технології та DevOps інженерію.
Електронна пошта: [email protected]
Вебсайт: https://www.emmyoncloud.xyz/
LinkedIn: https://www.linkedin.com/in/emmanuelakor/
GitHub: https://github.com/emmyoncloud
X (FKA Twitter): https://x.com/emmyoncloud
Medium: https://medium.com/@emmyoncloud
Перекладено з: GitOps Mastery: Deploying ArgoCD on an EKS Cluster