Kubernetes API 애그리게이션 레이어

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

애그리게이션 레이어를 이용하면 Kubernetes를 핵심 API 너머의 추가 API로 확장할 수 있어요. 추가 API는 metrics server 같은 준비된 솔루션이거나, 직접 개발한 API일 수 있어요.

애그리게이션 레이어는 kube-apiserver가 새로운 종류의 객체를 인식하도록 하는 Custom Resource Definitions와는 달라요.

애그리게이션 레이어

애그리게이션 레이어는 kube-apiserver 프로세스 안에서(in-process) 실행돼요. 확장 리소스가 등록되기 전까지는 아무것도 하지 않아요. API를 등록하려면 APIService 객체를 추가하는데, 이 객체가 Kubernetes API의 URL 경로를 "소유(claim)"해요. 그러면 애그리게이션 레이어는 그 API 경로(예: /apis/myextension.mycompany.io/v1/…)로 보내진 모든 것을 등록된 APIService로 프록시해요.

APIService를 구현하는 가장 흔한 방법은 클러스터의 Pod에서 extension API server(extension-apiserver)를 실행하는 것이에요. extension API server로 클러스터의 리소스를 관리한다면, 보통 하나 이상의 컨트롤러와 함께 사용돼요. apiserver-builder 라이브러리는 extension API server와 관련 컨트롤러 양쪽의 골격을 제공해요.

응답 지연 (Response latency)

extension API server는 kube-apiserver와의 네트워크 지연이 낮아야 해요. Discovery 요청은 kube-apiserver에서 5초 이내에 왕복해야 해요. 이 지연 요구를 달성할 수 없다면 그에 맞게 변경을 고려하세요.

더 알아보기 (Learn more)