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 서버가 그 지연 시간 요구 사항을 달성할 수 없다면, 그것을 충족시킬 수 있게 하는 변경을 고려해 보세요.
다음 단계
- 환경에서 애그리게이터가 동작하게 하려면 애그리게이션 레이어 구성해요.
- 그런 다음 애그리게이션 레이어와 함께 동작하도록 확장 API 서버를 설정해요.
- API 참조에서 APIService 읽기
- 미래에 확장 API 서버 개발을 위한 검증을 지원하는 데 도움이 될, 검증 규칙을 정의하는 내부 메커니즘인 선언적 검증 개념 배우기
또는: 커스텀 리소스 정의를 사용해 Kubernetes API를 확장하는 방법 배우기.