ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • KubeBuilder와 Operator SDK의 관계
    Kubernetes 2025. 3. 25. 09:26
    728x90

    KubebuilderOperator SDK는 둘 다 Kubernetes Operator를 Go 언어로 개발하기 위한 프레임워크이지만,

    역사적 배경과 구조적으로 다르면서도 현재는 거의 “합쳐졌다”고 볼 수 있어요.

    항목 Kubebuilder Operator SDK
    만든 곳 Kubernetes SIG API Machinery (공식) Red Hat (Operator Framework 프로젝트)
    내부 구조 controller-runtime 기반 초기엔 다름, 현재는 Kubebuilder를 내부에 사용
    현재 관계 독립 CLI + scaffolding 툴 Kubebuilder 위에 Operator 관련 기능을 추가한 도구

     

    Kubebuilder란?

    Kubernetes 공식 SIG에서 개발한 Operator scaffolding 도구

    내부적으로 controller-runtime을 사용

    CRD 생성, controller 작성, webhook 등 Operator 개발 표준을 잘 따름

    Go 언어 기반

     

    📦 핵심 구성:

    controller-runtime

    controller-tools

    code-gen

     

    Operator SDK란?

    Red Hat 주도 Operator Framework의 일부

    초기에 Go 외에도 Helm, Ansible 기반 Operator 지원이 목적

    초기에는 자체 scaffolding 로직이 있었지만,

    현재는 내부적으로 Kubebuilder를 통합해서 사용

     

    -> 즉, “Go 기반 Operator를 만들 때는 사실상 Kubebuilder를 사용”한다고 보면 됩니다.

     

     

    항목 Kubebuilder Operator SDK
    Go 기반 개발 ✅ (내부적으로 Kubebuilder 사용)
    Helm 기반 Operator
    Ansible 기반 Operator
    OLM(CSV) 생성 ❌ (직접 추가 필요) ✅ 내장됨
    사용 편의성 Kubernetes-native OLM 통합에 강점
    커스터마이징 자유도 더 직접적 약간 래핑되어 있음

     

     

    상황 추천
    순수 Go 기반 Operator 개발 Kubebuilder (가볍고 직관적)
    Operator Lifecycle Manager(OLM) 연동, OperatorHub 배포 예정 Operator SDK
    Helm/Ansible 기반 Operator 원함 Operator SDK
    교육/연습 목적, 표준 도구 Kubebuilder 추천

     

     

    공통점 둘 다 Kubernetes Operator 개발을 위한 도구
    차이점 Kubebuilder는 Kubernetes SIG가 만든 공식 도구Operator SDK는 Red Hat이 만든 다기능 Operator 개발 도구
    현재 관계 Operator SDK가 Kubebuilder를 내부에 포함해 사용 (Go 기반에 한함)
    728x90
Designed by Tistory.