-
Custom Resource 커스텀 리소스란?TECH/Kubernetes 2022. 8. 16. 11:30
Custom resources
리소스는 특정한 종류의 API 객체들의 집합을 저장하는 Kubernetes API 내의 엔드포인트이다. 예를 들어, 빌트인 파드 리소스는 파드 객체들을 가지고 있다.
Custom resource는 Kubernetes API의 확장으로, 기본 Kubernetes 설치시 반드시 사용할 수 있는 것은 아니다. Custom resource는 특정한 kubernetes 설치의 커스텀화를 나타낸다. 하지만, 많은 핵심 kubernetes functions은 custom resource를 이용하여 만들어지고, kubernetes를 더 모듈화한다.
Custom resource는 동적 등록을 통해 실행 중인 클러스터에서 사라졌다 나타났다를 할 수 있고, 클러스터 관리자는 custom resource를 클러스터 자체와 독립적으로 업데이트할 수 있다. 한번 custom resouce가 설치되면, 사용자는 kubectl 을 통해 파드와 같은 빌트인 리소스를 사용하듯이 custom resource의 객체를 생성하고 접근할 수 있다.
Custom controllers
Custom resource를 통해 구조화된 데이터를 저장하고, 가져올 수 있다. Custom resource를 Custom controller와 함께 사용하면, custom resource는 진정한 declarative(선언적) API를 제공한다.
Kubernetes declarative API는 책임의 분리를 강제한다. 리소스의 desired state를 선언하면, Kubernetes 컨트롤러는 kubernetes 객체의 현재 상태를 선언한 desired state와 동기화 한다. 이는 서버에 어떻게 할지를 명령하는 imperative(명령형) API와 대조된다.
클러스터의 라이프 사이클과 독립적으로 실행 중인 클러스터에 커스텀 컨트롤러를 배포하고 업데이트 할 수 있다. 커스텀 컨트롤러는 어떤 종류의 리소스와도 동작할 수 있지만, Custom resource와 결합했을 때 가장 효과적이다. Operator pattern은 custom resource와 custom controller를 결합한다. 특정 애플리케이션의 도메인 지식을 Kubernetes API의 확장으로 인코드 하는데 custom controller를 사용할 수 있다.
https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
'TECH > Kubernetes' 카테고리의 다른 글
Local ephemeral storage (1) 2023.10.30 Kubernetes QoS란? (kube-prometheus-stack 설치로 살펴보는) (0) 2023.01.19 Namespaces 네임스페이스란? (0) 2022.11.04 Kubernetes Components - Control Plane (0) 2022.10.13 Docker Socket이란? (0) 2021.09.14