Kubernetes

Kubernetes에서 Roboflow Inference를 시작하는 방법

업데이트: Roboflow Enterprise 고객인 경우 다음을 사용하여 Kubernetes 환경에 Roboflow Inference Service를 배포할 수 있습니다 this Helm chart.

또는 다음은 포드와 서비스를 Kubernetes 클러스터에 배포하기 위한 간단한 Kubernetes 매니페스트입니다.

아래 Kubernetes 매니페스트는 단일 CPU 기반 roboflow infer 포드를 생성하고 여기에 cluster-IP 서비스를 연결하는 간단한 예시를 보여줍니다.

# Pod
---
apiVersion: v1
kind: Pod
metadata:
  name: roboflow
  labels:
    app.kubernetes.io/name: roboflow
spec:
  containers:
  - name: roboflow
    image: roboflow/roboflow-inference-server-cpu
    ports:
    - containerPort: 9001
      name: rf-pod-port


# Service
---
apiVersion: v1
kind: Service
metadata:
  name: rf-service
spec:
  type: ClusterIP
  selector:
    app.kubernetes.io/name: roboflow
  ports:
  - name: rf-svc-port
    protocol: TCP
    port: 9001
    targetPort: rf-pod-port

(위 예시는 Kubernetes 클러스터가 Docker Hub에서 이미지를 다운로드할 수 있다고 가정합니다)

위의 yaml 블럭을 다음 이름으로 저장하세요 roboflow.yaml 그리고 kubectl 클러스터의 기본 네임스페이스에 포드와 서비스를 배포하려면 CLI를 사용하세요.

kubectl apply -f roboflow.yaml

서비스(type: ClusterIP)가 생성됩니다; Kubernetes 클러스터 내부에서 다음 URI로 Roboflow inference에 접근할 수 있습니다: http://rf-service.default.svc:9001

이 예시를 넘어서

Kubernetes는 Roboflow inference 서비스에 여러 고급 기능과 확장을 통합할 수 있는 기능을 제공합니다. 예를 들어 위 예시를 확장하여 다음과 같은 더 고급 사용 사례에 적용할 수 있습니다:

  • nodeSelector를 사용하여 포드를 Kubernetes 환경 내의 GPU 머신 노드 풀에 호스팅하고 roboflow/inference-server:gpu 매개변수에 대해 입력 이미지를 선택하세요. 예측에는 모델 결과를 선택하세요. 선택적 구성 속성을 사용하여 경계 상자의 색상과 크기를 변경할 수 있습니다.

  • Roboflow inference 서비스를 수평으로 자동 확장하는 Kubernetes Deployment를 생성하고 CPU 사용량과 같은 특정 메트릭을 기반으로 자동 확장 트리거를 설정합니다.

  • nodePort나 LoadBalancer와 같은 다른 서비스 유형을 사용해 Roboflow inference 서비스를 외부에 제공하기

  • Ingress 컨트롤러를 사용해 TLS(HTTPS) 등으로 Roboflow inference를 노출하기

  • Roboflow inference 서비스에 모니터링 및 경보 추가하기

  • 라이선스 서버 및 오프라인 모드 통합하기

Last updated

Was this helpful?