argocd 4

[ArgoCD] App of Apps 패턴으로 서비스 배포하기

개요 argocd app of apps 공식문서 서비스는 GitOps Repo 와 ArgoCD 를 이용하여 자동 배포, Declarative Setup 를 달성했다. 그러나 ArgoCD 에 Application 을 생성할때는 UI 클릭을 통해 생성한다. 다른 클러스터로 생성돼있는 Application 을 모두 이전해야한다면 Web UI 클릭으로 실수 없이 가능할까? Application 을 Web UI 로 수정하다보면 수정 기록은 어디서 확인 할 수 있으며, 해당 관리자가 변경될때는 history 관리는 어떻게 할것인가? App of Apps 패턴은 ArgoCD 를 이용하여 여러 클러스터에 동일 어플리케이션을 배포할 수 있는 장점과 GitOps 의 장점을 100% 활용할 수 있다. App of Apps ..

DevOps, Infra 2023.11.21

[ArgoCD]카나리 배포 (Canary Deployment)

1. Rollout 플러그인 설치 # argo-rollouts namespace 생성 kubectl create namespace argo-rollouts # argo-rollouts latest 버전 설치 kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml Canary 배포를 하려면 ArgoCD Rollout 플러그인 설치가 필요하다. 참고 : ArgoCD Rollouts 2. GitOps 2.1. Rollout.yml Blue Green 배포때 작성했던 Rollout 과 마찬가지로 apiVersion : argoproj.io/v1alpha1 kind:..

DevOps, Infra 2022.12.30

[ArgoCD] 블루그린 배포(Blue Green Deployment)

1. Rollout 플러그인 설치 # argo-rollouts namespace 생성 kubectl create namespace argo-rollouts # argo-rollouts latest 버전 설치 kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml Blue Green 배포를 하려면 ArgoCD Rollout 플러그인 설치가 필요하다. 참고 : ArgoCD Rollouts 2. GitOps 2.1. Rollout.yml apiVersion : apps/v1 대신 argoproj.io/v1alpha1를 사용한다. kind : Deployment 대..

DevOps, Infra 2022.12.30

[ArgoCD] 롤링 배포 (Rolling Deployment)

1. GitOps 1.1. deployment 1. minReadySeconds 설정 spec.minReadySeconds은 pod의 status가 ready가 될 때까지의 최소 대기시간이다. pod가 실행되고나서 .spec.minReadySeconds에 설정된 시간동안은 트래픽을 받지 않는다. 2. Pod Anti-affinity 설정 이 설정은 pod가 여러 node 에 균일하게 배포되는것을 보장한다. 만약 replicas를 3으로 설정하였는데 모두 하나의 node에 배포되고 해당 node가 장애로 다운된다면 해당 서비스 또한 당분간 아예 서비스가 되지 않는다. 하지만 Pod Anti-affinity 설정으로 최대한 동일한 pod가 같은 node에 배포되는것을 방지하여 장애에 강한 서비스를 만들 수 ..

DevOps, Infra 2022.12.30