
"Operator = Custom Resource + Custom Controller + 패키징 및 자동화 도구"
| 구성 요소 | 설명 |
|---|---|
| Custom Resource Definition (CRD) | 새로운 리소스 타입 정의 (e.g. EtcdCluster) |
| Custom Controller | CRD 변경을 감지해 실제 동작 수행 |
| Deployment로 실행되는 Operator Pod | 컨트롤러가 실행되는 쿠버네티스 리소스 |
| Operator SDK or Framework | 위 3가지를 자동 생성 및 배포 패키징해주는 도구 |
사용자가 EtcdCluster 같은 Custom Resource 생성
Operator Controller가 이를 감지
내부 로직으로:
사용자가 CRD로 설정만 바꾸면 Operator가 자동 적용
| 기능 | 어떻게 동작하나? |
|---|---|
| 클러스터 생성 | EtcdCluster 객체 정의 → etcd Pod 자동 생성 |
| 백업 | EtcdBackup CR 생성 → 백업 로직 수행 |
| 복구 | EtcdRestore CR 정의 → 백업에서 데이터 복구 |
| 상태 관리 | etcd 노드 장애 감지 시 자동 복구 시도 |
→ 운영자가 직접 쉘로 관리하던 일을 Operator가 자동 수행
CRD와 Controller를 개별로 따로 관리하는 대신
Operator Framework가 이를 하나로 묶고 배포 자동화
설치 시:
Operator Lifecycle Manager (OLM) 설치
(Operator를 설치하고 관리하는 메타-Operator)
OperatorHub에서 원하는 Operator 선택
간단히 kubectl 또는 UI로 설치
설치 예시:
kubectl apply -f https://operatorhub.io/install/etcd.yaml
OperatorHub.io
👉 https://operatorhub.io
여기서 모든 오픈소스 및 벤더 제공 Operator 확인 가능
(MySQL, Redis, Prometheus, Kafka, Argo CD 등)
CKA, CKAD, CKS 시험에서는 Operator 직접 개발은 출제되지 않음
하지만 다음은 출제 가능:
kubectl explain crdkubectl api-resources)개발과 배포는 고급 주제로 심화 학습 또는 실무에서 중요
Operator는 Kubernetes를 위한 운영 자동화 도구다.
CRD + Controller를 하나로 묶고, 앱 생명주기 전체를 관리하는 궁극의 운영자 역할.