Kubernetes API 애그리게이션 레이어

Kubernetes API 애그리게이션 레이어 (Kubernetes API Aggregation Layer)

애그리게이션 레이어(aggregation layer)는 핵심 Kubernetes API가 제공하는 것 이상으로 추가 API로 Kubernetes를 확장할 수 있게 해줘요. 추가 API는 metrics server 같은 기성 솔루션이거나, 직접 개발하는 API일 수 있어요.

애그리게이션 레이어는 커스텀 리소스 정의(Custom Resource Definitions)와는 달라요. CRD는 kube-apiserver가 새로운 종류의 객체를 인식하게 하는 방법이에요.

출처: 문서

본문

애그리게이션 레이어 (Aggregation layer)

애그리게이션 레이어는 kube-apiserver와 같은 프로세스 안에서 실행돼요. 확장 리소스가 등록될 때까지 애그리게이션 레이어는 아무것도 하지 않아요. API를 등록하려면 APIService 객체를 추가해요. 이것이 Kubernetes API에서 URL 경로를 "차지(claim)"해요. 그 시점부터 애그리게이션 레이어는 그 API 경로(예: /apis/myextension.mycompany.io/v1/…)로 보내지는 모든 것을 등록된 APIService로 프록시해요.

APIService를 구현하는 가장 흔한 방법은 클러스터에서 실행되는 파드에 확장 API 서버를 실행하는 것이에요. 확장 API 서버로 클러스터의 리소스를 관리한다면, 확장 API 서버("extension-apiserver"라고도 함)는 보통 하나 이상의 컨트롤러와 짝을 이뤄요. apiserver-builder 라이브러리는 확장 API 서버와 관련 컨트롤러 모두를 위한 스켈레톤을 제공해요.

응답 지연 시간 (Response latency)

확장 API 서버는 kube-apiserver와의 네트워킹 지연 시간이 낮아야 해요. 디스커버리 요청은 kube-apiserver에서 왕복이 5초 이내여야 해요. 확장 API 서버가 그 지연 시간 요구 사항을 달성할 수 없다면, 그것을 충족시킬 수 있게 하는 변경을 고려해 보세요.

다음 단계

또는: 커스텀 리소스 정의를 사용해 Kubernetes API를 확장하는 방법 배우기.

더 알아보기 (Learn more)