From 1e8d014694c859bdc15f3486a886c6f1e9f187cb Mon Sep 17 00:00:00 2001 From: Darshna Das <52234378+Darshnadas@users.noreply.github.com> Date: Wed, 2 Mar 2022 00:29:55 +0530 Subject: [PATCH] [hi] Add content/hi/docs/setup/production-environment/container-runtimes.md (#31857) * Localized container-runtimes.md * Updated with needed change * Updated with needed changes * Updated with needed changes * Updated with needed changes * Updated the PR --- .../container-runtimes.md | 390 ++++++++++++++++++ 1 file changed, 390 insertions(+) create mode 100644 content/hi/docs/setup/production-environment/container-runtimes.md diff --git a/content/hi/docs/setup/production-environment/container-runtimes.md b/content/hi/docs/setup/production-environment/container-runtimes.md new file mode 100644 index 0000000000..816002a9bb --- /dev/null +++ b/content/hi/docs/setup/production-environment/container-runtimes.md @@ -0,0 +1,390 @@ +--- +title: कंटेनर रनटाइम +content_type: concept +weight: 20 +--- + + + +आपको क्लस्टर में प्रत्येक नोड में एक {{< glossary_tooltip text="कंटेनर रनटाइम" term_id="container-runtime" >}} +इंस्टॉल करना होगा ताकि पॉड वहां चल सकें। +यह पृष्ठ बताता है कि क्या शामिल है और +नोड्स की स्थापना के लिए संबंधित कार्यों का वर्णन करता है। + + + +यह पृष्ठ लिनक्स पर कुबेरनेट्स के साथ कई सामान्य कंटेनर रनटाइम का उपयोग करने के विवरण सूचीबद्ध करता है: + +- [containerd](#containerd) +- [CRI-O](#cri-o) +- [Docker](#docker) + +{{< note >}} +अन्य ऑपरेटिंग सिस्टम के लिए, अपने प्लेटफ़ॉर्म के अनुसार विशिष्ट प्रलेखन देखें। +{{< /note >}} + +## Cgroup ड्राइवर + +प्रक्रियाओं के लिए आवंटित संसाधनों को सीमित करने के लिए कण्ट्रोल ग्रुप का उपयोग किया जाता है। + +जब Linux वातावरण के लिए init सिस्टम, [systemd] +(https://www.freedesktop.org/wiki/Software/systemd/) +को चुना जाता है, तब init प्रक्रिया रुट(root) control group (`cgroup`) उत्पन्न करती है और उपभोग करती है तथा cgroup मैनेजर की तरह काम करता है। + + +Systemd और cgroups एकीकृत हैं और प्रत्येक systemd यूनिट को एक cgroup आवंटित होता है। अपने कन्टैनर रनटाइम और kubelet को `cgroupfs` प्रयोग करने के लिए कॉन्फ़िगर करना संभव है। systemd के साथ `cgroupfs` प्रयोग करने के कारण दो अलग cgroup मैनेजर होंगे। + +एक एकल cgroup प्रबंधक इस दृष्टिकोण को सरल बनाता है कि कौन से संसाधन आवंटित किए जा रहे हैं और डिफ़ॉल्ट रूप से उपलब्ध और उपयोग में आने वाले संसाधनों के बारे में अधिक सुसंगत दृश्य होगा। +जब एक सिस्टम पर दो cgroup मैनेजर होते हैं, तो आपको उन रिसोर्सेज के दो व्यू मिलते हैं। क्षेत्र में, लोगों ने ऐसे मामलों की सूचना दी है जहां नोड्स जो kubelet और डॉकर के लिए `cgroupfs` का उपयोग करने के लिए कॉन्फ़िगर किए गए हैं, लेकिन बाकी प्रक्रियाओं के लिए `systemd` संसाधन दबाव के कारण अस्थिर हो जाते हैं। + +सेटिंग्स को इस तरह बदलना कि आपका कंटेनर रनटाइम और kubelet `systemd` का उपयोग करें क्योंकि cgroup ड्राइवर सिस्टम को स्थिर करता है। डॉकर के लिए इसे कॉन्फ़िगर करने के लिए, `native.cgroupdriver=systemd` सेट करें। + +{{< /caution >}} +क्लस्टर में शामिल होने वाले नोड के cgroup ड्राइवर को बदलना एक संवेदनशील ऑपरेशन है। यदि kubelet ने एक सीग्रुप ड्राइवर के शब्दार्थ का उपयोग करके पॉड्स बनाए हैं, तो कंटेनर रनटाइम को दूसरे सीग्रुप ड्राइवर में बदलने से मौजूदा पॉड्स के पॉड सैंडबॉक्स को फिर से बनाते समय त्रुटियां हो सकती हैं। kubelet को पुनरारंभ करने से ऐसी त्रुटियों का समाधान नहीं हो सकता है। +यदि आपके पास स्वचालन है जो इसे व्यवहार्य बनाता है, तो अद्यतन किए गए कॉन्फ़िगरेशन का उपयोग करके नोड को दूसरे के साथ बदलें, या स्वचालन का उपयोग करके इसे पुनर्स्थापित करें। + +{{< /caution >}} + +## Cgroup संस्करण 2 {#cgroup-v2} + +Cgroup v2, cgroup Linux API का अगला संस्करण है। Cgroup v1 से अलग, प्रत्येक कंट्रोलर के लिए एक अलग अनुक्रम के बजाय एक एकल पदानुक्रम है। + +नया संस्करण cgroup v1 पर कई सुधार प्रदान करता है, इनमें से कुछ सुधार हैं: +- API का उपयोग करने का क्लीनर और आसान तरीका +- कंटेनरों के लिए सुरक्षित उप-वृक्ष प्रतिनिधिमंडल +- प्रेशर स्टॉल की जानकारी जैसी नई सुविधाएँ + +भले ही कर्नेल हाइब्रिड कॉन्फ़िगरेशन का समर्थन करता हो, जहां कुछ नियंत्रक cgroup v1 द्वारा प्रबंधित किए जाते हैं और कुछ अन्य cgroup v2 द्वारा, Kubernetes सभी नियंत्रकों को प्रबंधित करने के लिए केवल उसी cgroup संस्करण का समर्थन करता है। +यदि सिस्टमड डिफ़ॉल्ट रूप से cgroup v2 का उपयोग नहीं करता है, तो आप कर्नेल कमांड लाइन में `systemd.unified_cgroup_hierarchy=1` जोड़कर सिस्टम को इसका उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं। + +```shell +# dnf install -y grubby && \ + sudo grubby \ + --update-kernel=ALL \ + --args="systemd.unified_cgroup_hierarchy=1" +``` + +कॉन्फ़िगरेशन को लागू करने के लिए, नोड को रीबूट करना आवश्यक है। + +Cgroup v2 में स्विच करते समय उपयोगकर्ता अनुभव में कोई उल्लेखनीय अंतर नहीं होना चाहिए, जब तक कि उपयोगकर्ता सीग्रुप फाइल सिस्टम को सीधे नोड पर या कंटेनरों के भीतर से एक्सेस कर रहे हैं। + +इसका उपयोग करने के लिए, Cgroup v2 को CRI रनटाइम द्वारा भी समर्थित होना चाहिए। + +### Kubeadm प्रबंधित क्लस्टर में `systemd` ड्राइवर में माइग्रेट करना + +यदि आप मौजूदा kubeadm प्रबंधित क्लस्टर में `systemd` cgroup ड्राइवर में माइग्रेट करना चाहते हैं, तो [माइग्रेशन गाइड](/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) का पालन करें। + +## कंटेनर रनटाइम + +{{% thirdparty-content %}} + +### containerd + +यह खंड कंटेनरड को सीआरआई रनटाइम के रूप में उपयोग करने के लिए आवश्यक कदम बताता है। +अपने सिस्टम पर containerd स्थापित करने के लिए निम्नलिखित कमांड का उपयोग करें: +पूर्वापेक्षाएँ स्थापित और कॉन्फ़िगर करें: + +```shell +cat <}} +{{% tab name="Linux" %}} + +1. आधिकारिक डॉकर रिपॉजिटरी से `containerd.io` पैकेज स्थापित करें। +अपने संबंधित लिनक्स वितरण के लिए डॉकर रिपॉजिटरी स्थापित करने और `containerd.io` पैकेज स्थापित करने के निर्देश यहां देखे जा सकते हैं +[Install Docker Engine](https://docs.docker.com/engine/install/#server). + +2. कंटेनर को कॉन्फ़िगर करें: + + ```shell + sudo mkdir -p /etc/containerd + containerd config default | sudo tee /etc/containerd/config.toml + ``` + +3. कंटेनर को पुनरारंभ करें: + + ```shell + sudo systemctl restart containerd + ``` + +{{% /tab %}} +{{% tab name="Windows (PowerShell)" %}} + +Powershell सत्र प्रारंभ करें, `$Version` को वांछित संस्करण पर सेट करें (उदाहरण: `$Version=1.4.3`), और फिर निम्न आदेश चलाएँ: + +1. कंटेनरड डाउनलोड करें: + + ```powershell + curl.exe -L https://github.com/containerd/containerd/releases/download/v$Version/containerd-$Version-windows-amd64.tar.gz -o containerd-windows-amd64.tar.gz + tar.exe xvf .\containerd-windows-amd64.tar.gz + ``` + +2. एक्सट्रेक्ट एंड कॉन्फ़िगर: + + ```powershell + Copy-Item -Path ".\bin\" -Destination "$Env:ProgramFiles\containerd" -Recurse -Force + cd $Env:ProgramFiles\containerd\ + .\containerd.exe config default | Out-File config.toml -Encoding ascii + # कॉन्फ़िगरेशन की समीक्षा करें। सेटअप के आधार पर आप समायोजित करना चाह सकते हैं: + # - सैंडबॉक्स_इमेज (कुबेरनेट्स पॉज़ इमेज) + # - cni bin_dir और conf_dir स्थान + Get-Content config.toml + # (वैकल्पिक - लेकिन अत्यधिक अनुशंसित) विंडोज डिफेंडर स्कैन से कंटेनर को बाहर करें + Add-MpPreference -ExclusionProcess "$Env:ProgramFiles\containerd\containerd.exe" + ``` + +3. कंटेनर शुरू करें: + + ```powershell + .\containerd.exe --register-service + Start-Service containerd + ``` + +{{% /tab %}} +{{< /tabs >}} + +#### systemd` cgroup ड्राइवर का उपयोग करें {#containerd-systemd} + +`systemd` cgroup ड्राइवर {#containerd-systemd} का उपयोग करना +`runc` के साथ `/etc/containerd/config.toml` में `systemd` cgroup ड्राइवर का उपयोग करने के लिए, सेट करें + +``` +[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] + ... + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] + SystemdCgroup = true +``` + +यदि आप इस परिवर्तन को लागू करते हैं, तो सुनिश्चित करें कि आप फिर से कंटेन्डर को पुनरारंभ करें: + +```shell +sudo systemctl restart containerd +``` + +जब आप kubeadm का उपयोग करें, मैन्युअल रूप से कॉन्फ़िगर करें +[क्यूबलेट के लिए cgroup ड्राइवर](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#configure-cgroup-driver-used-by-kubelet-on-control-plane-node) मैन्युअल रूप से कॉन्फ़िगर करें। + +### CRI-O + +इस खंड में CRI-O को कंटेनर रनटाइम के रूप में स्थापित करने के लिए आवश्यक जानकारी है। + +अपने सिस्टम पर CRI-O स्थापित करने के लिए निम्नलिखित कमांड का उपयोग करें: + +{{< note >}} +CRI-O के प्रमुख और छोटे संस्करणों को Kubernetes के प्रमुख और छोटे संस्करणों से मेल खाना चाहिए। +अधिक जानकारी के लिए [CRI-O compatibility matrix](https://github.com/cri-o/cri-o#compatibility-matrix-cri-o--kubernetes) देखें। +{{< /note >}} + +पूर्वापेक्षाएँ स्थापित और कॉन्फ़िगर करें: + +```shell +# बूटअप पर मॉड्यूल लोड करने के लिए .conf फाइल बनाएं +cat <}} +{{% tab name="Debian" %}} + +निम्नलिखित ऑपरेटिंग सिस्टम पर CRI-O स्थापित करने के लिए, एनवायरनमेंट वेरिएबल`OS` को निम्न तालिका से उपयुक्त मान पर सेट करें: + +| ऑपरेटिंग सिस्टम | `$OS` | +| ---------------- | ----------------- | +| Debian Unstable | `Debian_Unstable` | +| Debian Testing | `Debian_Testing` | + +
+फिर, सेट करें `$VERSION`CRI-O संस्करण में जो आपके Kubernetes संस्करण से मेल खाता है। +उदाहरण के लिए, यदि आप CRI-O 1.20 इंस्टॉल करना चाहते हैं, तो `VERSION=1.20` सेट करें। +आप अपनी स्थापना को किसी विशिष्ट रिलीज़ पर पिन कर सकते हैं। +संस्करण 1.20.0 स्थापित करने के लिए, `VERSION=1.20:1.20.0` सेट करें। + +
+ +कृपया यह करें +```shell +cat < +फिर, `$VERSION` को CRI-O संस्करण में सेट करें जो आपके Kubernetes संस्करण से मेल खाता हो। +उदाहरण के लिए, यदि आप CRI-O 1.20 इंस्टॉल करना चाहते हैं, तो `VERSION=1.20` सेट करें। +आप अपनी स्थापना को किसी विशिष्ट रिलीज़ पर पिन कर सपर पिन कर सकते हैं। +संस्करण 1.20.0 स्थापित करने के लिए, `VERSION=1.20:1.20.0` सेट करें। + +
+ +कृपया यह करें +```shell +cat < +फिर, `$VERSION` को CRI-O संस्करण में सेट करें जो आपके Kubernetes संस्करण से मेल खाता हो। +उदाहरण के लिए, यदि आप CRI-O 1.20 इंस्टॉल करना चाहते हैं, तो `VERSION=1.20` सेट करें। +आप अपनी स्थापना को किसी विशिष्ट रिलीज़ पर पिन कर सकते हैं। +संस्करण 1.20.0 स्थापित करने के लिए, `VERSION=1.20:1.20.0` सेट करें। +
+ +कृपया यह करें +```shell +sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.repo +sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo +sudo yum install cri-o +``` + +{{% /tab %}} + +{{% tab name="openSUSE Tumbleweed" %}} + +```shell +sudo zypper install cri-o +``` +{{% /tab %}} +{{% tab name="Fedora" %}} + +`$VERSION` को CRI-O संस्करण में सेट करें जो आपके Kubernetes संस्करण से मेल खाता हो। +उदाहरण के लिए, यदि आप CRI-O 1.20, `VERSION=1.20` स्थापित करना चाहते हैं। + +आप इसके साथ उपलब्ध संस्करण पा सकते हैं: +```shell +sudo dnf module list cri-o +``` +CRI-O फेडोरा पर विशिष्ट रिलीज के लिए पिनिंग का समर्थन नहीं करता है। + +फिर इसे करें: +```shell +sudo dnf module enable cri-o:$VERSION +sudo dnf install cri-o +``` + +{{% /tab %}} +{{< /tabs >}} + +इसे शुरू करें CRI-O: + +```shell +sudo systemctl daemon-reload +sudo systemctl enable crio --now +``` + +[CRI-O इंस्टॉलेशन गाइड](https://github.com/cri-o/cri-o/blob/master/install.md) + + +#### cgroup ड्राइवर + +CRI-O डिफ़ॉल्ट रूप से systemd cgroup ड्राइवर का उपयोग करता है। +`cgroupfs` cgroup ड्राइवर पर स्विच करने के लिए, या तो `/etc/crio/crio.conf` संपादित करें या `/etc/crio/crio.conf.d/02-cgroup-manager.conf` में ड्रॉप-इन कॉन्फ़िगरेशन रखें। उदाहरण के लिए: + +```toml +[crio.runtime] +conmon_cgroup = "pod" +cgroup_manager = "cgroupfs" +``` +कृपया बदले हुए `conmon_cgroup` पर भी ध्यान दें, जिसे `cgroupfs` के साथ CRI-O का उपयोग करते समय `पॉड` मान पर सेट करना होगा। +आमतौर पर क्यूबलेट के cgroup ड्राइवर कॉन्फ़िगरेशन (आमतौर पर kubeadm के माध्यम से किया जाता है) और CRI-O को सिंक में रखना आवश्यक है। + +### Docker + +1.अपने प्रत्येक नोड पर, अपने लिनक्स वितरण के लिए डॉकर को निम्नानुसार स्थापित करें +[Docker Engine स्थापित करें](https://docs.docker.com/engine/install/#server). +आप इसमें डॉकर का नवीनतम मान्य संस्करण पा सकते हैं [निर्भरता](https://git.k8s.io/kubernetes/build/dependencies.yaml) फ़ाइल. + +2.कंटेनर के समूह के प्रबंधन के लिए विशेष रूप से सिस्टमड का उपयोग करने के लिए डॉकर डेमॉन को कॉन्फ़िगर करें। + ```shell + sudo mkdir /etc/docker + cat <}} + `overlay2` Linux कर्नेल संस्करण 4.0 या उच्चतर, या RHEL या CentOS संस्करण 3.10.0-514 और इसके बाद के संस्करण का उपयोग करने वाले सिस्टम के लिए पसंदीदा स्टोरेज ड्राइवर है। + {{< /note >}} +3. डॉकर को पुनरारंभ करें और बूट पर सक्षम करें: + ```shell + sudo systemctl enable docker + sudo systemctl daemon-reload + sudo systemctl restart docker + ``` +{{< note >}} +अधिक जानकारी के लिए देखें + - [डॉकर डेमॉन को कॉन्फ़िगर करें](https://docs.docker.com/config/daemon/) + - [सिस्टमड के साथ डॉकर को नियंत्रित करें](https://docs.docker.com/config/daemon/systemd/) +{{< /note >}} \ No newline at end of file