본문 바로가기

TIL/개인공부

[TIL] CRD, CR, Operator

반응형

CRD (Custom Resource Definition)

쿠버네티스에서 새로운 유형의 리소스를 만들기 위한 정의 파일. 즉, 쿠버네티스 리소스를 선언할때 사용되는 Kind부분에 명시되는 요소.

# jaeyung.yaml
apiVersion: "extension.example.com/v1"
kind: Jaeyung
metadata:
  name: Jaeyung-container
...

 

위와같은 쿠버네티스 정의 yaml파일을 적용하게되면 당연히 Jaeyung이라는 리소스는 존재하지않는다 라는 에러가 발생함. 따라서 CRD를 통해서 Jaeyung이라는 리소스를 정의 할 수 있음.

 

CR (Custom Resource)

위에서 얘기한 Jaeyung 이 이제 CR로 해석될수있음.

 

오퍼레이터 (Operator)

CRD는 단순히 리소스에 대한 정의를 세울뿐, 동작에 대한 요소는 포함되지않음. 따라서 동작을 위한 정의를 세우기 위해 오퍼레이터를 선언함.

개발에 사용되는 언어는 기본적으로 Golang이며 (Helm, Ansible도 제공하지만 비주류인듯), operator-sdk 툴을 이용해서 프로젝트 생성하는걸로 이해함.

 

Installation Guide

Install operator-sdk Follow the steps in the installation guide to learn how to install the operator-sdk CLI tool. Additional Prerequisites git go version 1.21 docker version 17.03+. kubectl and access to a Kubernetes cluster of a compatible version.

sdk.operatorframework.io

그래서 쿠버네티스 개발을 위해서라면 Golang을 공부해야할것같음.

특정 리소스에 대한 동작을 컨트롤러(Controller)라고 하는데, 쿠버네티스 개발자가 아닌이상 컨트롤러를 개발하기는 어렵고 이에 대응하는 오퍼레이터를 개발하는것 같음.

 

Golang

Twitch, Uber, Paypal등 큰 기업의 서비스가 Golang으로 제작되었음.

https://go.dev/play/

- 온라인에서 Golang을 컴파일할수있는 URL

 

Go Playground - The Go Programming Language

Press Esc to move out of the editor. // You can edit this code! // Click here and start typing. package main import "fmt" func main() { fmt.Println("Hello, 世界") } About the Playground The Go Playground is a web service that runs on go.dev's servers. Th

go.dev

 

반응형