Kubernetes

Kubernetes 上での Roboflow Inference の開始方法

更新情報:Roboflow Enterprise Customer の場合、Roboflow Inference Service を Kubernetes 環境にデプロイするには、 この Helm チャート.

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

kubectl apply -f roboflow.yaml

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

この例を超えて

Kubernetes を使うことで、Roboflow inference service にいくつかの高度な機能や拡張を組み込むことができます。たとえば、上記の例をより高度なユースケース向けに拡張できます:

  • nodeSelectors を使って Kubernetes 環境内の GPU マシンノードプールにポッドをホストし、 roboflow/inference-server:gpu image

  • Kubernetes Deployments を作成して Roboflow inference service を水平オートスケールし、CPU 使用率などの特定のメトリクスに基づいてオートスケーリングトリガーを設定することができます。

  • nodePort や LoadBalancer などの異なるサービス種別を使って Roboflow inference service を外部に公開する

  • ingress controller を使って Roboflow inference を TLS(HTTPs)経由で公開するなど

  • Roboflow inference service にモニタリングやアラート機能を追加する

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

Last updated

Was this helpful?