Search

ArgoRollout extension - ArgoRollout Dashboard - ArgoRollout

생성일
2024/11/02 14:05
Category
Kubernetes
태그
Kubernetes
ArgoCD
CICD

ArgoRollout extension - ArgoRollout Dashboard - ArgoRollout

Kubernetes 의 기본적인 배포 방식

Kubernetes 환경에서 애플리케이션을 배포할때는 주로 Deployment 를 사용하여 배포를 하게 됩니다.
이때, Deployment 는 ReplicaSet 이라고 하는 집합을 만들게 됩니다.
그리고 여기에 정의되어 있는 갯수만큼 Pod 를 생성합니다.
최초 버전이 v1 이고, 이후 v2 버전으로의 배포를 진행하게 될때는 Deployment 의 기본적인 업데이트 방식인 Rolling Update 로 진행되게 됩니다.
신규 ReplicaSet 을 생성하고, 기존 버전의 Pod 들을 순차적으로 제거하며, 신규 Pod 로 교체하는 방식

ArgoRollout 이란?

ArgoCD 를 배포툴로 채택하여 애플리케이션을 배포하게 된다면, 배포 전략과 방식에 대한 선택지가 늘어나게 할 수 있습니다.
Argo 프로젝트 중 하나인 ArgoRollout 을 사용한다면 말이죠.
ArgoRollout 을 사용하게 되면 Blue/Green, Canary 배포도 사용할 수 있게 됩니다.

ArgoRollout Dashboard

Argo Rollout 을 사용하여, 새로운 배포 전략을 도입하면 어느 순간 배포 과정이 직관적이지 않다고 느껴질 수 있습니다.
Argo Rollout 에서는 전용 Dashboard 구성할 수 있으며, 이를 통해 배포가 어떻게 진행되고 있는지 상세히 확인할 수 있습니다.
ArgoRollout 에서는 Dashboard 를 추가적으로 구성할 수 있습니다.

ArgoRollout extension 이란?

앞서 ArgoRollout 에서는 Dashboard 를 추가적으로 구성할 수 있다고 했었습니다.
그런데, 제대로 구성하려면 외부에서 접근할 수 있도록 해야하고 도메인도 필요로 합니다.

ArgoCD Dashboard 에서 관리할 수 없을까?

ArgoRollout extension 은 ArgoCD Dashboard 에 UI 를 추가함으로서 동일한 기능을 사용할 수 있게 해줍니다.

ArgoRollout extension 구성

ArgoRollout extension 은 initContainers 로 구성할 수 있습니다.
기존에 ArgoCD 를 Helm Chart 로 구성을 했었다면, 아래 initContainers 를 추가해줍니다.
server: initContainers: - name: rollout-extension image: quay.io/argoprojlabs/argocd-extension-installer:v0.0.1 env: - name: EXTENSION_URL value: https://github.com/argoproj-labs/rollout-extension/releases/download/v0.3.4/extension.tar volumeMounts: - name: extensions mountPath: /tmp/extensions/ securityContext: runAsUser: 1000 allowPrivilegeEscalation: false volumeMounts: - name: extensions mountPath: /tmp/extensions/ volumes: - name: extensions emptyDir: {}
YAML
복사

ArgoRollout extension 기능 확인

이제 ArgoCDArgoRollout extension 이 통합되었습니다.
ArgoRollout extension 은 ArgoCD Dashboard 의 Rollout 에서 확인할 수 있습니다.
LOGS 메뉴의 오른쪽에 ROLLOUT 메뉴가 추가가 되었습니다.
신규 배포 버전으로 배포할때는 우측 상단의 메뉴에서 Promote-Full 을 사용합니다.
ArgoRollout Extension 을 통합한다면, 하나의 ArgoCD Dashboard 에서 ArgoRollout 에 대한 상세한 배포 내용까지 확인 할 수 있습니다.