Operator Framework

Yu Sang Min·2025년 6월 21일

CKA

목록 보기
65/110
post-thumbnail

🧠 Kubernetes Operator Framework 정리


📌 1. Operator란?

"Operator = Custom Resource + Custom Controller + 패키징 및 자동화 도구"

  • 사람이 애플리케이션을 운영하는 방식(설치, 구성, 백업, 복구 등)을 자동화한 것
  • 쿠버네티스 내부 논리로 애플리케이션의 생명주기를 관리하게 해줌
  • 대표적인 예: etcd operator, MySQL operator, Prometheus operator

🧩 2. Operator 구성 요소

구성 요소설명
Custom Resource Definition (CRD)새로운 리소스 타입 정의 (e.g. EtcdCluster)
Custom ControllerCRD 변경을 감지해 실제 동작 수행
Deployment로 실행되는 Operator Pod컨트롤러가 실행되는 쿠버네티스 리소스
Operator SDK or Framework위 3가지를 자동 생성배포 패키징해주는 도구

🔁 일반적인 Operator 동작 흐름

  1. 사용자가 EtcdCluster 같은 Custom Resource 생성

  2. Operator Controller가 이를 감지

  3. 내부 로직으로:

    • etcd Pod 배포
    • ConfigMap, PVC 설정
    • 주기적 백업, 복구 등 실행
  4. 사용자가 CRD로 설정만 바꾸면 Operator가 자동 적용


🧪 예시: etcd Operator

기능어떻게 동작하나?
클러스터 생성EtcdCluster 객체 정의 → etcd Pod 자동 생성
백업EtcdBackup CR 생성 → 백업 로직 수행
복구EtcdRestore CR 정의 → 백업에서 데이터 복구
상태 관리etcd 노드 장애 감지 시 자동 복구 시도

→ 운영자가 직접 쉘로 관리하던 일을 Operator가 자동 수행


📦 Operator Framework를 사용하는 이유

  • CRD와 Controller를 개별로 따로 관리하는 대신

  • Operator Framework가 이를 하나로 묶고 배포 자동화

  • 설치 시:

    • CRD 자동 생성
    • Controller도 Deployment로 자동 배포
    • RBAC, 권한, 네임스페이스 구성 포함

📚 설치 방법 개요

  1. Operator Lifecycle Manager (OLM) 설치
    (Operator를 설치하고 관리하는 메타-Operator)

  2. OperatorHub에서 원하는 Operator 선택

  3. 간단히 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 crd
    • CRD 생성/조회
    • 리소스 목록에 CRD 표시 (kubectl api-resources)
  • 개발과 배포는 고급 주제로 심화 학습 또는 실무에서 중요


✨ 결론

Operator는 Kubernetes를 위한 운영 자동화 도구다.
CRD + Controller를 하나로 묶고, 앱 생명주기 전체를 관리하는 궁극의 운영자 역할.


📘 참고 링크

profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글