
kubectl get, kubectl create 등으로 Custom Resource 객체는 다룰 수 있음| 구성 요소 | 설명 |
|---|---|
| Looping Process | 지속적으로 Kubernetes API 서버의 변경사항을 감시 |
| Event 감지 | 리소스 생성/수정/삭제 이벤트를 수신 |
| 동작 실행 | 비즈니스 로직 실행 (API 호출, 상태 변경 등) |
→ FlightTicket 생성 시 → controller가 API 호출로 항공권 예약 진행
| 단계 | 설명 |
|---|---|
| 1. Go 설치 | 공식 사이트 또는 패키지 매니저로 설치 |
| 2. 샘플 Repo 클론 | https://github.com/kubernetes/sample-controller |
| 3. 코드 수정 | controller.go에 비즈니스 로직 삽입 (예: API 호출 코드) |
| 4. 빌드 | go build로 바이너리 생성 |
| 5. 실행 | ./controller --kubeconfig=config.yaml |
| 6. 배포 | Docker 이미지로 패키징 → Deployment로 클러스터 내에서 실행 |
sample-controller/
├── cmd/
│ └── main.go
├── controller.go ← 여기에 비즈니스 로직 추가
├── client/ ← CRD 관련 코드
├── pkg/
└── build/ ← Dockerfile
로컬 개발 → controller.go 실행
실제 운영 시에는:
Deployment 리소스로 실행ServiceAccount, RBAC 설정 필요docker build -t my-flight-controller:latest .
kubectl create deployment flight-controller --image=my-flight-controller:latest
✅ "Custom Controller"는 결국 "Operator"의 핵심 구성 요소 중 하나야.
자동화된 운영 도구인 Operator
Operator 는 CRD, 컨트롤러, 고급 API 커스텀 설계가 하나로 통합되는 구조