Kubernetes

KubernetesでのRoboflow Inferenceの始め方

更新:Roboflowエンタープライズカスタマーの場合、Helmチャートを使用してKubernetes環境にRoboflow Inference Serviceをデプロイできます。 このHelmチャート.

または、KubernetesクラスターにポッドとサービスをデプロイするためのシンプルなKubernetesマニフェストはこちらです。

以下のKubernetesマニフェストは、単一のCPUベースのroboflow inferポッドを作成し、それにクラスタIPサービスを接続するシンプルな例を示しています。

# ポッド
---
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


# サービス
---
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を使って、Kubernetesクラスターのデフォルトネームスペースにポッドとサービスをデプロイします。

kubectl apply -f roboflow.yaml

サービス(ClusterIPタイプ)が作成されます。Kubernetesクラスター内から以下のURIでRoboflow推論にアクセスできます: http://rf-service.default.svc:9001

この例を超えて

Kubernetesを使うことで、Roboflow推論サービスにさまざまな高度な機能や拡張機能を組み込むことができます。例えば、上記の例を拡張して、より高度なユースケースに対応できます。

  • nodeSelectorsを使用して、Kubernetes環境内のGPUマシンノードプールにポッドを配置し、 roboflow/inference-server:gpu 画像

  • Kubernetesデプロイメントを作成してRoboflow推論サービスを水平オートスケールし、CPU使用率などの特定のメトリクスに基づいてオートスケーリングトリガーを設定します。

  • nodePortやLoadBalancerなどの異なるサービス種別を使用して、Roboflow推論サービスを外部に公開する

  • イングレスコントローラーを使用して、Roboflow推論をTLS(HTTPs)経由で公開するなど

  • Roboflow推論サービスに監視とアラートを追加する

  • ライセンスサーバーやオフラインモードの統合

Last updated

Was this helpful?