EKS ๊ธฐ๋ฐ GitOps ๊ตฌ์ถ์ ํตํ State Enforcement ๋ฐ ์ค์ Drift ์์ ์ ๊ฑฐ
๐ argocd install kubernetes cluster aws โ common mistakes and how to avoid them
AI ์์ฝ
Context
์๋ kubectl apply ๋ฐฉ์์ ์์กดํ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ก ์ธํ ํ๊ฒฝ ๊ฐ ์ค์ ๋ถ์ผ์น์ ์ถ์ ๋ถ๊ฐํ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ์. ํนํ IAM ๊ถํ ์ค์ ๋ฏธํก๊ณผ Namespace ๊ด๋ฆฌ ๋ถ์ฌ๋ก ์ธํ Production ํ๊ฒฝ์ ๊ฐ์์ฑ ์ ํ ๋ฐ ์ฅ์ ๋ณต๊ตฌ ์ง์ฐ ๋ฌธ์ ์ง๋ฉด.
Technical Solution
- Helm ๊ธฐ๋ฐ Version Pinning ๋์ ์ ํตํ CRD ํธํ์ฑ ํ๋ณด ๋ฐ ๋กค๋ฐฑ ๊ฐ๋ฅ ๊ตฌ์กฐ ์ค๊ณ
- IRSA(IAM Roles for Service Accounts) ์ค์ ์ ํตํ ArgoCD์ Cluster ๋ฆฌ์์ค ๊ฐ์ ๋ฐ ์์ ๊ถํ ์ต์ํ
- Namespace Isolation ์ ๋ต์ ์ ์ฉํ์ฌ RBAC ๋ฐ Sidecar ์ค์ ์ถฉ๋ ๋ฐฉ์ง์ ๊ด๋ฆฌ ์์ญ ๋ถ๋ฆฌ
- Idempotency ํ๋ณด๋ฅผ ์ํด helm upgrade --install ๋ช ๋ น์ด๋ฅผ ํตํ CI/CD ํ์ดํ๋ผ์ธ ์์ ํ
- Git Source of Truth ์์น ๊ธฐ๋ฐ์ Self-healing ๋ฉ์ปค๋์ฆ์ ๊ตฌ์ถํ์ฌ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ ๋ณต๊ตฌ ๊ตฌํ
- ALB Ingress ํตํฉ์ ํตํ Production ํ๊ฒฝ์ TLS ๋ณด์ ์ ์ฉ ๋ฐ ๋๋ฉ์ธ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด
์ค์ฒ ํฌ์ธํธ
- ArgoCD ์ค์น ์ ์ต์ ๋ฒ์ ๋์ ํน์ ๋ฒ์ ์ ๋ช ์ํ์ฌ CRD ํ์ ๋ฐฉ์ง - installCRDs=true ์ต์ ์ ํตํด Application ๋ฆฌ์์ค ์์ฑ ์ CRD ์ฐ์ ๋ฐฐํฌ ํ์ธ - Default Namespace ์ฌ์ฉ์ ๊ธ์งํ๊ณ ์ ์ฉ Namespace๋ฅผ ํตํ ๋ฆฌ์์ค ๊ฒฉ๋ฆฌ ์ํ - EKS ํ๊ฒฝ์์ AccessDenied ์๋ฌ ๋ฐ์ ์ IRSA ๊ถํ ๋ฐ kubeconfig ์ปจํ ์คํธ ์ฐ์ ์ ๊ฒ