Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The localized content currently differs from the original upstream en page (here). Could you sync it with the latest English version when you get a chance?

Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
---
title: एकाधिक स्केड्यूलर्स कॉन्फ़िगर करें
content_type: task
weight: 20
---

<!-- overview -->
कुबेरनेट्स में, आप एक ही क्लस्टर में एकाधिक स्केड्यूलर्स चला सकते हैं। आप एक मुख्य स्केड्यूलर के साथ एक कस्टम स्केड्यूलर चला सकते हैं। पॉड्स को कस्टम स्केड्यूलर द्वारा स्केड्यूल करने के लिए, आप उन पॉड्स के स्पेसिफिकेशन में स्केड्यूलर का नाम निर्दिष्ट करते हैं।

## {{% heading "prerequisites" %}}

{{< include "task-tutorial-prereqs.md" >}}

## स्केड्यूलर कोड को डाउनलोड करें

1. स्केड्यूलर कोड को डाउनलोड करें:

```bash
git clone https://github.com/kubernetes/kubernetes.git
cd kubernetes
```

2. एक कस्टम स्केड्यूलर बनाएं जो निम्नलिखित कोड से बना हो:

```go
package main

import (
"fmt"
"os"

"k8s.io/kubernetes/cmd/kube-scheduler/app"
)

func main() {
command := app.NewSchedulerCommand(
app.WithPlugin("multipoint", multipoint.New),
)
if err := command.Execute(); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
}
}
```

3. स्केड्यूलर को बिल्ड करें:

```bash
go build -o my-scheduler
```

## स्केड्यूलर को डिप्लॉय करें

स्केड्यूलर को क्लस्टर में डिप्लॉय करने के लिए, आप एक कुबेरनेट्स डिप्लॉयमेंट का उपयोग कर सकते हैं। यहाँ एक उदाहरण है:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-scheduler
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
component: scheduler
tier: control-plane
template:
metadata:
labels:
component: scheduler
tier: control-plane
spec:
serviceAccountName: my-scheduler-sa
containers:
- name: my-scheduler
image: my-scheduler:latest
imagePullPolicy: Never
livenessProbe:
httpGet:
path: /healthz
port: 10251
initialDelaySeconds: 15
readinessProbe:
httpGet:
path: /healthz
port: 10251
initialDelaySeconds: 5
```

## स्केड्यूलर को कॉन्फ़िगर करें

स्केड्यूलर को कॉन्फ़िगर करने के लिए, आप एक कॉन्फ़िगमैप बना सकते हैं:

```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-scheduler-config
namespace: kube-system
data:
scheduler-config.yaml: |
apiVersion: kubescheduler.config.k8s.io/v1beta1
kind: KubeSchedulerConfiguration
profiles:
- schedulerName: my-scheduler
plugins:
score:
enabled:
- name: NodeResourcesBalancedAllocation
weight: 1
- name: NodeResourcesLeastAllocated
weight: 1
```

## स्केड्यूलर का उपयोग करें

पॉड्स को कस्टम स्केड्यूलर द्वारा स्केड्यूल करने के लिए, आप उन पॉड्स के स्पेसिफिकेशन में `schedulerName` फ़ील्ड निर्दिष्ट करते हैं:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
schedulerName: my-scheduler
containers:
- name: nginx
image: nginx
```

## {{% heading "whatsnext" %}}

* [स्केड्यूलर प्रोफ़ाइल्स](/docs/reference/scheduling/config#scheduling-profiles) के बारे में जानें
* [स्केड्यूलर प्लगइन्स](/docs/reference/scheduling/config#scheduling-plugins) के बारे में जानें
* [स्केड्यूलर कॉन्फ़िगरेशन](/docs/reference/scheduling/config) के बारे में जानें
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: एक्सटेंशन API सर्वर सेटअप
content_type: task
weight: 20
---

<!-- overview -->
एक्सटेंशन API सर्वर को एग्रीगेशन लेयर के साथ काम करने के लिए सेट करने से कुबेरनेट्स apiserver को अतिरिक्त APIs के साथ विस्तारित किया जा सकता है, जो कोर कुबेरनेट्स APIs का हिस्सा नहीं हैं।

## {{% heading "prerequisites" %}}

आपके पास एक कुबेरनेट्स क्लस्टर होना चाहिए, और kubectl कमांड-लाइन टूल को आपके क्लस्टर के साथ संवाद करने के लिए कॉन्फ़िगर किया जाना चाहिए। इस ट्यूटोरियल को कम से कम दो नोड्स वाले क्लस्टर पर चलाने की सलाह दी जाती है जो कंट्रोल प्लेन होस्ट के रूप में कार्य नहीं कर रहे हैं। यदि आपके पास पहले से कोई क्लस्टर नहीं है, तो आप इसे minikube का उपयोग करके बना सकते हैं या आप इनमें से किसी एक कुबेरनेट्स प्लेग्राउंड का उपयोग कर सकते हैं:

* Killercoda
* KodeKloud
* Play with कुबेरनेट्स

संस्करण की जांच करने के लिए, `kubectl version` दर्ज करें।

* आपको एग्रीगेशन लेयर को कॉन्फ़िगर करना होगा और apiserver फ्लैग्स को सक्षम करना होगा।

## एग्रीगेशन लेयर के साथ काम करने के लिए एक्सटेंशन api-server सेट करें
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## एग्रीगेशन लेयर के साथ काम करने के लिए एक्सटेंशन api-server सेट करें
## एग्रीगेशन लेयर के साथ काम करने के लिए एक्सटेंशन api-server सेट करें {#set-up-an-extension-api-server-to-work-with-the-aggregation-layer}


निम्नलिखित चरण एक्सटेंशन-apiserver को _उच्च स्तर पर_ सेट करने का वर्णन करते हैं। ये चरण YAML कॉन्फ़िग्स का उपयोग करने या APIs का उपयोग करने की परवाह किए बिना लागू होते हैं। दोनों के बीच के किसी भी अंतर को विशेष रूप से पहचानने का प्रयास किया गया है। YAML कॉन्फ़िग्स का उपयोग करके उन्हें कैसे लागू किया जा सकता है, इसका एक ठोस उदाहरण के लिए, आप कुबेरनेट्स repo में sample-apiserver को देख सकते हैं।

वैकल्पिक रूप से, आप एक मौजूदा तृतीय-पक्ष समाधान का उपयोग कर सकते हैं, जैसे apiserver-builder, जो आपके लिए एक स्केलेटन उत्पन्न करेगा और निम्नलिखित सभी चरणों को स्वचालित करेगा।

1. सुनिश्चित करें कि APIService API सक्षम है (`--runtime-config` की जांच करें)। यह डिफ़ॉल्ट रूप से चालू होना चाहिए, जब तक कि इसे आपके क्लस्टर में जानबूझकर बंद नहीं किया गया है।
2. आपको APIService ऑब्जेक्ट्स जोड़ने की अनुमति देने वाला एक RBAC नियम बनाने की आवश्यकता हो सकती है, या अपने क्लस्टर प्रशासक से एक बनाने के लिए कहें। (चूंकि API एक्सटेंशन पूरे क्लस्टर को प्रभावित करते हैं, लाइव क्लस्टर में API एक्सटेंशन का परीक्षण/विकास/डीबग करने की अनुशंसा नहीं की जाती है।)
3. अपने एक्सटेंशन api-service को चलाने के लिए वांछित कुबेरनेट्स नेमस्पेस बनाएं।
4. एक्सटेंशन api-server द्वारा HTTPS के लिए उपयोग किए जाने वाले सर्वर सर्ट को हस्ताक्षरित करने के लिए उपयोग की जाने वाली CA सर्ट बनाएं/प्राप्त करें।
5. api-server के लिए HTTPS में उपयोग करने के लिए सर्वर सर्ट/कुंजी बनाएं। यह सर्ट उपरोक्त CA द्वारा हस्ताक्षरित होना चाहिए। इसमें Kube DNS नाम का CN भी होना चाहिए। यह कुबेरनेट्स सेवा से प्राप्त होता है और `<service name>.<service name namespace>.svc` के रूप में होता है
6. अपने नेमस्पेस में सर्वर सर्ट/कुंजी के साथ एक कुबेरनेट्स सीक्रेट बनाएं।
7. एक्सटेंशन api-server के लिए एक कुबेरनेट्स डिप्लॉयमेंट बनाएं और सुनिश्चित करें कि आप सीक्रेट को वॉल्यूम के रूप में लोड कर रहे हैं। इसमें आपके एक्सटेंशन api-server की कार्यशील इमेज का संदर्भ होना चाहिए। डिप्लॉयमेंट आपके नेमस्पेस में भी होना चाहिए।
8. सुनिश्चित करें कि आपका एक्सटेंशन-apiserver उन सर्ट्स को उस वॉल्यूम से लोड करता है और वे HTTPS हैंडशेक में उपयोग किए जाते हैं।
9. अपने नेमस्पेस में एक कुबेरनेट्स सेवा खाता बनाएं।
10. अपने संसाधनों पर अनुमत ऑपरेशनों के लिए एक कुबेरनेट्स क्लस्टर भूमिका बनाएं।
11. अपने नेमस्पेस में सेवा खाते से आपके द्वारा बनाई गई क्लस्टर भूमिका तक एक कुबेरनेट्स क्लस्टर भूमिका बाइंडिंग बनाएं।
12. कुबेरनेट्स कोर API सर्वर को auth निर्णयों को प्रत्यायोजित करने के लिए अपने नेमस्पेस में सेवा खाते से `system:auth-delegator` क्लस्टर भूमिका तक एक कुबेरनेट्स क्लस्टर भूमिका बाइंडिंग बनाएं।
13. अपने नेमस्पेस में सेवा खाते से `extension-apiserver-authentication-reader` भूमिका तक एक कुबेरनेट्स भूमिका बाइंडिंग बनाएं। यह आपके एक्सटेंशन api-server को `extension-apiserver-authentication` कॉन्फ़िगमैप तक पहुंच की अनुमति देता है।
14. एक कुबेरनेट्स apiservice बनाएं। उपरोक्त CA सर्ट को base64 एनकोड किया जाना चाहिए, नई लाइनों को हटाया जाना चाहिए और apiservice में spec.caBundle के रूप में उपयोग किया जाना चाहिए। यह नेमस्पेस नहीं होना चाहिए। यदि kube-aggregator API का उपयोग कर रहे हैं, तो केवल PEM एनकोडेड CA बंडल पास करें क्योंकि base 64 एनकोडिंग आपके लिए की जाती है।
15. अपने संसाधन को प्राप्त करने के लिए kubectl का उपयोग करें। जब चलाया जाता है, तो kubectl को "No resources found." वापस करना चाहिए। यह संदेश इंगित करता है कि सब कुछ काम कर रहा है लेकिन आपके पास वर्तमान में उस संसाधन प्रकार का कोई ऑब्जेक्ट नहीं है।

## {{% heading "whatsnext" %}}

* API एग्रीगेशन लेयर को कॉन्फ़िगर करने और apiserver फ्लैग्स को सक्षम करने के लिए चरणों से गुजरें।
* उच्च स्तर के अवलोकन के लिए, एग्रीगेशन लेयर के साथ कुबेरनेट्स API को विस्तारित करना देखें।
* कस्टम रिसोर्स डेफिनिशन्स का उपयोग करके कुबेरनेट्स API को विस्तारित करना सीखें।