# Kubernetes

***अद्यतन: यदि आप एक Roboflow Enterprise ग्राहक हैं तो आप अपने Kubernetes वातावरण में Roboflow Inference Service को निम्न के माध्यम से तैनात कर सकते हैं*** [***यह Helm चार्ट***](https://github.com/roboflow/inference/tree/main/inference/enterprise/helm-chart)***.***

वैकल्पिक रूप से, यहां Kubernetes क्लस्टर में एक pod और service तैनात करने के लिए सरल Kubernetes manifests दिए गए हैं।

नीचे दिया गया Kubernetes manifest एक सरल उदाहरण दिखाता है जिसमें एक single CPU-आधारित roboflow infer pod बनाया गया है और उस पर एक cluster-IP service संलग्न की गई है।

```yaml
# 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 का उपयोग करके pod और service को आपके Kubernetes क्लस्टर के default namespace में तैनात करने के लिए।

```
kubectl apply -f roboflow.yaml
```

\
एक service (ClusterIP प्रकार) बनाया जाएगा; आप Kubernetes क्लस्टर के भीतर निम्न URI पर Roboflow inference तक पहुँच सकते हैं: `http://rf-service.default.svc:9001`

### इस उदाहरण से आगे

Kubernetes आपको अपने Roboflow inference service में कई उन्नत सुविधाएँ और विस्तार शामिल करने की शक्ति देता है। उदाहरण के लिए, आप ऊपर के उदाहरण को और उन्नत उपयोग-मामलों के लिए विस्तारित कर सकते हैं जैसे

* nodeSelectors का उपयोग करके pod(s) को आपके Kubernetes वातावरण के GPU मशीन नोड पूल पर होस्ट करना और उपयोग करना `roboflow/inference-server:gpu` image
* Roboflow inference service के क्षैतिज ऑटो-स्केलिंग के लिए Kubernetes deployments बनाना और CPU उपयोग जैसी विशिष्ट मेट्रिक्स के आधार पर ऑटो-स्केलिंग ट्रिगर्स सेट करना।
* Roboflow inference service को बाह्य रूप से सेवा देने के लिए nodePort और LoadBalancer जैसे विभिन्न service प्रकारों का उपयोग करना
* Roboflow inference को TLS (HTTPs) आदि पर एक्सपोज़ करने के लिए ingress controllers का उपयोग करें।
* अपने Roboflow inference service में मॉनिटरिंग और अलर्टिंग जोड़ें
* लाइसेंस सर्वर और ऑफ़लाइन मोड्स का एकीकरण
