Рубрики
Uncategorized

Начало работы с Argocd

В типичном развертывании на основе нажатия инструменты, такие как Anbible, Jenkins и т. Д., Подключитесь непосредственно к серверу … Теги с DevOps, Kubernetes, Cloud, Docker.

В типичном развертывании на основе нажима, инструменты, такие как Anbible, Jenkins и т. Д., Подключите непосредственно к серверу или кластеру и выполните команды предоставления. Этот подход хорошо работает, когда кластер доступен в сети, и между нашим сервером развертывания есть прямое подключение между нашим сервером развертывания и сервером назначения. Для соображений соответствия или по соображениям безопасности подключение между инструментом развертывания и кластером может быть невозможным.

ARGOCD — это инструмент развертывания на основе тяги. Он смотрит на удаленный репозиторий Git для новых или обновленных файлов манифеста и синхронизирует эти изменения с кластером. Управляя очевидным в Git и синхронизировать их с кластером, мы получаем все преимущества рабочего процесса на основе GIT (контроль версий, отзывы общих запросов, прозрачность в сотрудничестве и т. Д.) И однозначное отображение между тем, что находится в Git Reppo и то, что развернуто в кластере. Этот метод называется гитами.

В этом руководстве я собираюсь сделать следующее:

  1. Установите Argocd на монтажу Minikube.
  2. Создайте образец приложения ARGOCD под названием Ayush-test-приложение и Свяжите это с моим репо Ayush-Sharma/примерные активы Отказ
  3. Создать и Развертывание Nginx с 3 репликами Отказ
  4. Убедитесь, что новое приложение отображается на панели инструментов ARGOCD и проверьте его, используя kubectl Отказ

Установка аргоцда

Для этого учебника я использую Minikube Версия: v1.21.0 Отказ Вы можете Скачать и установить Minikube отсюда Отказ

С Minikube up и работает, мы собираемся установить argocd. Документация ARGOCD содержит подробные шаги на Как установить и настроить его для любого кластера Отказ Как только вы выполнили эти шаги, убедитесь, что запустите Туннель Миникуба В отдельном окне терминала, чтобы Minikube обнаруживает конечную точку балансировщика нагрузки сервера Argocd на вашей локальной системе. Чтобы проверить это, запустить Kubectl Получите Po -n Argocd и проверьте, если argo-server Услуга имеет Внешний IP:

user@system ~ kubectl get svc -n argocd
NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)                      AGE
argocd-dex-server       ClusterIP      10.110.2.52               5556/TCP,5557/TCP,5558/TCP   3h32m
argocd-metrics          ClusterIP      10.100.73.57              8082/TCP                     3h32m
argocd-redis            ClusterIP      10.104.11.24              6379/TCP                     3h32m
argocd-repo-server      ClusterIP      10.100.132.53             8081/TCP,8084/TCP            3h32m
argocd-server           LoadBalancer   10.98.182.198   10.98.182.198   80:32746/TCP,443:31353/TCP   3h32m
argocd-server-metrics   ClusterIP      10.105.182.52             8083/TCP                     3h32m

Как только установка будет завершена, и работает балансировщик нагрузки, ARGOCD UI будет доступен в Внешний IP Отказ

Создание первого приложения

Прежде чем мы сможем говорить о развертывании ARGOCD, нам нужно обеспечить, чтобы Git Reppo с файлом манифеста K8S готов к развертыванию. Я использую Мое публичное репо Пример-активов с Файл развертывания развертывания Nginx в /ARGOCD/GELATION Отказ

Наша цель состоит в том, чтобы получить ARGOCD для прослушивания файла манифеста K8S выше для изменений, а затем синхронизируйте их с кластером, он развернут в этом случае Minikube. Мы делаем это, создавая приложение, содержащее информацию о исходных файлах файлов манифеста, деталями кластера назначения и политики синхронизации.

Нажмите Новое приложение В верхнем левый, чтобы настроить новое приложение. Поскольку мой пункт назначения kubernetes Server — это один ARGOCD, установлен на (Minikube), я оставлю сервер по умолчанию as — есть. Это значения, которые я настроил:

  1. Название приложения: Ayush-test-приложение
  2. Проект: дефолт
  3. Политика синхронизации: автоматизированный
  4. Параметры синхронизации: Brune: True; Самоээль: правда
  5. УРЛ репозитория источника: https://gitlab.com/aush-sharma/example-assets.git.
  6. Пересмотр источника: ГОЛОВА
  7. Путь источника: Argocd/Get. -началось
  8. URL-адрес кластера назначения: https://kubernetes.default.svc.
  9. Пространство на местах: дефолт

Чтобы сделать все легче, вы можете нажать Редактировать как yaml Направо и вставьте следующее:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: ayush-test-application
spec:
  destination:
    name: 'default'
    namespace: default
    server: 'https://kubernetes.default.svc'
  source:
    path: argocd/getting-started
    repoURL: 'https://gitlab.com/ayush-sharma/example-assets.git'
    targetRevision: HEAD
  project: default
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

Ваша конфигурация должна выглядеть так:

После сохранения конфигурации ваше приложение должно отображаться как карту на домашней странице. Так как мы указываем политику синхронизации как Автоматизированный Наше новое приложение начнут немедленно синхронизировать с репо.

Создание развертывания Nginx

В этом уроке мой файл манифеста является стандартным развертыванием Nginx с 3 репликами. Однажды Ayush-test-приложение Завершает синхронизацию, Argocd будет отображать приятный графический вид на развертывание.

Теперь позвольте мне проверить развертывание, используя Kubectl Получить Po :

NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-585449566-584cj   1/1     Running   0          5m
nginx-deployment-585449566-6qn2z   1/1     Running   0          5m
nginx-deployment-585449566-d9fm2   1/1     Running   0          5m

Вывод

ARGOCD — это относительно легкий и более безопасный подход к развертыванию K8S. Я особенно увлекаюсь отношением к одной к одному между тем, что в репо, и что в кластере, делая управление инцидентами намного проще.

Еще одним большим преимуществом является то, что с момента нашего Git Reppo содержит все ARGOCD, мы могли бы удалить всю установку Argocd и настроить вещи с нуля. Это означает, что подведение второго одинакового кластера со всей нашей рабочей нагрузкой теперь является более осуществимым и практичным в случае катастрофического отключения.

Третьим большим преимуществом является безопасность: поскольку Argocd вытягивает изменения из удаленного REPO GIT, нет необходимости определять правила брандмауэра и VPC Playing Connections, чтобы получить наши серверы развертывания для подключения с нашим кластером, что составляет один меньший точка входа. Это значительно снижает площадь поверхности атаки для наших серверов DEV/QA/PROD.

Поскольку имя Git Repo и филиала настраивается, вы можете получить креатив с моделями развертывания. Например, у вас могут быть 2 различных аргуцитов, работающих на 2 различных кластерах QA и POD, прослушивающие одно и то же ветвь репо. Это гарантирует, что один и тот же файл манифеста развернут на обоих кластерах, обеспечивая среды QA и PROD, содержат ту же кодовую базу. Кроме того, один ARGOCD способен нацеливаться на нацеливание нескольких серверов, то есть возможна модель развертывания ступицы и спицами, где одно мастер развертываний Orgocd Orchestrates по нескольким разработкам, QA и кластерам Prod в разных регионах/средах.

Я надеюсь, что это учебное пособие было информативным. Получите творчество с Argocd, и не забудьте поделиться своими экспериментами с другими.

Счастливое кодирование:)

Оригинал: «https://dev.to/ayushsharma/getting-started-with-argocd-d1j»