76. Обзор ArgoCD

Обновлено: 2024-03-12
3 мин

Обзор ArgoCD

“Argo CD - это декларативный инструмент непрерывной доставки GitOps для Kubernetes”.

Контроль версий - ключевой момент здесь. Вы когда-нибудь вносили изменения в вашу среду на лету и не помните об этих изменениях, а поскольку свет горит и все вокруг зеленое, вы продолжаете упорно двигаться вперед? Вы когда-нибудь вносили изменения и ломали все или часть всего? Вы могли бы знать, что внесли изменение, и вы можете быстро откатить свое изменение, тот плохой скрипт или опечатку. А теперь сделайте это в массовом масштабе, и, возможно, это были не вы, или, возможно, ошибка была обнаружена не сразу, и теперь бизнес страдает. Поэтому контроль версий очень важен. Не только это, но и “определения приложений, конфигурации и окружения должны быть декларативными и контролируемыми по версиям”. В дополнение к этому (что взято из ArgoCD), они также упоминают, что “развертывание приложений и управление жизненным циклом должно быть автоматизировано, проверяемо и просто для понимания”.

С точки зрения операционной деятельности, но много играя с Infrastructure as Code, это следующий шаг к обеспечению того, чтобы все эти хорошие вещи были улажены по пути с помощью рабочих процессов непрерывного развертывания/доставки.

Что такое ArgoCD

Развертывание ArgoCD

Для этого развертывания мы снова будем использовать наш надежный кластер minikube Kubernetes локально.

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

Убедитесь, что все подсистемы ArgoCD запущены и работают с помощью команды kubectl get pods -n argocd.

Также проверим все, что мы развернули в пространстве имен с помощью kubectl get all -n argocd

Когда все выглядит хорошо, мы должны рассмотреть возможность доступа к этому через порт. Используя команду kubectl port-forward svc/argocd-server -n argocd 8080:443. Сделайте это в новом терминале.

Затем откройте новый веб-браузер и перейдите по адресу https://localhost:8080.

Для входа в систему вам понадобится имя пользователя admin, а для получения созданного вами секрета в качестве пароля используйте команду kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo

После входа в систему у вас будет чистый холст CD.

Развертывание нашего приложения

Теперь у нас есть ArgoCD, и мы можем начать использовать его для развертывания наших приложений из наших Git-репозиториев, а также Helm.

Приложение, которое я хочу развернуть, это Pac-Man, да, именно так, знаменитая игра и то, что я использую во многих демонстрациях, когда речь идет об управлении данными, это не последний раз, когда мы видим Pac-Man.

Вы можете найти репозиторий для Pac-Man здесь.

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

ArgoCD Demo - 90DaysOfDevOps

Примечание - Во время видео есть служба, которая никогда не удовлетворяется как здоровое приложение, это потому, что тип LoadBalancer, установленный для службы pacman, находится в состоянии ожидания, в Minikube у нас нет настроенного loadbalancer. Если вы хотите проверить это, вы можете изменить YAML для службы на ClusterIP и использовать проброс портов для игры.

На этом мы завершаем раздел CICD Pipelines, я считаю, что в настоящее время в индустрии уделяется большое внимание этой области, и вы также услышите термины GitOps, связанные с методологиями, используемыми в CICD в целом.

Следующий раздел, в который мы переходим, посвящен Observability, еще одной концепции или области, которая не является новой, но становится все более важной, поскольку мы смотрим на наши среды по-другому.

Ресурсы