
쿠버네티스에서 CVAT을 설치해보자!
일단 들어가기 앞서서 여러모로 CVAT을 쿠버네티스에서 돌리기 위해서 이것저것 하게 되었다.
첫번째 방법은 nuclio function
두번째 방법은 helm chart 이용이다.
일단 시작해보자!
nuclio function은 일종의 이미지로 배포과정에서 이미지를 레지스트리에 push하고 pull하는 작업을 거치게 되는데, 해당 작업을 하기 위해서는 도커 레지스트리가 필요하다.
나는 nexus를 활용하여 private docker registry를 구축했다.
이거에 관련해서는 이전 post에서 다뤘으니 넘어가자
helm repo add nuclio https://nuclio.github.io/nuclio/charts
helm install nuclio \
--set registry.pushPullUrl=localhost:5000 nuclio/nuclio \
--set registry.secretName=registry-credential

kubectl expose deployment nuclio-dashboard --type=NodePort --name=nuclio-nodeport
[service]
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/managed-by: Helm
name: nuclio-nodeport
namespace: nuclio
spec:
clusterIP: 10.99.69.2
clusterIPs:
- 10.99.69.2
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- nodePort: 32002
port: 8070
protocol: TCP
targetPort: 8070
selector:
app: nuclio
nuclio.io/app: dashboard
nuclio.io/class: service
nuclio.io/name: nuclio-dashboard
release: nuclio
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
helm repo add nuclio https://nuclio.github.io/nuclio/charts
helm install nuclio \
--set registry.pushPullUrl=localhost:5000 nuclio/nuclio \
--set registry.secretName=registry-credential

kubectl expose deployment nuclio-dashboard --type=NodePort --name=nuclio-nodeport
[service]
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/managed-by: Helm
name: nuclio-nodeport
namespace: nuclio
spec:
clusterIP: 10.99.69.2
clusterIPs:
- 10.99.69.2
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- nodePort: 32002
port: 8070
protocol: TCP
targetPort: 8070
selector:
app: nuclio
nuclio.io/app: dashboard
nuclio.io/class: service
nuclio.io/name: nuclio-dashboard
release: nuclio
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
nuctl create project cvat
cvat git clone한 파일로 이동해서 하기
```yaml
docker build -t localhost:5000/cvat.pth.foolwood.siammask:latest .
docker tag cvat.pth.foolwood.siammask:latest localhost:5000/cvat.pth.foolwood.siammask:latest
docker push localhost:5000/cvat.pth.foolwood.siammask:latest
nuctl deploy --project-name cvat \
--path "./serverless/pytorch/foolwood/siammask/nuclio" \
--platform kube \
--registry 192.168.58.2:5000 --run-registry localhost:5000 \
--http-trigger-service-type NodePort
nuctl deploy --project-name cvat \
# Nuclio 함수의 소스 코드 및 설정 파일이 있는 경로를 지정
--path serverless/tensorflow/faster_rcnn_inception_v2_coco/nuclio \
# 수를 실행하는 동안 마운트되는 볼륨을 지정. 이 경우 "serverless/common" 디렉토리를 "/opt/nuclio/common" 경로에 마운트
--volume serverless/common:/opt/nuclio/common \
# 함수를 배포할 플랫폼을 지정한다. 여기서는 Kubernetes 플랫폼을 사용한다는거
--platform kube \
# Kubernetes 클러스터에 연결하기 위한 kubeconfig 파일의 경로를 지정
--kubeconfig ~/.kube/config \
# Docker 이미지를 푸시하고 풀할 Docker 레지스트리의 주소
--registry localhost:5000 \
# Kubernetes의 NodePort 서비스 유형을 사용하여 함수에 대한 HTTP 엔드포인트를 제공
--http-trigger-service-type NodePort

nuctl deploy --project-name cvat \
--path "./serverless/pytorch/foolwood/siammask/nuclio" \
--platform kube \
--registry 192.168.58.2:5000 --run-registry localhost:5000 \
--http-trigger-service-type NodePort
nexus registry에 이미지 빌드

안녕하세요! 저는 CVAT에 SAM 모델 사용해보려고 하고 있습니다! nuclio 부분에 보니 error 뜨신 부분이 있던데, 저와 비슷한 이유가 아닐까 싶어서요. 제 에러 내용은 아래와 같습니다.
Error - open serverless/pytorch/facebookresearch/sam/nuclio/function.yaml: no such file or directory
/nuclio/pkg/functionconfig/reader.go:111
혹시, 이 케이스에 대한 error 를 해결하셨거나 의견 부탁드려도될까요?