Operator 분석

jingyu·2022년 6월 28일
0

Kubernetes

목록 보기
2/2

Kubernetes에서 사용되는 Operator 개념에 대해 설명한다.

Operator 구조

CR(Custom Resource)

K8s에 내장된 Resource들 이외에 사용자가 필요에 따라 새로 정의한 Resource(Kubernetes API를 확장)
K8s에서는 object 종류를 직접 정의해 사용할 수 있으며 소스코드를 수정하지 않고도 API를 직접 확장해 사용할 수 있도록 인터페이스를 제공한다.
Custom Resource를 사용하면 원하는 목적의 object를 직접 구현해 사용할 수 있고 여러 리소스를 추상화해 관리할 수도 있다.
Custom Resource는 자체가 구조화된 데이터일 뿐 Custom Resource를 이용해서 원하는 동작을 하기 위해서는 Custom Controller가 필요하다.
Custom Resource를 이용해서 사용자가 원하는 상태를 선언하면(CRD) Custom Controller가 그 상태를 맞추기 위해 필요한 처리를 한다.

CRD(Custom Resource Definition)

Custom Resource가 어떤 데이터로 구성되어 있는지를 정의하는 object
Custom Resource의 데이터에 어떤 항목이 정의되어야 하는지등을 저장하는 선언적인 메타데이터 object

Kubernetes Controller

Kubernetes Controller는 기본적으로 Custom Resource의 상태를 읽어 현재 상태와 비교해 Custom Resource에 정의된 상태로 클러스터의 싱크를 맞춰주는 역할을 한다.
만약 replicaSet=3인데 노드에 문제가 생겨 Pod가 하나 죽었다면 Controller는 생성 가능한 노드에 새로운 Pod 한개를 띄워 총 3개의 Pod이 유지되도록 한다.

이렇게 Custom Resource + Custom Controller를 같이 사용하는 패턴을 오퍼레이터 패턴(Operator pattern)이라고 한다.

결국 Operator는 Kubernetes 어플리케이션을 패키징, 배포, 관리하는 방법이다.

참고로 KFServing에도 KFServing-Controller-Manager가 있다.

profile
내일을 향해 쏴라!

0개의 댓글