쿠버네티스 API 확장하기
쿠버네티스 API 확장하기 (Extending the Kubernetes API)
쿠버네티스 API는 그 자체로도 강력하지만, 직접 나만의 리소스 타입을 추가해 확장할 수도 있어요. 이 페이지는 쿠버네티스 API를 확장하는 두 가지 방법을 소개합니다. 커스텀 리소스(CRD) 방식과 API 집계(aggregation) 레이어 방식이에요. 각각의 특징을 이해하면 어떤 방식이 내 상황에 맞는지 판단할 수 있습니다.
커스텀 리소스(Custom resources) 는 쿠버네티스 API의 확장이에요. 쿠버네티스는 클러스터에 커스텀 리소스를 추가하는 두 가지 방법을 제공합니다:
- CustomResourceDefinition (CRD) 메커니즘은 사용자가 지정한 API 그룹, 종류(kind), 스키마로 새 커스텀 API를 선언적으로 정의할 수 있게 해 줍니다. 쿠버네티스 컨트롤 플레인이 커스텀 리소스의 서빙과 저장을 처리해요. CRD를 사용하면 커스텀 API 서버를 직접 작성·실행하지 않고도 클러스터에 새 리소스 타입을 만들 수 있어요.
- 집계 레이어 (aggregation layer) 는 기본 API 서버 뒤에 위치하며 프록시 역할을 합니다. 이 구조를 API 집계(AA, API Aggregation) 라고 해요. 자체 API 서버를 작성·배포해서 커스텀 리소스에 대한 전문화된 구현을 제공할 수 있게 합니다. 기본 API 서버는 지정한 커스텀 API에 대한 요청을 사용자의 API 서버로 위임하고, 이를 모든 클라이언트가 사용할 수 있게 만들어 줍니다.