-
client-go 와 controller-runtime의 관계Kubernetes 2025. 3. 25. 09:22728x90
client-go는 무엇인가?
• client-go는 Kubernetes 프로젝트 하위에 있는 공식 Go 클라이언트 라이브러리
• 위치: https://github.com/kubernetes/client-go
• 원래는 Kubernetes의 k8s.io/kubernetes 코드베이스 내부에 있던 것을 분리해서 라이브러리화한 것
• kubectl도 내부적으로 client-go를 사용해요
만든 주체 Kubernetes 프로젝트 (CNCF 산하, Go로 작성) 관리 위치 https://github.com/kubernetes/client-go 소유권 Kubernetes SIG API Machinery 팀 라이선스 Apache 2.0 • kubebuilder는 Kubernetes Operator를 Go로 쉽게 개발할 수 있게 해주는 프레임워크입니다.
• 내부적으로 **controller-runtime**이라는 추상화 라이브러리를 사용합니다.
• 그리고 controller-runtime이 client-go 위에 얹힌 상위 레벨 추상화입니다.
Kubernetes API ↑ client-go ↑ controller-runtime ↑ kubebuilder관계 요약:
항목 설명 client-go Kubernetes API를 직접 다루는 저수준 Go 클라이언트 controller-runtime client-go를 감싼 고수준 컨트롤러 프레임워크 kubebuilder controller-runtime 기반으로 Operator 개발을 쉽게 해주는 CLI/구조 생성기 728x90'Kubernetes' 카테고리의 다른 글
CRD를 생성하면 벌어지는 일들 (0) 2025.03.25 KubeBuilder와 Operator SDK의 관계 (0) 2025.03.25 calico vs cilium (0) 2025.03.25 Kubernetes Network 구성 (0) 2025.03.25 StatefulSet + headless service 조합의 사용 (0) 2025.03.23