애플리케이션 배포
클러스터에 Argo CD를 성공적으로 구성했으니, 이제 애플리케이션을 배포해 보겠습니다. GitOps 기반 배포 방식과 기존 배포 방법의 차이를 보여드리기 위해, 샘플 애플리케이션의 UI 컴포넌트를 kubectl apply -k 방식에서 Argo CD 관리 배포로 마이그레이션하겠습니다.
Argo CD 애플리케이션은 환경에 배포된 애플리케이션 인스턴스를 나타내는 Custom Resource Definition (CRD)입니다. 애플리케이션 이름, Git 리포지토리 위치, Kubernetes 매니페스트 경로와 같은 주요 정보를 정의합니다. 애플리케이션 리소스는 또한 원하는 상태, 대상 리비전, 동기화 정책, 상태 확인 정책을 지정합니다.
먼저, 클러스터에서 기존 샘플 애플리케이션을 제거하겠습니다:
namespace "carts" deleted
namespace "catalog" deleted
namespace "checkout" deleted
namespace "orders" deleted
namespace "other" deleted
namespace "ui" deleted
이제 Git 리포지토리를 간단한 Helm 차트로 채우겠습니다. 이 차트는 UI 컴포넌트의 공개 차트를 Helm 종속성으로 사용하여 래핑합니다:
apiVersion: v2
name: retail-store-sample-chart
description: A Helm chart for the AWS retail store ui component
type: application
version: 0.0.1
dependencies:
- name: retail-store-sample-ui-chart
alias: ui
version: 1.2.1
repository: oci://public.ecr.aws/aws-containers
래퍼 Helm 차트의 이름
이 차트가 애플리케이션을 배포함을 나타냅니다
차트의 버전을 지정합니다
AWS의 공개 OCI 레지스트리에서 retail store UI 컴포넌트의 이름, 별칭 및 버전을 래퍼 Helm 차트의 종속성으로 지정합니다
이 파일을 Git 디렉토리에 복사하겠습니다:
Git 디렉토리는 이제 다음과 같은 구조를 가져야 합니다:
`-- ui
`-- Chart.yaml
이제 구성을 Git 리포지토리에 푸시하겠습니다:
다음으로, Git 리포지토리를 사용하도록 구성된 Argo CD Application을 생성하겠습니다:
application 'ui' created
애플리케이션이 생성되었는지 확인할 수 있습니다:
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS
argocd/ui https://kubernetes.default.svc ui default OutOfSync Missing Manual <none>
이 애플리케이션은 이제 Argo CD UI에서 볼 수 있습니다:

또는 kubectl 명령을 사용하여 Argo CD 객체와 직접 상호작용할 수도 있습니다:
NAME SYNC STATUS HEALTH STATUS
apps OutOfSync Missing
Argo CD UI를 열고 apps 애플리케이션으로 이동하면 다음을 볼 수 있습니다:

Argo CD에서 "out of sync"는 Git 리포지토리에 정의된 원하는 상태가 Kubernetes 클러스터의 실제 상태와 일치하지 않음을 나타냅니다. Argo CD는 자동 동기화가 가능하지만, 지금은 이 프로세스를 수동으로 트리거하겠습니다:
짧은 시간 후에 애플리케이션은 Synced 상태에 도달해야 하며, 모든 리소스가 배포됩니다. UI는 다음과 같이 보여야 합니다:

이것은 Argo CD가 Helm 차트를 성공적으로 설치했으며 이제 클러스터와 동기화되었음을 확인합니다.
이제 UI 컴포넌트를 Argo CD를 사용하여 배포하도록 성공적으로 마이그레이션했습니다. Git 리포지토리에 푸시되는 향후 변경 사항은 자동으로 EKS 클러스터에 조정됩니다.
UI 서비스와 관련된 모든 리소스가 배포되었는지 확인하려면 다음 명령을 실행하세요:
NAME READY UP-TO-DATE AVAILABLE AGE
ui 1/1 1 1 61s
NAME READY STATUS RESTARTS AGE
ui-6d5bb7b95-rjfxd 1/1 Running 0 62s