애플리케이션 삭제

애플리케이션 삭제 (App Deletion) — 관리 리소스 정리를 안전하게 마무리하기

Argo CD에서 애플리케이션을 삭제하면 클러스터에 배포되어 있던 관리 리소스도 함께 정리돼요. 다만 삭제 방식(캐스케이드 여부)에 따라 찾아가며 지우느냐, 아니면 리소스는 남기고 애플리케이션 정의만 지우느냐가 달라져요. 배포 중인 서비스를 실수로 지우지 않도록 상황에 맞는 삭제 방식을 골라야 해요.

출처: https://argo-cd.readthedocs.io/en/stable/user-guide/app_deletion/

본문

비캐스케이드(non-cascade) 삭제는 관리 리소스를 남기고 애플리케이션만 지워요. CLI로는 --cascade=false를 붙여서 실행해요.

argocd app delete APPNAME --cascade=false

캐스케이드(cascade) 삭제는 애플리케이션에 딸린 관리 리소스까지 함께 지워요. --cascade 플래그를 명시하거나, 그냥 기본 실행해도 캐스케이드 삭제가 돼요.

argocd app delete APPNAME --cascade
argocd app delete APPNAME

App of Apps 패턴에서 자식 애플리케이션을 찾는 기준은 app.kubernetes.io/part-of 레이블이에요. 이 레이블이 있고 값이 비어 있지 않으면 그 애플리케이션은 자식 애플리케이션으로 판별돼요. UI에서 자식 애플리케이션을 삭제할 때는 삭제 대화상자에 추가 정보가 함께 보여요.

삭제 옵션(전파 정책) 중 **Non-Cascading(Orphan)**을 고르면 Argo CD는 이렇게 동작해요.

  • Application에서 resources-finalizer.argocd.argoproj.io 파이널라이저를 제거하고
  • Application 리소스만 삭제하며
  • 클러스터에서 실행 중인 관리 리소스(Pod, Service, Deployment 등)는 그대로 남겨둬요.

더 알아보기

  • 애플리케이션과 싱크
  • Argo CD 핵심 개념 — GitOps 배포를 이해하는 첫 단추
  • 고아 리소스 모니터링 — 주인 없는 리소스를 찾아서