Controllers는 ETCD에 저장된 객체의 상태를 모니터링하고, 객체를 생성/수정/삭제한다. 또한, 반복해서 동작하는 프로세스 또는 코드이며 지속적으로 쿠버네티스 클러스터를 모니터링하면서 특정 객체의 이벤트를 감지한다.
그중 Custom Controllers는 사용자 정의 리소스(Custom Resources)를 관리하는 컨트롤러에 해당한다.
Custom Controllers
코드 작성은 필요하지만, 인증과 같은 공통 태스크 처리를 구현한 클라이언트 라이브러리를 사용하면 되기 때문에 API 호출 맟 요청/응답을 직접 구현할 필요는 없다.
클라이언트 라이브러리
https://kubernetes.io/ko/docs/reference/using-api/client-libraries/
구축 방법
1. 개발할 프로그래밍 언어의 클라이언트 라이브러리 저장소를 clone 한다.
2. 사용자 정의 로직으로 컨트롤러를 수정한다.
3. 코드를 빌드한다.
4. Kubernetes API에 인증할 수 있도록 kubeconfig 파일을 지정하여 코드를 실행한다.
배포 방법
컨트롤러를 Docker image로 패키징 한다.
Kubernetes 클러스터 내에 Pod 또는 Deployment로 배포한다.