본문 바로가기
Orchestration/Karmada

Karmada 란?

by wlsdn3004 2023. 4. 21.
728x90
반응형

 

 

Kubernetes는 대규모 분산 시스템에서 애플리케이션을 배포, 관리 및 확장하는 데 사용되는 인기 있는 컨테이너 오케스트레이션 툴이다. Kubernetes는 노드 그룹을 클러스터로 조직하고, 컨테이너를 클러스터의 노드에 배포하여 스케일링, 로드 밸런싱, 고가용성, 로깅 및 모니터링을 가능하게 한다.

그러나 많은 Kubernetes 사용자들은 여러 클러스터를 운영하게 되면, 클러스터 간의 통신과 작업 분배, 리소스 할당 및 오케스트레이션을 수동으로 관리해야 하는 어려움에 직면하게 된다. 이를 해결하기 위해 Karmada는 여러 개의 Kubernetes 클러스터를 하나의 큰 클러스터처럼 관리할 수 있게 해 주며, 이를 통해 리소스를 공유하고 작업을 분산시킬 수 있다.

 

Karmada란?

Karmada는 CNCF에 등재된 sandbox project로 Kubernetes 클러스터 간 작업을 효과적으로 분산시키는 분산 작업 관리 도구이다. Karmada를 사용하면 여러 Kubernetes 클러스터를 하나의 큰 클러스터처럼 사용할 수 있다. 이를 통해 리소스 활용률을 높일 수 있다.

 

Karmada의 아키텍처는 아래와 같다.

 

Karmada의 Control-Plane은 Kubernetes와 유사한 구조를 띄고 있다.

 

ETCD는 karmada API 오브젝트를 저장하는 데이터베이스이고, API Server는 다른 모든 구성 요소가 통신하는 REST 엔드포인트이며, Controller Manager는 API 서버를 통해 생성된 API 오브젝트를 기반으로 작업을 수행한다.

 

Karmada Controller Manager는 다양한 컨트롤러를 실행한다. 이 컨트롤러는 Karmada 오브젝트를 감시하고, 클러스터의 API 서버와 통신하여 Kubernetes 리소스를 생성한다.

 

컨트롤러의 역할을 더 자세히 알아보자.

  • Cluster Controller
    Kubernetes 클러스터를 Karmada에 연결하여 클러스터 오브젝트의 라이프사이클을 관리하는 컨트롤러.

  • Policy Controller
    PropagationPolicy 오브젝트를 감시한다. PropagationPolicy 오브젝트가 추가되면, 컨트롤러는 resourceSelector와 일치하는 리소스 그룹을 선택하고 각각의 리소스 오브젝트와 함께 ResourceBinding을 생성.

  • Binding Controller
    ResourceBinding 오브젝트를 감시하고, 각 클러스터마다 단일 리소스 매니페스트와 함께 Work 오브젝트를 생성.

  • Execution Controller
    Work 오브젝트를 감시하고, Work 오브젝트가 생성되면, 컨트롤러는 Member 클러스터에 리소스를 분배.

 

Karmada의 컨셉은 아래와 같다.

Resource Template과 Propagation Policy를 사용하여 생성된 리소스는 Karmada Controller Manager를 통해 member클러스터에 전파되어 Kubernetes 오브젝트를 배포하게 된다.

 

  • Resource Template
    Kubernetes Native API 정의를 사용하여 페더레이션 리소스 템플릿을 구성한다. 기존에 이미 적용되어 있는 Kubernetes 도구와 쉽게 통합되도록 도와주기 때문에 사용자들은 기존에 사용하던 방식으로 Karmada를 사용할 수 있다.

  • Propagation Policy
    사용자는 워크로드를 생성할 때마다 스케줄링 제약 조건을 설정하지 않아도 되고, 정책:워크로드의 1:n 매핑을 지원하여 정책을 여러 워크로드에 연결할 수 있다.

  • Override Policy
    사용자가 특정 클러스터에서 사용할 이미지 prefix나 StorageClass 등을 지정할 수 있도록 해준다. 이를 통해 사용자는 멤버 클러스터에 따라 다른 구성을 사용할 수 있다.

 


마치며

Karmada의 기본적인 내용에 대해 알아보았다. 

중앙 집중식 다중 클라우드 관리, 고가용성, 장애 복구 및 트래픽 스케줄링 같은 기능이 장점인 만큼 다중 클러스터 환경에서 사용하기에 한 번쯤은 고려해 볼 만한 솔루션인 것 같다.  다음 포스팅에서는 직접 구축해 보는 실습을 다뤄보겠다.

반응형

'Orchestration > Karmada' 카테고리의 다른 글

Karmada 설치  (0) 2023.04.21

댓글