쿠버네티스 관련 사전 지식이 필요.
아직 익숙치 않다면 Seldon Core의 사용방식만 익히고 넘어가자
작성자 본인은 아직 쿠버에 익숙하지 않다.
그러니 더 공부할 예정....
https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
CR은 쿠버네티스의 API 확장판
쿠버네티스가 기본적으로 관리하는 리소스들에는 Pod, Deployment, Service, persistenetVolume 등이 있다.
BUT!! 유저가 직접 정의한 리소스를 쿠버네티스에의 API를 사용해서
관리하고 싶은 경우, Custom Resouces와 해당 CR의 라이프 사이클과
동작을 관리할 컨트롤러 (혹은 API 서버)를 구현 후, 쿠버네티스 클러스터에 배포해야한다.
쉽게 말하면, 쿠버네티스에서 default로 관리하지는 않지만,
배포된 Custom Controller에 의해 쿠버네티스에서 관리되고 있는 리소스들이다.
https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
Controller
Operator
Operator 개발 방법
쿠버네티스 모듈의 Package Managing tool
- 우분투 OS의 패키지 관리 도구 apt, Mac os의 패키지 관리 도구 brew와 비슷
하나의 쿠버네티스 모듈은 다수의 리소스들을 포함하고 있는 경우가 많다.
Helm은 이러한 작업들을 템플릿화 시켜서 많은 수의 리소스들을
마치 하나의 리소스처럼 관리할 수 있게 도와주는 도구.
$ minikube start --driver=docker --cpus='4' --memory='4g'
v3.0 이상
linux
# https://github.com/helm/helm/releases 에서 link 확인
$ wget <URL>
# 압축 풀기
$ tar -zxvf <zip 파일명>
# 바이너리 PATH로 이동
$ mv linux-amd64/helm /usr/local/bin/helm
# helm 동작 확인
$ helm help
brew install helm
# ambassador를 install하기 위해 public하게 저장된 helm repository 등록
$ hepl repo add datawire https://www.getambassador.io
# helm repo update
$ helm repo update
# helm install ambassador with some configuration
$ helm install ambassador datawire/ambassador \
--namespace seldon-system \
--create-namespace \
--set image.repository=quay.io/datawire/ambassador \
--set enableAES=false \
--set crds.keep=false
# 정상 설치 확인
$ kubectl get pod -n seldon-system -w
$ kubectl get pod -n seldon-system
안녕하세요. 궁금한 부분이 있어서 댓글을 작성합니다.
지금 리눅스 20.04 서버 환경에서 seldom core 를 설치중인데,
helm install ambassador datawire/ambassador \
--namespace seldon-system \
--create-namespace \
--set image.repository=quay.io/datawire/ambassador \
--set enableAES=false \
--set crds.keep=false
에서 아래와 같은 에러가 계속 발생하는데, 검색을 해봐도 솔루션을 찾기가 힘드네요...
Error: failed to install CRD crds/filter.yaml: unable to recognize "": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"
혹시 설치가 되는 방법이 있을지 문의 드립니다.~~