From 68fd42659e132c62f6e819cb844e6195551c92bf Mon Sep 17 00:00:00 2001 From: Jayesh Mahajan Date: Thu, 22 May 2025 09:23:57 -0400 Subject: [PATCH 1/2] Create scheduling-gpus.md --- .../docs/tasks/manage-gpus/scheduling-gpus.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 content/hi/docs/tasks/manage-gpus/scheduling-gpus.md diff --git a/content/hi/docs/tasks/manage-gpus/scheduling-gpus.md b/content/hi/docs/tasks/manage-gpus/scheduling-gpus.md new file mode 100644 index 0000000000000..2b9aac2897d1a --- /dev/null +++ b/content/hi/docs/tasks/manage-gpus/scheduling-gpus.md @@ -0,0 +1,121 @@ +--- +reviewers: +- divya-mohan0209 +- dipesh-rawat +content_type: concept +title: GPU शेड्यूलिंग +description: क्लस्टर में नोड्स द्वारा रिसोर्स के रूप में उपयोग के लिए GPU को कॉन्फ़िगर और शेड्यूल करें। +--- + + + +{{< feature-state state="stable" for_k8s_version="v1.26" >}} + +Kubernetes में आपके क्लस्टर के विभिन्न नोड्स पर AMD और NVIDIA GPU +(ग्राफिकल प्रोसेसिंग यूनिट्स) को प्रबंधित करने के लिए **स्थिर** समर्थन शामिल है, जो +{{< glossary_tooltip text="डिवाइस प्लगइन" term_id="device-plugin" >}} का उपयोग करता है। + +यह पेज बताता है कि उपयोगकर्ता GPU का उपयोग कैसे कर सकते हैं, और +कार्यान्वयन में कुछ सीमाओं को रेखांकित करता है। + + + +## डिवाइस प्लगइन का उपयोग + +Kubernetes डिवाइस प्लगइन को लागू करता है ताकि पॉड्स GPU जैसी विशेष हार्डवेयर सुविधाओं का उपयोग कर सकें। + +{{% thirdparty-content %}} + +एक प्रशासक के रूप में, आपको नोड्स पर संबंधित हार्डवेयर विक्रेता से GPU ड्राइवर्स को इंस्टॉल करना होगा और GPU विक्रेता से संबंधित डिवाइस प्लगइन को चलाना होगा। यहाँ विक्रेताओं के निर्देशों के कुछ लिंक दिए गए हैं: + +* [AMD](https://github.com/ROCm/k8s-device-plugin#deployment) +* [Intel](https://intel.github.io/intel-device-plugins-for-kubernetes/cmd/gpu_plugin/README.html) +* [NVIDIA](https://github.com/NVIDIA/k8s-device-plugin#quick-start) + +एक बार जब आप प्लगइन इंस्टॉल कर लेते हैं, तो आपका क्लस्टर एक कस्टम शेड्यूल योग्य रिसोर्स जैसे `amd.com/gpu` या `nvidia.com/gpu` को एक्सपोज करता है। + +आप अपने कंटेनर से इन GPU का उपयोग कस्टम GPU रिसोर्स का अनुरोध करके कर सकते हैं, उसी तरह जैसे आप `cpu` या `memory` का अनुरोध करते हैं। +हालांकि, कस्टम डिवाइस के लिए रिसोर्स आवश्यकताओं को निर्दिष्ट करने में कुछ सीमाएं हैं। + +GPU को केवल `limits` सेक्शन में निर्दिष्ट किया जाना चाहिए, जिसका मतलब है: +* आप `requests` को निर्दिष्ट किए बिना GPU `limits` निर्दिष्ट कर सकते हैं, क्योंकि + Kubernetes डिफ़ॉल्ट रूप से लिमिट को रिक्वेस्ट वैल्यू के रूप में उपयोग करेगा। +* आप GPU को `limits` और `requests` दोनों में निर्दिष्ट कर सकते हैं लेकिन इन दोनों मूल्यों को + समान होना चाहिए। +* आप `limits` को निर्दिष्ट किए बिना GPU `requests` निर्दिष्ट नहीं कर सकते। + +यहाँ एक GPU का अनुरोध करने वाले पॉड के लिए एक उदाहरण मैनिफेस्ट दिया गया है: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: example-vector-add +spec: + restartPolicy: OnFailure + containers: + - name: example-vector-add + image: "registry.example/example-vector-add:v42" + resources: + limits: + gpu-vendor.example/example-gpu: 1 # 1 GPU का अनुरोध +``` + +## विभिन्न प्रकार के GPU वाले क्लस्टर्स का प्रबंधन + +यदि आपके क्लस्टर में विभिन्न नोड्स पर विभिन्न प्रकार के GPU हैं, तो आप +[नोड लेबल्स और नोड सेलेक्टर्स](/docs/tasks/configure-pod-container/assign-pods-nodes/) +का उपयोग पॉड्स को उपयुक्त नोड्स पर शेड्यूल करने के लिए कर सकते हैं। + +उदाहरण के लिए: + +```shell +# अपने नोड्स को उनके एक्सेलेरेटर प्रकार के साथ लेबल करें। +kubectl label nodes node1 accelerator=example-gpu-x100 +kubectl label nodes node2 accelerator=other-gpu-k915 +``` + +वह लेबल की `accelerator` केवल एक उदाहरण है; यदि आप चाहें तो एक अलग लेबल की का उपयोग कर सकते हैं। + +## स्वचालित नोड लेबलिंग {#node-labeller} + +एक प्रशासक के रूप में, आप Kubernetes [Node Feature Discovery](https://github.com/kubernetes-sigs/node-feature-discovery) (NFD) को डिप्लॉय करके अपने सभी GPU सक्षम नोड्स को स्वचालित रूप से खोज और लेबल कर सकते हैं। +NFD एक Kubernetes क्लस्टर में प्रत्येक नोड पर उपलब्ध हार्डवेयर फीचर्स का पता लगाता है। +आमतौर पर, NFD को उन फीचर्स को नोड लेबल्स के रूप में विज्ञापित करने के लिए कॉन्फ़िगर किया जाता है, लेकिन NFD विस्तारित रिसोर्स, एनोटेशन्स और नोड टेंट्स भी जोड़ सकता है। +NFD Kubernetes के सभी [समर्थित वर्जन](/releases/version-skew-policy/#supported-versions) के साथ संगत है। +डिफ़ॉल्ट रूप से NFD पता लगाए गए फीचर्स के लिए [फीचर लेबल्स](https://kubernetes-sigs.github.io/node-feature-discovery/master/usage/features.html) बनाता है। +प्रशासक NFD का उपयोग विशिष्ट फीचर्स वाले नोड्स को टेंट करने के लिए भी कर सकते हैं, ताकि केवल उन फीचर्स का अनुरोध करने वाले पॉड्स को उन नोड्स पर शेड्यूल किया जा सके। + +आपको NFD के लिए एक प्लगइन की भी आवश्यकता होगी जो आपके नोड्स पर उपयुक्त लेबल्स जोड़ता है; ये जेनेरिक लेबल्स हो सकते हैं या वे विक्रेता विशिष्ट हो सकते हैं। आपका GPU विक्रेता NFD के लिए एक थर्ड पार्टी प्लगइन प्रदान कर सकता है; अधिक जानकारी के लिए उनके दस्तावेज़ीकरण की जाँच करें। + +{{< highlight yaml "linenos=false,hl_lines=7-18" >}} +apiVersion: v1 +kind: Pod +metadata: + name: example-vector-add +spec: + restartPolicy: OnFailure + # आप इस पॉड को ऐसे नोड पर शेड्यूल करने के लिए Kubernetes नोड एफिनिटी का उपयोग कर सकते हैं + # जो उस प्रकार का GPU प्रदान करता है जिसकी इसके कंटेनर को काम करने के लिए आवश्यकता है + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: "gpu.gpu-vendor.example/installed-memory" + operator: Gt # (से अधिक) + values: ["40535"] + - key: "feature.node.kubernetes.io/pci-10.present" # NFD फीचर लेबल + values: ["true"] # (वैकल्पिक) केवल PCI डिवाइस 10 वाले नोड्स पर शेड्यूल करें + containers: + - name: example-vector-add + image: "registry.example/example-vector-add:v42" + resources: + limits: + gpu-vendor.example/example-gpu: 1 # 1 GPU का अनुरोध +{{< /highlight >}} + +#### GPU विक्रेता कार्यान्वयन + +- [Intel](https://intel.github.io/intel-device-plugins-for-kubernetes/cmd/gpu_plugin/README.html) +- [NVIDIA](https://github.com/NVIDIA/k8s-device-plugin) From dc84df6b6e82e471c0e66f30394eb44195125b4f Mon Sep 17 00:00:00 2001 From: Jayesh Mahajan Date: Thu, 22 May 2025 22:58:01 -0400 Subject: [PATCH 2/2] =?UTF-8?q?Updated=20Kubernetes=20to=20=E0=A4=95?= =?UTF-8?q?=E0=A5=81=E0=A4=AC=E0=A5=87=E0=A4=B0=E0=A4=A8=E0=A5=87=E0=A4=9F?= =?UTF-8?q?=E0=A5=87=E0=A4=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/tasks/manage-gpus/scheduling-gpus.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/content/hi/docs/tasks/manage-gpus/scheduling-gpus.md b/content/hi/docs/tasks/manage-gpus/scheduling-gpus.md index 2b9aac2897d1a..52d44d3098f3f 100644 --- a/content/hi/docs/tasks/manage-gpus/scheduling-gpus.md +++ b/content/hi/docs/tasks/manage-gpus/scheduling-gpus.md @@ -11,7 +11,7 @@ description: क्लस्टर में नोड्स द्वारा {{< feature-state state="stable" for_k8s_version="v1.26" >}} -Kubernetes में आपके क्लस्टर के विभिन्न नोड्स पर AMD और NVIDIA GPU +कुबेरनेटेस में आपके क्लस्टर के विभिन्न नोड्स पर AMD और NVIDIA GPU (ग्राफिकल प्रोसेसिंग यूनिट्स) को प्रबंधित करने के लिए **स्थिर** समर्थन शामिल है, जो {{< glossary_tooltip text="डिवाइस प्लगइन" term_id="device-plugin" >}} का उपयोग करता है। @@ -22,14 +22,14 @@ Kubernetes में आपके क्लस्टर के विभिन ## डिवाइस प्लगइन का उपयोग -Kubernetes डिवाइस प्लगइन को लागू करता है ताकि पॉड्स GPU जैसी विशेष हार्डवेयर सुविधाओं का उपयोग कर सकें। +कुबेरनेटेस डिवाइस प्लगइन को लागू करता है ताकि पॉड्स GPU जैसी विशेष हार्डवेयर सुविधाओं का उपयोग कर सकें। {{% thirdparty-content %}} एक प्रशासक के रूप में, आपको नोड्स पर संबंधित हार्डवेयर विक्रेता से GPU ड्राइवर्स को इंस्टॉल करना होगा और GPU विक्रेता से संबंधित डिवाइस प्लगइन को चलाना होगा। यहाँ विक्रेताओं के निर्देशों के कुछ लिंक दिए गए हैं: * [AMD](https://github.com/ROCm/k8s-device-plugin#deployment) -* [Intel](https://intel.github.io/intel-device-plugins-for-kubernetes/cmd/gpu_plugin/README.html) +* [Intel](https://intel.github.io/intel-device-plugins-for-कुबेरनेटेस/cmd/gpu_plugin/README.html) * [NVIDIA](https://github.com/NVIDIA/k8s-device-plugin#quick-start) एक बार जब आप प्लगइन इंस्टॉल कर लेते हैं, तो आपका क्लस्टर एक कस्टम शेड्यूल योग्य रिसोर्स जैसे `amd.com/gpu` या `nvidia.com/gpu` को एक्सपोज करता है। @@ -39,7 +39,7 @@ Kubernetes डिवाइस प्लगइन को लागू करत GPU को केवल `limits` सेक्शन में निर्दिष्ट किया जाना चाहिए, जिसका मतलब है: * आप `requests` को निर्दिष्ट किए बिना GPU `limits` निर्दिष्ट कर सकते हैं, क्योंकि - Kubernetes डिफ़ॉल्ट रूप से लिमिट को रिक्वेस्ट वैल्यू के रूप में उपयोग करेगा। + कुबेरनेटेस डिफ़ॉल्ट रूप से लिमिट को रिक्वेस्ट वैल्यू के रूप में उपयोग करेगा। * आप GPU को `limits` और `requests` दोनों में निर्दिष्ट कर सकते हैं लेकिन इन दोनों मूल्यों को समान होना चाहिए। * आप `limits` को निर्दिष्ट किए बिना GPU `requests` निर्दिष्ट नहीं कर सकते। @@ -79,11 +79,11 @@ kubectl label nodes node2 accelerator=other-gpu-k915 ## स्वचालित नोड लेबलिंग {#node-labeller} -एक प्रशासक के रूप में, आप Kubernetes [Node Feature Discovery](https://github.com/kubernetes-sigs/node-feature-discovery) (NFD) को डिप्लॉय करके अपने सभी GPU सक्षम नोड्स को स्वचालित रूप से खोज और लेबल कर सकते हैं। -NFD एक Kubernetes क्लस्टर में प्रत्येक नोड पर उपलब्ध हार्डवेयर फीचर्स का पता लगाता है। +एक प्रशासक के रूप में, आप कुबेरनेटेस [Node Feature Discovery](https://github.com/कुबेरनेटेस-sigs/node-feature-discovery) (NFD) को डिप्लॉय करके अपने सभी GPU सक्षम नोड्स को स्वचालित रूप से खोज और लेबल कर सकते हैं। +NFD एक कुबेरनेटेस क्लस्टर में प्रत्येक नोड पर उपलब्ध हार्डवेयर फीचर्स का पता लगाता है। आमतौर पर, NFD को उन फीचर्स को नोड लेबल्स के रूप में विज्ञापित करने के लिए कॉन्फ़िगर किया जाता है, लेकिन NFD विस्तारित रिसोर्स, एनोटेशन्स और नोड टेंट्स भी जोड़ सकता है। -NFD Kubernetes के सभी [समर्थित वर्जन](/releases/version-skew-policy/#supported-versions) के साथ संगत है। -डिफ़ॉल्ट रूप से NFD पता लगाए गए फीचर्स के लिए [फीचर लेबल्स](https://kubernetes-sigs.github.io/node-feature-discovery/master/usage/features.html) बनाता है। +NFD कुबेरनेटेस के सभी [समर्थित वर्जन](/releases/version-skew-policy/#supported-versions) के साथ संगत है। +डिफ़ॉल्ट रूप से NFD पता लगाए गए फीचर्स के लिए [फीचर लेबल्स](https://कुबेरनेटेस-sigs.github.io/node-feature-discovery/master/usage/features.html) बनाता है। प्रशासक NFD का उपयोग विशिष्ट फीचर्स वाले नोड्स को टेंट करने के लिए भी कर सकते हैं, ताकि केवल उन फीचर्स का अनुरोध करने वाले पॉड्स को उन नोड्स पर शेड्यूल किया जा सके। आपको NFD के लिए एक प्लगइन की भी आवश्यकता होगी जो आपके नोड्स पर उपयुक्त लेबल्स जोड़ता है; ये जेनेरिक लेबल्स हो सकते हैं या वे विक्रेता विशिष्ट हो सकते हैं। आपका GPU विक्रेता NFD के लिए एक थर्ड पार्टी प्लगइन प्रदान कर सकता है; अधिक जानकारी के लिए उनके दस्तावेज़ीकरण की जाँच करें। @@ -95,7 +95,7 @@ metadata: name: example-vector-add spec: restartPolicy: OnFailure - # आप इस पॉड को ऐसे नोड पर शेड्यूल करने के लिए Kubernetes नोड एफिनिटी का उपयोग कर सकते हैं + # आप इस पॉड को ऐसे नोड पर शेड्यूल करने के लिए कुबेरनेटेस नोड एफिनिटी का उपयोग कर सकते हैं # जो उस प्रकार का GPU प्रदान करता है जिसकी इसके कंटेनर को काम करने के लिए आवश्यकता है affinity: nodeAffinity: @@ -105,7 +105,7 @@ spec: - key: "gpu.gpu-vendor.example/installed-memory" operator: Gt # (से अधिक) values: ["40535"] - - key: "feature.node.kubernetes.io/pci-10.present" # NFD फीचर लेबल + - key: "feature.node.कुबेरनेटेस.io/pci-10.present" # NFD फीचर लेबल values: ["true"] # (वैकल्पिक) केवल PCI डिवाइस 10 वाले नोड्स पर शेड्यूल करें containers: - name: example-vector-add @@ -117,5 +117,5 @@ spec: #### GPU विक्रेता कार्यान्वयन -- [Intel](https://intel.github.io/intel-device-plugins-for-kubernetes/cmd/gpu_plugin/README.html) +- [Intel](https://intel.github.io/intel-device-plugins-for-कुबेरनेटेस/cmd/gpu_plugin/README.html) - [NVIDIA](https://github.com/NVIDIA/k8s-device-plugin)