ArgoCD application controller의 샤딩 방식

ArgoCD application controller는 주기적으로 app을 싱크하는 역할을 하는 ArgoCD의 주요 컴포넌트입니다. application의 변경사항을 추적하는 역할을 하는만큼, 그 수가 증가하면 부하가 심해지게 되는데, ArgoCD는 HA를 위해 샤딩을 지원합니다.


1. Application Controller는 기본적으로 Statefulset으로 배포됩니다. 만약 HA를 위해 파드를 늘려야 한다면, spec.replicas를 늘림과 동시에 ARGOCD_CONTROLLER_REPLICAS라는 환경변수도 세팅을 해야합니다.


2. ARGOCD_CONTROLLER_REPLICAS 값은 내부적으로 샤드를 구성하는데 사용됩니다. 샤딩 알고리즘은 다음과 같습니다.

- legacy: hash 값을 기반으로 작업을 분배하는 알고리즘 (기본값)

- RoundRobin: 순차적으로 하나씩 작업을 균등하게 분배하는 방식

- ConsistentHashing: Consistent Hashing을 기반으로 분배하는 방식(출시 X)


3. 파드 증설을 위해서 ARGOCD_CONTROLLER_REPLICAS 값을 변경하면, statefulset은 모든 파드를 다시 재시작하면서 다시 샤드를 구성합니다. 만약 파드 재시작 없이 동적으로 파드를 늘리고 싶다면, ARGOCD_ENABLE_DYNAMIC_CLUSTER_DISTRIBUTION 환경변수를 true로 설정하시면 됩니다.


4. Dynamic Distribution이 활성화되면, 내부적으로 configmap에 샤드 매핑 정보를 저장합니다. 그리고 각 파드의 Readiness Check 시에 샤드를 재분배하도록 합니다. 기본적으로 10초에 한번씩 업데이트를 진행합니다.


버전 업그레이드나 클러스터 마이그레이션 등 ArgoCD 파드를 옮길 때, 가용성을 위해서 2대 이상을 띄우려고 보니 실제로는 샤딩이 되는 구조였습니다. 혹시나 HA를 고민하고 계신 분이 있다면, 한번쯤 동작 방식을 확인해보시면 좋을 것 같습니다!


https://blog.techchallengearena.com/p/argocd-sharding-method


#devops #argocd #kubernetes

ArgoCD Sharding Method

Techchallengearena

ArgoCD Sharding Method

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 7월 1일 오후 7:47

댓글 0

    함께 읽은 게시물

    99%가 코딩 공부를 실패하는 이유

    코딩 배울 때 피해야 할 공부법과 해결책 글을 읽고 핵심을 간략하게 정리해서 제 생각과 함께 공유합니다. 1️⃣ 튜토리얼에 의존하게 되는 경우 처음 배울 때 튜토리얼을 찾아서 샘플 어플도 따라 만들어 본다. 그후에 혼자서 스스로 어플을 만들려면 머릿속이 백지처럼 변한다. 마치 안 배웠던 것처럼 까먹고 무엇을 어디서부터 어떻게 시작해야 하는지 모른다. 튜토리얼만 무조건 따라 한다고 기술을 습득할 수 있는 건 아니다. 튜토리얼을 따라 하면서 중요한 것은 관련 지식을 '내 것'으로 만드는 것이다. 관련 지식을 내 것으... 더 보기

    Why 99% of People Fail to Learn to Code

    Medium

    Why 99% of People Fail to Learn to Code

     • 

    댓글 2 • 저장 77 • 조회 5,897


    AI 시대, 데이터 분석에 대해 새롭게 정의해야 하는 이유

    AI 시대를 맞이하면서 우리는 다양한

    ... 더 보기

    혁신과장형 가짜 프로젝트에 대응하는 방안

    ‘혁신 과장형’ 프로젝트의 스폰서는 성장욕구가 강하고 프로젝트가 조직에 미치는 영향력이 크다. 조직에 영향력이 큰 가짜 프로젝트를 리딩하기 위해서는 똑똑하고 조직에서 잘 나가는 사람이 그런 스폰서가 될 가능성이 높다. 똑똑하고 욕망이 강한 스폰서는 PM에게 매우 위험하다. 왜냐하면 그 스폰서에게 프로젝트는 본인의 성공을 위한 수단이기 때문에 PM을 논리적이면서도 강하게 밀어붙이기 때문이다.

    ... 더 보기

    한 장에 메시지 하나만

    

    ... 더 보기

    클로드 코드 Max 한 달 사용 후기

    ... 더 보기

    클로드 코드 한 달 사용 후기

    K리그 프로그래머

    클로드 코드 한 달 사용 후기

     • 

    댓글 2 • 저장 7 • 조회 2,195


    MCP 모르면 대체 얼마나 손해 보는 걸까?🤔

    ... 더 보기

    MCP 모르면 대체 얼마나 손해 보는 걸까? | 요즘IT

    요즘IT

    MCP 모르면 대체 얼마나 손해 보는 걸까? | 요즘IT