[오픈소스 아키텍처 스터디 #1 kubernetes] 02. kubectl ➡️ kube-apiserver, controller-manager
kubectl
명령어는 kube-apiserver
를 통해 쿠버네티스 클러스터와 통신하며, 선언적 API를 사용해 관리 자동화를 수행합니다. ⚙️
kubectl create deployment
명령어 실행 과정을 분석하기 위해, cobra
라이브러리를 사용한 명령 파싱과 플러그인 구조를 살펴봅니다. 🐍
cobra
는 Go 언어에서 CLI 프로그램 개발을 쉽게 만들어주는 패키지로, 커맨드 트리를 구성하고 실행합니다. 🌳
- 쿠버네티스 1.30.0 버전을 기준으로 코드 분석을 진행하며, 최신 버전과의 차이점을 고려합니다. 🕰️
kubectl
은 클라이언트 프로그램으로, 서버와 분리되어 독립적으로 개발 및 배포될 수 있습니다. 📡
- 의존성 주입 패턴을 사용하여 테스트 용이성을 높이고, 다양한 입력 스트림을 처리할 수 있도록 설계되었습니다. 💉
- 플러그인 아키텍처를 통해 사용자는
kubectl
을 업데이트하지 않고도 새로운 기능을 확장할 수 있습니다. 🧩
kubectl
명령어들은 그룹화되어 있으며, create
명령어는 파일 또는 인자를 통해 리소스를 생성하는 두 가지 방식을 지원합니다. 📂