[k8s] operator-sdk(Go)로 memcahce 오퍼레이터 구축하기 - 1
[k8s] operator-sdk(Go)로 memcahce 오퍼레이터 구축하기 - 2
위의 두 단계에서 한 내용을 요약해보자
1. 현재 폴더에 Operator project를 설정한다
operator-sdk로 초기화를 한다
operator-sdk init --domain example.com --repo github.com/example/memcached-operator
2. API와 Controller 를 생성한다
operator-sdk create api --group cache --version v1alpha1 --kind Memcached --resource --controller
CR을 위한 API와 Controller 생성이 된다
CRD 와 Controller 로직을 위한 '기본 코드'가 생성된다
3. 코드 살피기
API코드 :
경로 : /memcached-operator/api/v1alpha1
operator의 version 설정이나 , CR의 spec이나 Status를 정의한다
CR 파일 :
경로 : /memcached-operator/config/samples
memcache의 리소스를 정의한다
Controller 파일 :
경로 : memcached-operator/internal/controller
operator에서 할 일을 구현한다
4. make install
CRD를 k8s에 등록(설치)하여 CR을 사용할 수 있게 한다
config/crd/bases/cache.example.com_memcacheds.yaml 에서 정의된 CRD가 k8s 에 등록이 된다
5. make run
operator의 Controller를 실행한다
Operator가 Cluster에 연결이 되어 , local 에서 k8s의 리소스를 관리하게 된다
Operator는 k8s에 직접 배포하고 등록하는 개념이 아닌, 로컬에서 go 프로세스를 띄우는 것이다
6. CR을 k8s에 등록
kubectl apply -f config/samples/cache_v1alpha1_memcached.yaml
6. CR 스펙 변경 후 적용
kubectl apply -f config/samples/cache_v1alpha1_memcached.yaml
7. Operator를 docker 이미지로 build & push
make docker-build docker-push IMG="example.com/memcached-operator:v0.0.1"
Operator 구현이 완성되었다며
operator를 다른 곳에서도 쓸 수 있게 hub에 올린다
5. Operator를 k8s에 배포
make deploy IMG="example.com/memcached-operator:v0.0.1"
hub에 올렸던 Operator 이미지를 배포한다
make run으로 local에서 Operator를 올려서 테스트 했었다면
실제 운영에선 Operator를 k8s 에 등록해서 사용한다.
make run : main.go를 실행하여 local 에서 k8s 의 CRD 모니터링
deploy operator IMG : k8s에 Operator를 등록하여 해당 CRD 모니터링
'k8s' 카테고리의 다른 글
[k8s] operator-sdk(Go)로 memcahce 오퍼레이터 구축하기 - 2 (0) | 2024.11.15 |
---|---|
[k8s] operator-sdk(Go)로 memcahce 오퍼레이터 구축하기 - 1 (0) | 2024.11.14 |
[k8s] CRD->CR->Operator(kopf python) 만들기 (0) | 2024.08.27 |
[K8s] ClusterIP vs Headless vs Nodeport vs LoadBalancer ( ft. Ingress) (0) | 2024.08.22 |
centos 9 - k8s 구성하기 (master, worker01,worker02) (3) | 2024.08.02 |