Argo CD in Practice – 3) Argo CD 운영 : 고가용성(HA) 설치 구성
구구달스
2025. 10. 19. 18:49
🚀 Operating Argo CD
Argo CD 고가용성(HA) 환경 구성 및 운영
🧩 Declarative Configuration
📘 개요
Argo CD를 설치하는 방법은 여러 가지가 있습니다.
Argo CD의 선언적 설치(Declarative Configuration)는 GitOps 철학의 핵심으로, 모든 설정이 코드로 정의되고 Git을 통해 관리됩니다. 즉, kubectl로 수동 적용하는 대신 Git Repository에 변경 사항을 Commit하면, Argo CD가 이를 감지해 자동으로 적용합니다.
"Git은 단순한 버전 관리 도구가 아니라, 인프라의 ‘Single Source of Truth’ 역할을 합니다."
🧱 Argo CD 설치 방법
Argo CD를 클러스터에 설치하는 방법은 다음 세 가지가 있습니다:
직접 Manifest 적용→ install.yaml은 Argo CD의 설치 리소스를 모두 포함하고 있습니다.
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app$ git status
On branch main
Your branch is up to date with 'origin/main'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
resources/
nothing added to commit but untracked files present (use "git add" to track)
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app$ git add .
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: resources/install.yaml
new file: resources/namespace.yaml
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app$ git commit -m "Deploy Argo CD"
[main 40d71b5] Deploy Argo CD
2 files changed, 28233 insertions(+)
create mode 100644 resources/install.yaml
create mode 100644 resources/namespace.yaml
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app$ git push -u origin main
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 12 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 90.48 KiB | 4.76 MiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:kschoi728/my-sample-app.git
8e5307b..40d71b5 main -> main
branch 'main' set up to track 'origin/main'.
🔄 Argo CD Self-management
🧠 Argo CD가 자기 자신을 관리하기
Argo CD는 자신을 관리 대상으로 등록할 수 있습니다.
Argo CD의 설치 구성을 Argo CD Application으로 등록하면,자체 설정 변경도 자동으로 동기화할 수 있습니다.
Argo CD UI → Settings → Repo 에 자신의 Repo 추가
1️⃣ Argo CD 애플리케이션 생성
GitHub 리포지토리의 resources 디렉토리에 있는 Kubernetes 리소스를 Argo CD가 자동으로 동기화하여 argocd 네임스페이스에 배포하도록 설정한 Application 리소스를 생성
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app/resources$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: install.yaml
no changes added to commit (use "git add" and/or "git commit -a")
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app/resources$ git add .
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app/resources$ git commit -m "Comment Network Policy Resource"
[main 401b8df] Comment Network Policy Resource
1 file changed, 227 insertions(+), 227 deletions(-)
(⎈|kind-myk8s:N/A) ssoon@DESKTOP-72C919S:~/my-sample-app/resources$ git push -u origin main
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 1.00 KiB | 73.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To github.com:kschoi728/my-sample-app.git
40d71b5..401b8df main -> main
branch 'main' set up to track 'origin/main'.
SYNC → SYNCHRONIZE (PRUNE 체크)
📌 핵심 요약
Argo CD Declarative 설치는 GitOps 방식의 핵심으로, 모든 설정을 코드로 관리합니다.
HA 설치를 위해 최소 3개 노드의 Kubernetes 클러스터가 필요합니다.
Self-management를 구성하면 Argo CD가 자신을 Argo CD Application으로 관리합니다.
ConfigMap Patch로 Git 동기화 주기(timeout.reconciliation) 등 설정을 쉽게 변경할 수 있습니다.
변경 사항은 Git Commit → 자동 Sync → 수동 재시작으로 적용됩니다.
“Argo CD를 GitOps 방식으로 스스로 관리하게 만들면, 운영 자동화와 일관성을 극대화할 수 있습니다.”