Развертывание приложений в Kubernetes может быть сложным, особенно для новичков. Введите Argo CD, инструмент на основе GitOps, предназначенный для автоматизации развертывания приложений в Kubernetes. На этом семинаре вы узнаете, как настроить и использовать Argo CD для беспроблемного развертывания приложений, с пошаговым руководством, созданным специально для начинающих.
Что вы узнаете
- Установка и настройка Argo CD.
- Развертывание приложений с использованием принципов GitOps.
- Мониторинг развертываний и устранение неполадок.
- Откат и управление версиями приложений.
- Обеспечение безопасности Argo CD для использования в производстве.
Почему Argo CD?
Argo CD упрощает управление приложениями в Kubernetes, постоянно синхронизируя ваш кластер с манифестами, определенными в репозиториях Git. Преимущества включают:
- Декларативное управление: Определите желаемое состояние кластера в Git.
- Непрерывная доставка: Автоматизация развертываний с синхронизацией в реальном времени.
- Управление версиями: Легкость отката к предыдущим версиям.
Предварительные требования
Перед тем как начать, убедитесь, что у вас есть:
- Кластер Kubernetes (используйте Minikube, Kind или управляемый сервис, такой как GKE, EKS, AKS).
- Установленный и настроенный
kubectl
для подключения к вашему кластеру. - Учетная запись GitHub или GitLab для размещения ваших манифестов Kubernetes.
- Базовое знакомство с синтаксисом YAML (рассматривается на этом семинаре, если вы новичок).
Пошаговое руководство
1. Настройка кластера Kubernetes
Шаг 1: Установка Minikube
Если у вас нет кластера, используйте Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
Шаг 2: Запуск Minikube
Запустите команду minikube start
после установки Minikube на вашу систему:
minikube start
Шаг 3: Проверка кластера
Убедитесь, что кластер работает:
kubectl cluster-info
kubectl get nodes
2. Установка Argo CD
Шаг 1: Создание пространства имен
Argo CD работает в собственном пространстве имен для изоляции:
kubectl create namespace argocd
Шаг 2: Установка Argo CD
Примените официальные манифесты для установки Argo CD:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Шаг 3: Проверка установки
Проверьте поды Argo CD:
kubectl get pods -n argocd
3. Доступ к интерфейсу Argo CD
Шаг 1: Откройте доступ к Argo CD
Откройте доступ к argocd-server
на вашем локальном компьютере:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Шаг 2: Получение учетных данных администратора
Получите пароль администратора по умолчанию:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
Шаг 3: Вход в интерфейс пользователя
- Откройте https://localhost:8080 в вашем браузере.
- Войдите с помощью:
- Имя пользователя: admin
- Пароль: Полученный на предыдущем шаге.
4. Подключение Argo CD к вашему Git-репозиторию
Шаг 1: Подготовка Git-репозитория
- Создайте Git-репозиторий (например, на GitHub).
- Добавьте ваши манифесты Kubernetes в репозиторий. Используйте этот образец
deployment.yaml
:
apiVersion apps/v1
kind Deployment
metadata
name nginx-deployment
labels
app nginx
spec
replicas2
selector
matchLabels
app nginx
template
metadata
labels
app nginx
spec
containers
name nginx
image nginx1.19
ports
containerPort80
Шаг 2: Добавление репозитория в Argo CD
Из интерфейса:
- Перейдите к Настройкам > Репозиториям.
- Добавьте URL вашего Git-репозитория и данные аутентификации (SSH или HTTPS).
Или используйте CLI:
argocd repo add <REPO_URL> --username <USERNAME> --password <PASSWORD>
5. Развертывание вашего первого приложения
Шаг 1: Создание приложения
В Argo CD UI:
- Нажмите Новое приложение.
-
- Имя приложения: nginx-app
- Проект: по умолчанию
- URL репозитория: URL вашего Git-репозитория
- Путь: Путь к
deployment.yaml
- URL кластера:
https://kubernetes.default.svc
- Пространство имен: по умолчанию
Шаг 2: Синхронизация приложения
После создания приложения:
- Нажмите Синхронизировать в пользовательском интерфейсе Argo CD.
- Наблюдайте, как приложение развертывается в вашем кластере Kubernetes.
6. Автоматизация развертывания
Шаг 1: Включение автосинхронизации
Включите непрерывную синхронизацию:
argocd app set nginx-app --sync-policy automated
Шаг 2: Тестирование изменений
- Измените
deployment.yaml
в Git. - Отправьте изменения в репозиторий.
- Argo CD обнаружит изменения и автоматически синхронизирует их с кластером.
7. Мониторинг и устранение неполадок
Шаг 1: Мониторинг состояния приложения
На пользовательском интерфейсе проверьте:
- Здоровье: Указывает, работает ли приложение как ожидалось.
- Статус синхронизации: Гарантирует соответствие состояния кластера Git.
Шаг 2: Просмотр журналов
Если что-то идет не так:
kubectl logs -n argocd <POD_NAME>
Шаг 3: Откат изменений
Вернуться к предыдущему состоянию:
argocd app rollback nginx-app <REVISION>
8. Обеспечение безопасности Argo CD
Шаг 1: Изменение пароля администратора по умолчанию
Измените пароль администратора по умолчанию с помощью команды argocd account update-password
:
argocd account update-password
Шаг 2: Интеграция SSO
Для производственных сред использовать решения для единого входа (SSO) как GitHub или LDAP.
Лучшие практики GitOps
- Стратегии ветвления: Используйте отдельные ветви для разработки, тестирования и продакшна.
- Проверки кода: Обеспечивайте проверку кода пиров для изменений в манифестах.
- Журналы аудита: Регулярно проверяйте журналы Argo CD для соответствия и отладки.
Заключение
Argo CD предлагает простой для начинающих, но мощный способ управления развертыванием Kubernetes с использованием принципов GitOps. Этот семинар дает вам навыки развертывания, мониторинга и управления приложениями эффективно. Следуя этим практикам, вы на верном пути к овладению непрерывной доставкой Kubernetes.
Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd