Kubernetes API 확장
Kubernetes API 확장 (Extending the Kubernetes API)
Kubernetes는 기본 제공 리소스만으로 모든 도메인을 표현할 수는 없어요. 그래서 API를 확장해 나만의 리소스 종류를 추가하는 방법이 중요해져요. 이 문서는 Kubernetes API를 확장하는 두 가지 핵심 방법을 소개하는 진입점이에요.
출처: 문서
본문
커스텀 리소스(Custom Resource)는 Kubernetes API의 확장이에요. Kubernetes는 클러스터에 커스텀 리소스를 추가하는 두 가지 방법을 제공해요.
-
CustomResourceDefinition(CRD) 메커니즘은 API 그룹(API group), 종류(kind), 스키마(schema)를 직접 지정해 새로운 커스텀 API를 선언적으로 정의하게 해줘요. Kubernetes 컨트롤 플레인이 커스텀 리소스의 제공과 저장을 처리해요. CRD를 사용하면 별도의 커스텀 API 서버를 작성하고 실행하지 않아도 클러스터에 새로운 종류의 리소스를 만들 수 있어요.
-
애그리게이션 레이어(aggregation layer) 는 프록시 역할을 하는 기본 API 서버 뒤에 위치해요. 이 구조를 API 애그리게이션(AA, API Aggregation)이라고 해요. 나만의 API 서버를 작성·배포해서 커스텀 리소스에 특화된 구현을 제공할 수 있어요. 기본 API 서버는 지정한 커스텀 API에 대한 요청을 내 API 서버로 위임하고, 그래서 모든 클라이언트가 그 API를 사용할 수 있게 돼요.