❤️
악분의 ArgoCD 공부기록
  • Home
  • Argo CD 소개
    • 실습자료
    • 컨셉과 장단점
    • 설치
    • 아키텍처
  • ArgoCD CLI 설치
    • 설치
    • login
  • ARGO CD HelloWorld
    • nginx pod, service 배포
  • ARGO CD 단위
    • 소개
    • Applicaiton
    • Project
  • Sync 설정
    • 소개
    • Refresh Period
    • 수동 Refresh
    • Sync와 Sync Policy
    • Sync Status
    • Health Status
    • Prune
    • Directory Recurse
    • Self healing
    • Ignore Difference
    • Non Cascade 삭제
    • ArgoCD로 관리되는지 확인
    • 기존 리소스 연결
    • helm chart
    • kustomize
  • Sync LifeCycle
    • Phases
  • private repository
    • 소개
    • git private repo 관리
  • User 관리
    • 소개
    • Argo CD user
    • Built-in user
    • Local user 생성
    • 권한(Role) 관리
  • Argo CD Project
    • Project란?
    • Project 생성 예제
    • Project 설정
    • Project 설정 예제
    • Project 권한(Role)과 예제
  • App of Apps
    • App of Apps 패턴
  • Multi cluster 관리
    • 클러스터 추가
  • 모니터링
    • 소개
    • Argo CD Metrics 추가
    • Prometheus Operator 설치
Powered by GitBook
On this page
  • 리소스가 이미 존재한다면?
  • 실습
  • pod배포
  • 라벨 확인
  • Argocd Application 생성
  • 삭제 시 주의사항
  1. Sync 설정

기존 리소스 연결

리소스가 이미 존재한다면?

ArgoCD Application을 생성 또는 Sync할 때, 이미 쿠버네티스 리소스가 존재하면 어떻게 될까요? 정답은 기존 리소스가 ArgoCD에 연결됩니다.

실습

pod배포

helloworld(ARGO CD HelloWorld)예제에 있는 pod를 수동으로 배포해보겠습니다.

pod.yaml파일을 생성합니다.

cat <<EOF > pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: argocd-helloworld
  labels:
    name: argocd-helloworld
spec:
  containers:
  - name: argocd-helloworld
    image: nginx
    resources:
      limits:
        memory: "64Mi"
        cpu: "0.2"
    ports:
      - containerPort: 80
EOF

그리고 kubectl apply로 배포합니다.

kubectl apply -f pod.yaml

라벨 확인

배포된 pod라벨을 확인해볼게요.

kubectl -n default describe po argocd-helloworld

yaml파일에 정의한 것처럼 label이 name필드밖에 없습니다.

Argocd Application 생성

ArgoCD Application을 생성합니다(ARGO CD HelloWorld 참고). 생성할 때 Sync Policy는 Manual로 설정합니다.

argocd-helloworld pod는 이미 생성되어 있기 때문에, ArgoCD Application이 pod를 생성하지 않습니다. 대신 ArgoCD에서 pod를 관리하기 위해 라벨을 추가합니다. pod를 선택하고 Diff로 리소스를 비교하면 ArgoCD가 라벨을 추가하려는 것을 알 수 있습니다.

Sync버튼을 눌러 동기화작업을 실행합니다.

pod라벨을 다시 확인하면 ArgoCD 라벨이 새로 생겼습니다. 라벨이 있다는 의미는 ArgoCD가 pod를 관리하고 있다는 것입니다.

kubectl -n default describe po argocd-helloworld

삭제 시 주의사항

ArgoCD Application을 삭제하면 어떻게 될까요? pod는 ArgoCD로 생성하지 않았습니다. 하지만, Application 관리범위에 있으므로, Application삭제 시 같이 삭제됩니다.

WEB UI에서 Delete버튼을 클릭하여 ArgoCD Application을 삭제합니다.

pod목록을 확인하면 pod가 삭제된 것을 확인할 수 있습니다.

kubectl -n default get po argocd-helloworld
PreviousArgoCD로 관리되는지 확인Nexthelm chart

Last updated 2 years ago