A.1. 용어 사전
멀티클러스터 관련 용어
Control Plane (컨트롤 플레인)
멀티클러스터 환경을 관리하는 중앙 제어 시스템입니다. MCM에서는 Karmada 기반의 컨트롤 플레인을 사용하여 여러 멤버 클러스터를 통합 관리합니다.
주요 역할:
- 멤버 클러스터 등록 및 관리
- 리소스 전파 정책 실행
- 멀티클러스터 스케줄링
- 클러스터 상태 모니터링
Member Cluster (멤버 클러스터)
컨트롤 플레인에 등록되어 관리되는 개별 Kubernetes 클러스터입니다. 실제 워크로드가 실행되는 클러스터입니다.
특징:
- 컨트롤 플레인에 에이전트가 설치됨
- 독립적인 Kubernetes 클러스터로 동작
- 여러 클라우드/온프레미스 환경에 분산 가능
Host Cluster (호스트 클러스터)
컨트롤 플레인이 설치되어 실행되는 클러스터입니다. 멀티클러스터 관리의 중심 역할을 합니다.
Push Mode / Pull Mode
멤버 클러스터와 컨트롤 플레인 간의 통신 방식입니다.
| 모드 | 설명 | 사용 사례 |
|---|---|---|
| Push Mode | 컨트롤 플레인이 멤버 클러스터에 직접 리소스를 푸시 | 네트워크 접근이 가능한 환경 |
| Pull Mode | 멤버 클러스터의 에이전트가 컨트롤 플레인에서 리소스를 풀 | 방화벽 뒤의 클러스터 |
정책 관련 용어
PropagationPolicy (전파 정책)
Kubernetes 리소스를 여러 멤버 클러스터에 배포하는 규칙을 정의하는 리소스입니다.
주요 설정:
- 대상 리소스 선택 (Resource Selector)
- 대상 클러스터 선택 (Cluster Affinity)
- 복제본 스케줄링 전략
범위:
PropagationPolicy: 네임스페이스 범위ClusterPropagationPolicy: 클러스터 범위
OverridePolicy (오버라이드 정책)
리소스가 멤버 클러스터에 전파될 때 클러스터별로 리소스 속성을 변경하는 규칙을 정의하는 리소스입니다.
오버라이더 타입:
| 타입 | 설명 |
|---|---|
imageOverrider | 컨테이너 이미지 변경 |
commandOverrider | 컨테이너 명령어 변경 |
argsOverrider | 컨테이너 인자 변경 |
labelsOverrider | 레이블 추가/수정/삭제 |
annotationsOverrider | 어노테이션 추가/수정/삭제 |
plaintextOverrider | JSON 패치를 통한 임의 필드 수정 |
fieldOverrider | 특정 필드 값 변경 |
범위:
OverridePolicy: 네임스페이스 범위ClusterOverridePolicy: 클러스터 범위
Resource Selector (리소스 셀렉터)
정책이 적용될 대상 리소스를 선택하는 조건입니다.
선택 기준:
- API Version (예:
apps/v1) - Kind (예:
Deployment) - Name (리소스 이름)
- Namespace (네임스페이스)
- Label Selector (레이블 기반 선택)
Cluster Affinity (클러스터 어피니티)
리소스가 배포될 대상 클러스터를 선택하는 조건입니다.
선택 방법:
clusterNames: 클러스터 이름 직접 지정labelSelector: 클러스터 레이블 기반 선택fieldSelector: 클러스 터 필드 기반 선택exclude: 제외할 클러스터 지정
바인딩 및 스케줄링 용어
ResourceBinding (리소스 바인딩)
전파 정책이 적용되면 생성되는 중간 리소스입니다. 리소스와 대상 클러스터 간의 바인딩 정보를 담고 있습니다.
상태:
| 상태 | 설명 |
|---|---|
Scheduled | 스케줄링 완료 |
FullyApplied | 모든 클러스터에 적용 완료 |
Applied | 일부 클러스터에 적용 |
범위:
ResourceBinding: 네임스페이스 리소스용ClusterResourceBinding: 클러스터 범위 리소스용
Work (워크)
멤버 클러스터에 실제로 전파되는 리소스 매니페스트를 담은 리소스입니다. 각 멤버 클러스터마다 별도의 Work 객체가 생성됩니다.
Replica Scheduling (복제본 스케줄링)
워크로드 복제본을 여러 클러스터에 분산하는 방식입니다.
| 타입 | 설명 |
|---|---|
Duplicated | 각 클러스터에 동일한 복제본 수 배포 |
Divided | 클러스터 간 복제본 분할 배포 |
분할 방식:
Weighted: 가중치 기반 분할Aggregated: 클러스터 리소스 기반 자동 분할
Kubernetes 기본 용어
Namespace (네임스페이스)
Kubernetes 클러스터 내에서 리소스를 논리적으로 분리하는 가상의 클러스터입니다. 팀, 프로젝트, 환경별로 리소스를 격리할 수 있습니다.
Deployment (디플로이먼트)
애 플리케이션의 선언적 업데이트를 관리하는 워크로드 리소스입니다. ReplicaSet을 관리하고 롤링 업데이트, 롤백 기능을 제공합니다.
StatefulSet (스테이트풀셋)
상태를 가진 애플리케이션을 관리하는 워크로드 리소스입니다. 고유한 네트워크 ID와 영구 스토리지를 제공합니다.
DaemonSet (데몬셋)
모든 (또는 일부) 노드에 Pod 복사본을 실행하는 워크로드 리소스입니다. 로그 수집, 모니터링 에이전트 등에 사용됩니다.
Job (잡)
일회성 작업을 실행하는 워크로드 리소스입니다. 작업이 완료되면 Pod가 종료됩니다.
CronJob (크론잡)
주기적으로 Job을 생성하여 반복 작업을 실행하는 리소스입니다. Unix cron 형식의 스케줄을 사용합니다.