This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

कार्य

कुबेरनेट्स प्रलेखन के इस खंड के पृष्ठ एकल कार्य करने का तरीका दिखाते हैं। आमतौर पर, कार्य पृष्ठ दिखाता है कि किसी एक काम को कई छोटे चरणों में विभाजित करके कैसे करना है।

यदि आप एक कार्य पृष्ठ लिखना चाहते हैं, तो देखें प्रलेखन के लिए एक पुल अनुरोध (Pull Request) बनाएं.

1 - उपकरण स्थापित करें

अपने कंप्यूटर पर कुबेरनेट्स टूल सेटअप करें।

kubectl

कुबेरनेट्स कमांड-लाइन टूल, kubectl, आपको कुबेरनेट्स क्लस्टर पर कमांड चलाने की अनुमति देता है।

आप एप्लिकेशन को डिप्लॉय करने, क्लस्टर संसाधनों का निरीक्षण और प्रबंधन करने और लॉग देखने के लिए kubectl का उपयोग कर सकते हैं।

kubectl संचालन की पूरी सूची सहित अधिक जानकारी के लिए, देखें kubectl संदर्भ प्रलेखन.

kubectl विभिन्न प्रकार के Linux प्लेटफॉर्म, macOS और Windows पर इंस्टॉल करने योग्य है। नीचे अपना उपयुक्त ऑपरेटिंग सिस्टम खोजें।

kind

kind आपको अपने कंप्यूटर पर कुबेरनेट्स चलाने देता है। इस उपकरण के लिए आवश्यक है कि आपके पास Docker इंस्टॉल और कॉन्फ़िगर किया गया हो।

kind क्विक स्टार्ट पृष्ठ आपको दिखाता है कि kind चलाने के लिए आपको क्या करने की आवश्यकता है।

kind क्विक स्टार्ट गाइड देखें

minikube

kind की तरह, minikube एक उपकरण है जो आपको स्थानीय स्तर पर कुबेरनेट्स चलाने देता है। minikube आपके कंप्यूटर (windows, macOS और linux पीसी सहित) पर सिंगल-नोड कुबेरनेट्स क्लस्टर चलाता है ताकि आप कुबेरनेट्स सीख सकें या डेवलपमेंट कर सकें।

यदि आपका ध्यान उपकरण को इंस्टॉल करने पर है तो आप मुख्य आरंभ करें! गाइड का अनुसरण कर सकते हैं।

minikube क्विक स्टार्ट गाइड देखें

एक बार जब आपके पास minikube काम कर रहा हो, तो आप इसका उपयोग नमूना एप्लिकेशन चलाने के लिए कर सकते हैं।

kubeadm

कुबेरनेट्स क्लस्टर बनाने और प्रबंधित करने के लिए आप kubeadm टूल का उपयोग कर सकते हैं। यह उपयोगकर्ता के अनुकूल तरीके से न्यूनतम व्यवहार्य, सुरक्षित क्लस्टर बनाने और चलाने के लिए आवश्यक कार्य करता है।

kubeadm इंस्टॉल करना आपको दिखाता है कि kubeadm को कैसे इंस्टॉल किया जाए। एक बार इंस्टॉल होने के बाद, आप इसका उपयोग क्लस्टर बनाने के लिए कर सकते हैं।

kubeadm इंस्टॉल गाइड देखें

1.1 - Linux पर kubectl इंस्टॉल और सेट अप करें

शुरू करने से पहले

आप kubectl संस्करण का उपयोग करे जो आपके क्लस्टर के एक माइनर संस्करण के भीतर हो। उदाहरण के लिए, v1.33 क्लाइंट v1.32, v1.33 और v1.34 कण्ट्रोल प्लेन के साथ संवाद कर सकते हैं। kubectl के नवीनतम संस्करण का उपयोग करने से अप्रत्याशित मुद्दों से बचने में मदद मिलती है।

Linux पर kubectl इंस्टॉल करें

Linux पर kubectl संस्थापित करने के लिए निम्नलिखित विधियाँ मौजूद हैं:

Linux पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें

  1. कमांड से नवीनतम रिलीज डाउनलोड करें:

    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    
  2. बाइनरी को मान्य करें (वैकल्पिक)

kubectl चेकसम फाइल डाउनलोड करें:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

चेकसम फ़ाइल से kubectl बाइनरी को मान्य करें:

echo "$(<kubectl.sha256) kubectl" | sha256sum --check

यदि मान्य है, तो आउटपुट है:

kubectl: OK

अगर चेक फेल हो जाता है, तो sha256 nonzero स्थिति के साथ बाहर निकलता है और इस आउटपुट के समान प्रिंट करता है:

kubectl: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
  1. kubectl इंस्टॉल करें

    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    
  2. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:

    kubectl version --client
    

नेटिव पैकेज मैनेजमेंट के माध्यम से इंस्टॉल करें

  1. apt पैकेज इंडेक्स को अपडेट करे और कुबेरनेट्स apt रिपॉजिटरी का उपयोग करने के लिए आवश्यक पैकेज इंस्टॉल करें:

    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
    
  2. गूगल क्लाउड पब्लिक साइनिंग कुंजी (key) डाउनलोड करें:

    sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
    
  3. कुबेरनेट्स apt रिपॉजिटरी को जोड़े:

    echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    
  4. नए रिपॉजिटरी के साथ apt पैकेज इंडेक्स अपडेट करें और kubectl इंस्टॉल करें:

    sudo apt-get update
    sudo apt-get install -y kubectl
    


cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl

अन्य पैकेज मैनेजमेंट के माध्यम से इंस्टॉल करें

यदि आप Ubuntu या किसी अन्य Linux डिस्ट्रीब्यूशन पर हैं जो snap पैकेज मैनेजर को सपोर्ट करता है, तो kubectl snap एप्लिकेशन के रूप में उपलब्ध है।

snap install kubectl --classic
kubectl version --client

यदि आप Linux पर Homebrew पैकेज मैनेजर का उपयोग कर रहे हैं, तो kubectl इंस्टालेशन के लिए उपलब्ध है।

brew install kubectl
kubectl version --client

kubectl कॉन्फ़िगरेशन सत्यापित करें

kubectl को कुबेरनेट्स क्लस्टर को खोजने और एक्सेस करने के लिए, उसे क्यूबकॉन्फिग फाइल(kubeconfig) की आवश्यकता होती है, जो स्वचालित रूप से तब बनता है जब आप kube-up.sh का उपयोग करके क्लस्टर बनाते हैं या मिनीक्यूब क्लस्टर को सफलतापूर्वक डिप्लॉय करते हैं। डिफ़ॉल्ट रूप से, kubectl कॉन्फ़िगरेशन ~/.kube/config पर स्थित होता है।

जाँच करें कि क्लस्टर स्टेट प्राप्त करके kubectl को ठीक से कॉन्फ़िगर किया गया है:

kubectl cluster-info

यदि आपको एक URL प्रतिक्रिया दिखती हैं, तो kubectl आपके क्लस्टर तक पहुँचने के लिए सही ढंग से कॉन्फ़िगर हुआ है।

यदि आपको निम्नलिखित संदेश दिखाई देता है, तो kubectl ठीक से कॉन्फ़िगर नहीं हुआ है या कुबेरनेट्स क्लस्टर से कनेक्ट करने में सक्षम नहीं है।

The connection to the server <server-name:port> was refused - did you specify the right host or port?

उदाहरण के लिए, यदि आप अपने लैपटॉप (स्थानीय रूप से) पर कुबेरनेट्स क्लस्टर चलाना चाहते हैं, तो आपको पहले मिनीक्यूब (minikube) जैसे टूल को इंस्टॉल करना होगा और ऊपर बताए गए कमांड को फिर से चलाना होगा।

यदि kubectl cluster-info URL प्रतिक्रिया देता है, लेकिन आप अपने क्लस्टर को एक्सेस नहीं कर पा रहें हैं, तो यह जाँचने के लिए कि क्या यह ठीक से कॉन्फ़िगर किया गया है, इस कमांड का उपयोग करें:

kubectl cluster-info dump

वैकल्पिक kubectl कॉन्फ़िगरेशन और प्लगइन्स

शेल ऑटोकम्प्लेशन सक्षम करें

kubectl Bash और Zsh के लिए ऑटोकम्प्लेशन का सपोर्ट प्रदान करता है, जो आपका काफी समय बचा सकता है।

नीचे Bash और Zsh के लिए ऑटोकम्प्लेशन स्थापित करने की प्रक्रियाएँ हैं।

परिचय

Bash के लिए kubectl समापन स्क्रिप्ट kubectl completion bash कमांड के साथ उत्पन्न की जा सकती है। आपके शेल में समापन स्क्रिप्ट को सोर्स करने से kubectl ऑटोकम्पलीशन सक्षम हो जाती है।

हालाँकि, समापन की स्क्रिप्ट bash-completion पर निर्भर हैं जिसका अर्थ है कि आपको पहले इस सॉफ़्टवेयर को इंस्टॉल करना होगा (आप type _init_completion चलाकर परीक्षण कर सकते हैं कि आपने पहले से bash-completion इंस्टॉल की है या नहीं)।

Bash-completion को इंस्टॉल करें

कई पैकेज मैनेजर द्वारा bash-completion प्रदान की जाती है (यहाँ देखें)। आप इसे apt-get install bash-completion या yum install bash-completion आदि के साथ इंस्टॉल कर सकते हैं।

यह कमांड /usr/share/bash-completion/bash_completion उत्त्पन्न करता है, जो bash-completion की मुख्य स्क्रिप्ट है। आपके पैकेज मैनेजर के आधार पर, आपको इस फाइल को अपनी ~/.bashrc फाइल में मैन्युअल रूप से सोर्स करना होगा।

यह पता लगाने के लिए, अपना शेल पुनः लोड करें और type _init_completion रन करे। यदि कमांड सफल होता है, तो आप पहले से ही तैयार हैं, अन्यथा अपनी ~/.bashrc फ़ाइल में निम्नलिखित जोड़ें:

source /usr/share/bash-completion/bash_completion

अपना शेल पुनः लोड करें और type _init_completion टाइप करके सत्यापित करें कि बैश-कम्पलीशन सही ढंग से इंस्टॉल है।

kubectl ऑटोकम्पलीशन सक्षम करे

अब आपको यह सुनिश्चित करने की आवश्यकता है कि kubectl समापन स्क्रिप्ट आपके सभी शेल सत्रों (sourced) में प्राप्त हो जाए। आप ऐसा दो तरीकों से कर सकते हैं:

  • अपनी ~/.bashrc फ़ाइल में समापन स्क्रिप्ट सॉर्स करें:

    echo 'source <(kubectl completion bash)' >>~/.bashr
    
  • समापन स्क्रिप्ट को /etc/bash_completion.d डायरेक्टरी में जोड़ें: bash kubectl completion bash >/etc/bash_completion.d/kubectl

यदि आप के पास kubectl के लिए एक अन्य नाम (alias) है, तो आप उस अन्य नाम के साथ काम करने के लिए शेल समापन को बढ़ा सकते हैं:

echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc

दोनों दृष्टिकोण बराबर हैं। आपके शेल को पुनः लोड करने के बाद, Kubectl ऑटोकम्पलीशन कार्य करना शुरू कर देगा।

Zsh के लिए kubectl कम्पलीशन स्क्रिप्ट kubectl completion zsh कमांड के साथ उत्पन्न की जा सकती है। आपके शेल में कम्पलीशन स्क्रिप्ट को सोर्स करने से kubectl ऑटो-कम्पलीशन सक्षम हो जाती है।

अपने सभी शेल सत्रों में ऐसा करने के लिए, निम्नलिखित को अपनी ~/.zshrc फ़ाइल में जोड़ें:

source <(kubectl completion zsh)

यदि आपके पास kubectl के लिए एक उपनाम है, तो आप उस उपनाम के साथ काम करने के लिए शेल कम्पलीशन को बढ़ा सकते हैं:

echo 'alias k=kubectl' >>~/.zshrc
echo 'complete -F __start_kubectl k' >>~/.zshrc

अपने शेल को पुनः लोड करने के बाद, kubectl ऑटो-कम्पलीशन कार्य करना चाहिए।

यदि आपको कोई त्रुटि मिलती है जैसे complete:13: command not found: compdef, तो अपनी ~/.zshrc फ़ाइल की शुरुआत में निम्नलिखित जोड़ें:

autoload -Uz compinit
compinit

kubectl convert प्लगइन इंस्टॉल करें

कुबेरनेट्स कमांड-लाइन टूल kubectl के लिए एक प्लगइन, जो आपको विभिन्न API संस्करण के बीच मैनिफ़ेस्ट को बदलने करने की अनुमति देता है। यह विशेष रूप से नए कुबेरनेट्स रिलीज के साथ एक गैर-बहिष्कृत API संस्करण में मैनिफेस्ट को माइग्रेट करने में सहायक हो सकता है। अधिक जानकारी के लिए, गैर पदावनत एपिस में विस्थापित करें पर जाएं।

  1. कमांड से नवीनतम रिलीज डाउनलोड करें:

    curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert
    
  2. बाइनरी को मान्य करें (वैकल्पिक)

    kubectl-convert चेकसम फ़ाइल डाउनलोड करें:

    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"
    

    चेकसम फ़ाइल से kubectl-convert बाइनरी को मान्य करें:

    echo "$(<kubectl-convert.sha256) kubectl-convert" | sha256sum --check
    

    यदि मान्य है, तो आउटपुट है:

    kubectl-convert: OK
    

    अगर चेक फेल हो जाता है, तो sha256 nonzero स्थिति के साथ बाहर निकलता है और इस आउटपुट के समान प्रिंट करता है:

    kubectl-convert: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    
  3. kubectl-convert इंस्टॉल करें

    sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
    
  4. सत्यापित करें कि प्लगइन सफलतापूर्वक इंस्टॉल है

    kubectl convert --help
    

    यदि आपको कोई त्रुटि नहीं दिखाई देती है, तो इसका मतलब है कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है।

आगे क्या है

1.2 - macOS पर kubectl इंस्टॉल और सेटअप करें

शुरू करने से पहले

आप kubectl संस्करण का उपयोग करे जो आपके क्लस्टर के एक माइनर संस्करण भीतर हो। उदाहरण के लिए, v1.33 क्लाइंट v1.32, v1.33 और v1.34 कण्ट्रोल प्लेन के साथ कम्युनिकेट कर सकते हैं। kubectl के नए संस्करण का उपयोग करने से समस्या से बचत हो सकती है।

macOS पर kubectl इंस्टॉल करें

macOS पर kubectl संस्थापित करने के लिए निम्नलिखित विधियाँ मौजूद हैं:

macOS पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें

  1. नवीनतम रिलीज़ डाउनलोड करें:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
       
  2. बाइनरी को मान्य करें (वैकल्पिक))

    kubectl चेकसम फाइल डाउनलोड करें:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl.sha256"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256"
       

    चेकसम फ़ाइल से kubectl बाइनरी को मान्य करें:

    echo "$(<kubectl.sha256)  kubectl" | shasum -a 256 --check
    

    यदि मान्य है, तो आउटपुट है:

    kubectl: OK
    

    अगर चेक फेल हो जाता है, तो shasum nonzero स्थिति के साथ बाहर निकलता है और इस आउटपुट के समान प्रिंट करता है:

    kubectl: FAILED
    shasum: WARNING: 1 computed checksum did NOT match
    
  3. kubectl बाइनरी को एक्सेक्यूट करने योग्य बनायें।

    chmod +x ./kubectl
    
  4. kubectl बाइनरी को अपने सिस्टम PATH के फ़ाइल स्थान पर ले जाएँ।

    sudo mv ./kubectl /usr/local/bin/kubectl
    sudo chown root: /usr/local/bin/kubectl
    
  5. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:

    kubectl version --client
    

Homebrew के माध्यम से macOS पर इंस्टॉल करें

यदि आप macOS पर हैं और Homebrew पैकेज मैनेजर का उपयोग कर रहे हैं, आप Homebrew के साथ kubectl इंस्टॉल कर सकते हैं।

  1. इंस्टालेशन कमांड रन करें:

    brew install kubectl 
    

    या

    brew install kubernetes-cli
    
  2. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:

    kubectl version --client
    

Macports के माध्यम से macOS पर इंस्टॉल करें

यदि आप macOS पर हैं और Macports पैकेज मैनेजर का उपयोग कर रहे हैं, आप Macports के साथ kubectl इंस्टॉल कर सकते हैं।

  1. इंस्टालेशन कमांड रन करें:

    sudo port selfupdate
    sudo port install kubectl
    
  2. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:

    kubectl version --client
    

kubectl कॉन्फ़िगरेशन सत्यापित करें

kubectl को कुबेरनेट्स क्लस्टर को खोजने और एक्सेस करने के लिए, उसे क्यूबकॉन्फिग फाइल(kubeconfig) की आवश्यकता होती है, जो स्वचालित रूप से तब बनता है जब आप kube-up.sh का उपयोग करके क्लस्टर बनाते हैं या मिनीक्यूब क्लस्टर को सफलतापूर्वक डिप्लॉय करते हैं। डिफ़ॉल्ट रूप से, kubectl कॉन्फ़िगरेशन ~/.kube/config पर स्थित होता है।

जाँच करें कि क्लस्टर स्टेट प्राप्त करके kubectl को ठीक से कॉन्फ़िगर किया गया है:

kubectl cluster-info

यदि आपको एक URL प्रतिक्रिया दिखती हैं, तो kubectl आपके क्लस्टर तक पहुँचने के लिए सही ढंग से कॉन्फ़िगर हुआ है।

यदि आपको निम्नलिखित संदेश दिखाई देता है, तो kubectl ठीक से कॉन्फ़िगर नहीं हुआ है या कुबेरनेट्स क्लस्टर से कनेक्ट करने में सक्षम नहीं है।

The connection to the server <server-name:port> was refused - did you specify the right host or port?

उदाहरण के लिए, यदि आप अपने लैपटॉप (स्थानीय रूप से) पर कुबेरनेट्स क्लस्टर चलाना चाहते हैं, तो आपको पहले मिनीक्यूब (minikube) जैसे टूल को इंस्टॉल करना होगा और ऊपर बताए गए कमांड को फिर से चलाना होगा।

यदि kubectl cluster-info URL प्रतिक्रिया देता है, लेकिन आप अपने क्लस्टर को एक्सेस नहीं कर पा रहें हैं, तो यह जाँचने के लिए कि क्या यह ठीक से कॉन्फ़िगर किया गया है, इस कमांड का उपयोग करें:

kubectl cluster-info dump

वैकल्पिक Kubectl कॉन्फ़िगरेशन और प्लगइन्स

शेल ऑटोकम्प्लेशन सक्षम करें

kubectl Bash और Zsh के लिए ऑटोकम्प्लेशन का सपोर्ट प्रदान करता है, जो आपका काफी समय बचा सकता है।

नीचे Bash और Zsh के लिए ऑटोकम्प्लेशन स्थापित करने की प्रक्रियाएँ हैं।

परिचय

Bash के लिए kubectl समापन स्क्रिप्ट kubectl completion bash कमांड के साथ उत्पन्न की जा सकती है। आपके शेल में समापन स्क्रिप्ट को सोर्स करने से kubectl ऑटोकम्पलीशन सक्षम हो जाती है।```

हालाँकि, समापन की स्क्रिप्ट bash-completion पर निर्भर हैं जिसका अर्थ है कि आपको पहले इस सॉफ़्टवेयर को इंस्टॉल करना होगा।

अपग्रेड बैश

निम्नलिखित निर्देश मानते हैं कि आप बैश 4.1+ का उपयोग करते हैं। आप अपने बैश के संस्करण को यह चलाकर देख सकते हैं:

echo $BASH_VERSION

यदि यह बहुत पुराना है, तो आप Homebrew का उपयोग करके इसे इनस्टॉल/अपग्रेड कर सकते हैं:

brew install bash

अपने शेल को पुनः लोड करें और सत्यापित करें कि इच्छित संस्करण का उपयोग किया जा रहा है:

echo $BASH_VERSION $SHELL

Homebrew आमतौर पर इसे /usr/local/bin/bash पर इनस्टॉल करता है।

इनस्टॉल bash-completion

आप type_init_completion से सत्यापित कर सकते हैं कि क्या आपके पास bash-completion v2 पहले से इनस्टॉल है। यदि नहीं, तो आप इसे Homebrew से इनस्टॉल कर सकते हैं

brew install bash-completion@2

जैसा कि इस कमांड के आउटपुट में बताया गया है, अपनी ~/.bash_profile फ़ाइल में निम्नलिखित जोड़ें:

export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"

[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"

अपने शेल को पुनः लोड करें और type_init_completion से सत्यापित करें कि bash-completion v2 सही ढंग से इनस्टॉल है।

kubectl ऑटोकम्पलीशन सक्षम करें

अब आपको यह सुनिश्चित करने की आवश्यकता है कि kubectl समापन स्क्रिप्ट आपके सभी शेल सत्रों (sourced) में प्राप्त हो जाए। इसे हासिल करने के कई तरीके हैं:

  • अपने कम्पलीशन स्क्रिप्ट को ~/.bash_profile में सोर्स करें:

    echo 'source <(kubectl completion bash)' >>~/.bash_profile
    
  • कम्पलीशन स्क्रिप्ट को /usr/local/etc/bash_completion.d डायरेक्टरी में जोड़ें:

    kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
    
  • यदि आपके पास kubectl के लिए एक नाम (alias) है, तो आप उस उपनाम के साथ काम करने के लिए शेल कम्पलीशन को बढ़ा सकते हैं:

    echo 'alias k=kubectl' >>~/.bash_profile
    echo 'complete -F __start_kubectl k' >>~/.bash_profile
    
  • यदि आपने Homebrew के साथ kubectl इनस्टॉल किया है (जैसा कि यहां बताया गया है), तो kubectl कम्पलीशन स्क्रिप्ट पहले से ही /usr/local/etc/bash_completion.d/kubectl में होनी चाहिए। ऐसे में आपको कुछ भी करने की जरूरत नहीं है।

किसी भी स्थिति में, आपके शेल को पुनः लोड करने के बाद, Kubectl पूर्णता कार्य करना चाहिए।

Zsh के लिए kubectl कम्पलीशन स्क्रिप्ट kubectl completion zsh कमांड के साथ उत्पन्न की जा सकती है। आपके शेल में कम्पलीशन स्क्रिप्ट को सोर्स करने से kubectl ऑटो-कम्पलीशन सक्षम हो जाती है।

अपने सभी शेल सत्रों में ऐसा करने के लिए, निम्नलिखित को अपनी ~/.zshrc फ़ाइल में जोड़ें:

source <(kubectl completion zsh)

यदि आपके पास kubectl के लिए एक उपनाम है, तो आप उस उपनाम के साथ काम करने के लिए शेल कम्पलीशन को बढ़ा सकते हैं:

echo 'alias k=kubectl' >>~/.zshrc
echo 'complete -F __start_kubectl k' >>~/.zshrc

अपने शेल को पुनः लोड करने के बाद, kubectl ऑटो-कम्पलीशन कार्य करना चाहिए।

यदि आपको कोई त्रुटि मिलती है जैसे complete:13: command not found: compdef, तो अपनी ~/.zshrc फ़ाइल की शुरुआत में निम्नलिखित जोड़ें:

autoload -Uz compinit
compinit

kubectl convert प्लगइन इंस्टॉल करें

कुबेरनेट्स कमांड-लाइन टूल kubectl के लिए एक प्लगइन, जो आपको विभिन्न API संस्करण के बीच मैनिफ़ेस्ट को बदलने करने की अनुमति देता है। यह विशेष रूप से नए कुबेरनेट्स रिलीज के साथ एक गैर-बहिष्कृत API संस्करण में मैनिफेस्ट को माइग्रेट करने में सहायक हो सकता है। अधिक जानकारी के लिए, गैर पदावनत एपिस में विस्थापित करें पर जाएं।

  1. इस कमांड से नवीनतम रिलीज डाउनलोड करें:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert"
       
  2. बाइनरी को मान्य करें (वैकल्पिक)

    kubectl-convert चेकसम फ़ाइल डाउनलोड करें:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert.sha256"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert.sha256"
       

    चेकसम फ़ाइल से kubectl-convert बाइनरी को मान्य करें:

    echo "$(<kubectl-convert.sha256)  kubectl-convert" | shasum -a 256 --check
    

    यदि मान्य है, तो आउटपुट है:

    kubectl-convert: OK
    

    अगर चेक फेल हो जाता है, तो sha256 nonzero स्थिति के साथ बाहर निकलता है और इस आउटपुट के समान प्रिंट करता है:

    kubectl-convert: FAILED
    shasum: WARNING: 1 computed checksum did NOT match
    
  3. Kubectl-कन्वर्ट बाइनरी को एक्सेक्यूट करने योग्य बनाएं

    chmod +x ./kubectl-convert
    
  4. kubectl-convert binary बाइनरी को अपने सिस्टम PATH के फ़ाइल स्थान पर ले जाएँ।

    sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert
    sudo chown root: /usr/local/bin/kubectl-convert
    
  5. सत्यापित करें कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है

    kubectl convert --help
    

    यदि आपको कोई त्रुटि नहीं दिखाई देती है, तो इसका मतलब है कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है।

आगे क्या है

1.3 - Windows पर kubectl इंस्टॉल और सेटअप करें

शुरू करने से पहले

आप kubectl संस्करण का उपयोग करे जो आपके क्लस्टर के एक माइनर संस्करण भीतर हो। उदाहरण के लिए, v1.33 क्लाइंट v1.32, v1.33 और v1.34 कण्ट्रोल प्लेन के साथ कम्युनिकेट कर सकते हैं। kubectl के नए संस्करण का उपयोग करने से समस्या से बचत हो सकती है।

Windows पर kubectl इंस्टॉल करें

Windows पर kubectl संस्थापित करने के लिए निम्नलिखित विधियाँ मौजूद हैं:

Windows पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें

  1. latest release 1.33.0 डाउनलोड करें।

    या यदि आपके पास curl है, तो इस कमांड का उपयोग करें:

    curl -LO https://dl.k8s.io/release/v1.33.0/bin/windows/amd64/kubectl.exe
    
  2. बाइनरी को मान्य करें (वैकल्पिक)

    kubectl चेकसम फाइल डाउनलोड करें:

    curl -LO https://dl.k8s.io/v1.33.0/bin/windows/amd64/kubectl.exe.sha256
    

    चेकसम फ़ाइल से kubectl बाइनरी को मान्य करें:

    • मैन्युअल रूप से कमांड प्रॉम्प्ट का उपयोग करके CertUtil के आउटपुट की तुलना डाउनलोडेड चेकसम फ़ाइल से करें:

      CertUtil -hashfile kubectl.exe SHA256
      type kubectl.exe.sha256
      
    • True या False परिणाम प्राप्त करने के लिए -eq ऑपरेटर का उपयोग करके सत्यापन को ऑटोमेट करने के लिए powershell का उपयोग करें:

       $(Get-FileHash -Algorithm SHA256 .\kubectl.exe).Hash -eq $(Get-Content .\kubectl.exe.sha256)
      
  3. अपने PATH में बाइनरी जोड़ें।

  4. यह सुनिश्चित करने के लिए परीक्षण करें कि kubectl संस्करण डाउनलोड के समान है:

    kubectl version --client
    

Chocolatey या Scoop का उपयोग करके Windows पर इंस्टॉल करें

  1. Windows पर kubectl इंस्टॉल करने के लिए आप या तो Chocolatey पैकेज मैनेजर अथवा Scoop कमांड-लाइन इंस्टॉलर का उपयोग कर सकते हैं।

    choco install kubernetes-cli
    

    scoop install kubectl
    
  2. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:

    kubectl version --client
    
  3. अपनी होम डायरेक्टरी पर जाएं:

    # यदि आप cmd.exe का प्रयोग कर रहे हैं, तो: cd %USERPROFILE%
    cd ~
    
  4. .kube डायरेक्टरी बनाएं:

    mkdir .kube
    
  5. आपके द्वारा अभी बनाई गई .kube डायरेक्टरी में जाएं:

    cd .kube
    
  6. दूरस्थ कुबेरनेट्स क्लस्टर का उपयोग करने के लिए kubectl को कॉन्फ़िगर करें:

    New-Item config -type file
    

kubectl कॉन्फ़िगरेशन सत्यापित करें

kubectl को कुबेरनेट्स क्लस्टर को खोजने और एक्सेस करने के लिए, उसे क्यूबकॉन्फिग फाइल(kubeconfig) की आवश्यकता होती है, जो स्वचालित रूप से तब बनता है जब आप kube-up.sh का उपयोग करके क्लस्टर बनाते हैं या मिनीक्यूब क्लस्टर को सफलतापूर्वक डिप्लॉय करते हैं। डिफ़ॉल्ट रूप से, kubectl कॉन्फ़िगरेशन ~/.kube/config पर स्थित होता है।

जाँच करें कि क्लस्टर स्टेट प्राप्त करके kubectl को ठीक से कॉन्फ़िगर किया गया है:

kubectl cluster-info

यदि आपको एक URL प्रतिक्रिया दिखती हैं, तो kubectl आपके क्लस्टर तक पहुँचने के लिए सही ढंग से कॉन्फ़िगर हुआ है।

यदि आपको निम्नलिखित संदेश दिखाई देता है, तो kubectl ठीक से कॉन्फ़िगर नहीं हुआ है या कुबेरनेट्स क्लस्टर से कनेक्ट करने में सक्षम नहीं है।

The connection to the server <server-name:port> was refused - did you specify the right host or port?

उदाहरण के लिए, यदि आप अपने लैपटॉप (स्थानीय रूप से) पर कुबेरनेट्स क्लस्टर चलाना चाहते हैं, तो आपको पहले मिनीक्यूब (minikube) जैसे टूल को इंस्टॉल करना होगा और ऊपर बताए गए कमांड को फिर से चलाना होगा।

यदि kubectl cluster-info URL प्रतिक्रिया देता है, लेकिन आप अपने क्लस्टर को एक्सेस नहीं कर पा रहें हैं, तो यह जाँचने के लिए कि क्या यह ठीक से कॉन्फ़िगर किया गया है, इस कमांड का उपयोग करें:

kubectl cluster-info dump

वैकल्पिक kubectl कॉन्फ़िगरेशन और प्लगइन्स

शेल ऑटोकम्प्लेशन सक्षम करें

kubectl Bash और Zsh के लिए ऑटोकम्प्लेशन का सपोर्ट प्रदान करता है, जो आपको बहुत सारी टाइपिंग बचा सकता है।

नीचे Zsh के लिए ऑटोकम्प्लेशन स्थापित करने की प्रक्रियाएँ हैं, यदि आप इसे Windows पर चला रहे हैं।

Zsh के लिए kubectl कम्पलीशन स्क्रिप्ट kubectl completion zsh कमांड के साथ उत्पन्न की जा सकती है। आपके शेल में कम्पलीशन स्क्रिप्ट को सोर्स करने से kubectl ऑटो-कम्पलीशन सक्षम हो जाती है।

अपने सभी शेल सत्रों में ऐसा करने के लिए, निम्नलिखित को अपनी ~/.zshrc फ़ाइल में जोड़ें:

source <(kubectl completion zsh)

यदि आपके पास kubectl के लिए एक उपनाम है, तो आप उस उपनाम के साथ काम करने के लिए शेल कम्पलीशन को बढ़ा सकते हैं:

echo 'alias k=kubectl' >>~/.zshrc
echo 'complete -F __start_kubectl k' >>~/.zshrc

अपने शेल को पुनः लोड करने के बाद, kubectl ऑटो-कम्पलीशन कार्य करना चाहिए।

यदि आपको कोई त्रुटि मिलती है जैसे complete:13: command not found: compdef, तो अपनी ~/.zshrc फ़ाइल की शुरुआत में निम्नलिखित जोड़ें:

autoload -Uz compinit
compinit

इंस्टॉल kubectl convert प्लगइन

कुबेरनेट्स कमांड-लाइन टूल kubectl के लिए एक प्लगइन, जो आपको विभिन्न API संस्करण के बीच मैनिफ़ेस्ट को बदलने करने की अनुमति देता है। यह विशेष रूप से नए कुबेरनेट्स रिलीज के साथ एक गैर-बहिष्कृत API संस्करण में मैनिफेस्ट को माइग्रेट करने में सहायक हो सकता है। अधिक जानकारी के लिए, गैर पदावनत एपिस में विस्थापित करें पर जाएं।

  1. इस कमांड से नवीनतम रिलीज डाउनलोड करें:

    curl -LO https://dl.k8s.io/release/v1.33.0/bin/windows/amd64/kubectl-convert.exe
    
  2. बाइनरी को मान्य करें (वैकल्पिक)

    kubectl-convert चेकसम फ़ाइल डाउनलोड करें:

    curl -LO https://dl.k8s.io/v1.33.0/bin/windows/amd64/kubectl-convert.exe.sha256
    

    चेकसम फ़ाइल से kubectl-convert बाइनरी को मान्य करें:

    • मैन्युअल रूप से कमांड प्रॉम्प्ट का उपयोग करके CertUtil के आउटपुट की तुलना डाउनलोड किये गये चेकसम फ़ाइल से करें:

      CertUtil -hashfile kubectl-convert.exe SHA256
      type kubectl-convert.exe.sha256
      
    • True या False परिणाम प्राप्त करने और -eq ऑपरेटर का उपयोग करके सत्यापन को ऑटोमेट करने के लिए Powershell का उपयोग करें:

      $($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
      
  3. अपने PATH में बाइनरी जोड़ें।

  4. सत्यापित करें कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है।

    kubectl convert --help
    

    यदि आपको कोई त्रुटि नहीं दिखाई देती है, तो इसका मतलब है कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है।

आगे क्या है

2 - कुबेरनेट्स डैशबोर्ड को परिनियोजित और एक्सेस करें

वेब UI (कुबेरनेट्स डैशबोर्ड) को परिनियोजित करें और इसे एक्सेस करें।

डैशबोर्ड एक वेब-आधारित कुबेरनेट्स उपयोगकर्ता इंटरफ़ेस है। आप डैशबोर्ड का उपयोग करके कुबेरनेट्स क्लस्टर पर कंटेनरीकृत अनुप्रयोगों को परिनियोजित कर सकते हैं, अपने कंटेनरीकृत अनुप्रयोग का समस्या निवारण कर सकते हैं, और क्लस्टर संसाधनों का प्रबंधन कर सकते हैं। आप डैशबोर्ड का उपयोग करके अपने क्लस्टर पर चल रहे अनुप्रयोगों का अवलोकन प्राप्त कर सकते हैं, साथ ही व्यक्तिगत कुबेरनेट्स संसाधनों (जैसे कि Deployments, Jobs, DaemonSets, आदि) को बनाने या संशोधित करने के लिए भी। उदाहरण के लिए, आप एक परिनियोजन को स्केल कर सकते हैं, एक रोलिंग अपडेट शुरू कर सकते हैं, एक पॉड को पुनरारंभ कर सकते हैं, या एक नया अनुप्रयोग परिनियोजित कर सकते हैं।

डैशबोर्ड आपके क्लस्टर में कुबेरनेट्स संसाधनों की स्थिति और किसी भी त्रुटियों की जानकारी भी प्रदान करता है।

कुबेरनेट्स डैशबोर्ड UI

डैशबोर्ड UI को परिनियोजित करना

डैशबोर्ड UI डिफ़ॉल्ट रूप से परिनियोजित नहीं होता है। इसे परिनियोजित करने के लिए, निम्नलिखित कमांड चलाएं:

# कुबेरनेट्स-dashboard रिपॉजिटरी जोड़ें
helm repo add कुबेरनेट्स-dashboard https://कुबेरनेट्स.github.io/dashboard/
# कुबेरनेट्स-dashboard चार्ट का उपयोग करके "कुबेरनेट्स-dashboard" नामक एक Helm रिलीज़ परिनियोजित करें
helm upgrade --install कुबेरनेट्स-dashboard कुबेरनेट्स-dashboard/कुबेरनेट्स-dashboard --create-namespace --namespace कुबेरनेट्स-dashboard

डैशबोर्ड UI को एक्सेस करना

अपने क्लस्टर डेटा की सुरक्षा के लिए, डैशबोर्ड डिफ़ॉल्ट रूप से न्यूनतम RBAC कॉन्फ़िगरेशन के साथ परिनियोजित होता है। वर्तमान में, डैशबोर्ड केवल Bearer Token के साथ लॉग इन करने का समर्थन करता है। इस डेमो के लिए एक टोकन बनाने के लिए, आप हमारे गाइड का अनुसरण कर सकते हैं नमूना उपयोगकर्ता बनाने पर।

कमांड लाइन प्रॉक्सी

आप kubectl कमांड-लाइन टूल का उपयोग करके डैशबोर्ड तक पहुंच सक्षम कर सकते हैं, निम्नलिखित कमांड चलाकर:

kubectl -n कुबेरनेट्स-dashboard port-forward svc/कुबेरनेट्स-dashboard-kong-proxy 8443:443

Kubectl डैशबोर्ड को https://localhost:8443 पर उपलब्ध कराएगा।

UI केवल उस मशीन से एक्सेस किया जा सकता है जहां कमांड निष्पादित किया गया है। अधिक विकल्पों के लिए kubectl port-forward --help देखें।

स्वागत दृश्य

जब आप डैशबोर्ड को एक खाली क्लस्टर पर एक्सेस करते हैं, तो आपको स्वागत पृष्ठ दिखाई देगा। यह पृष्ठ इस दस्तावेज़ के लिए एक लिंक और अपना पहला अनुप्रयोग परिनियोजित करने के लिए एक बटन प्रदान करता है। इसके अलावा, आप यह देख सकते हैं कि आपके क्लस्टर के kube-system नेमस्पेस में कौन-कौन से सिस्टम अनुप्रयोग डिफ़ॉल्ट रूप से चल रहे हैं, जैसे कि स्वयं डैशबोर्ड।

कुबेरनेट्स डैशबोर्ड स्वागत पृष्ठ

कंटेनरीकृत अनुप्रयोगों को परिनियोजित करना

डैशबोर्ड आपको एक सरल विज़ार्ड के साथ एक कंटेनरीकृत अनुप्रयोग को एक परिनियोजन और वैकल्पिक सेवा के रूप में बनाने और परिनियोजित करने की अनुमति देता है। आप या तो मैन्युअल रूप से अनुप्रयोग विवरण निर्दिष्ट कर सकते हैं, या अनुप्रयोग कॉन्फ़िगरेशन वाले YAML या JSON मैनिफेस्ट फ़ाइल को अपलोड कर सकते हैं।

किसी भी पृष्ठ के ऊपरी दाएं कोने में CREATE बटन पर क्लिक करें।

अनुप्रयोग विवरण निर्दिष्ट करना

परिनियोजन विज़ार्ड अपेक्षा करता है कि आप निम्नलिखित जानकारी प्रदान करें:

  • ऐप नाम (अनिवार्य): आपके अनुप्रयोग के लिए नाम। एक लेबल नाम के साथ परिनियोजन और सेवा (यदि कोई हो) में जोड़ा जाएगा।

    अनुप्रयोग का नाम चयनित कुबेरनेट्स नेमस्पेस के भीतर अद्वितीय होना चाहिए। यह एक लोअरकेस वर्ण से शुरू होना चाहिए, और एक लोअरकेस वर्ण या संख्या के साथ समाप्त होना चाहिए, और केवल लोअरकेस अक्षरों, संख्याओं और डैश (-) को शामिल करना चाहिए। यह 24 वर्णों तक सीमित है। अग्रणी और अंतिम स्थानों को अनदेखा किया जाता है।

  • कंटेनर इमेज (अनिवार्य): किसी भी रजिस्ट्री पर एक सार्वजनिक Docker कंटेनर इमेज का URL, या एक निजी इमेज (आमतौर पर Google कंटेनर रजिस्ट्री या Docker हब पर होस्ट की गई)। कंटेनर इमेज विनिर्देश को कॉलन के साथ समाप्त होना चाहिए।

  • पॉड्स की संख्या (अनिवार्य): आपके अनुप्रयोग को परिनियोजित करने के लिए लक्षित पॉड्स की संख्या। मान एक सकारात्मक पूर्णांक होना चाहिए।

    एक परिनियोजन बनाया जाएगा जो आपके क्लस्टर में वांछित पॉड्स की संख्या बनाए रखेगा।

  • सेवा (वैकल्पिक): आपके अनुप्रयोग के कुछ भागों (जैसे फ्रंटएंड्स) के लिए आप एक सेवा को बाहरी, शायद सार्वजनिक IP पते पर अपने क्लस्टर के बाहर (बाहरी सेवा) पर उजागर करना चाह सकते हैं।

    अन्य सेवाएं जो केवल क्लस्टर के अंदर से दिखाई देती हैं, उन्हें आंतरिक सेवाएं कहा जाता है।

    सेवा के प्रकार की परवाह किए बिना, यदि आप एक सेवा बनाना चुनते हैं और आपका कंटेनर एक पोर्ट (इनकमिंग) पर सुनता है, तो आपको दो पोर्ट निर्दिष्ट करने की आवश्यकता है। सेवा पोर्ट (इनकमिंग) को कंटेनर द्वारा देखे गए लक्ष्य पोर्ट पर मैप करेगी। यह सेवा आपके परिनियोजित पॉड्स को रूट करेगी। समर्थित प्रोटोकॉल TCP और UDP हैं। इस सेवा के लिए आंतरिक DNS नाम वह मान होगा जिसे आपने ऊपर अनुप्रयोग नाम के रूप में निर्दिष्ट किया है।

यदि आवश्यक हो, तो आप उन्नत विकल्प अनुभाग का विस्तार कर सकते हैं जहां आप अधिक सेटिंग्स निर्दिष्ट कर सकते हैं:

  • विवरण: यहां आप जो पाठ दर्ज करते हैं, वह एक एनोटेशन के रूप में परिनियोजन में जोड़ा जाएगा और अनुप्रयोग के विवरण में प्रदर्शित किया जाएगा।

  • लेबल्स: आपके अनुप्रयोग के लिए उपयोग किए जाने वाले डिफ़ॉल्ट लेबल्स अनुप्रयोग का नाम और संस्करण हैं। आप परिनियोजन, सेवा (यदि कोई हो), और पॉड्स पर लागू होने के लिए अतिरिक्त लेबल निर्दिष्ट कर सकते हैं, जैसे रिलीज़, पर्यावरण, टियर, विभाजन, और रिलीज़ ट्रैक।

    उदाहरण:

    release=1.0
    tier=frontend
    environment=pod
    track=stable
    
  • नेमस्पेस: कुबेरनेट्स एक ही भौतिक क्लस्टर द्वारा समर्थित कई वर्चुअल क्लस्टर का समर्थन करता है। इन वर्चुअल क्लस्टर्स को नेमस्पेस कहा जाता है। वे आपको संसाधनों को तार्किक रूप से नामित समूहों में विभाजित करने देते हैं।

    डैशबोर्ड एक ड्रॉपडाउन सूची में सभी उपलब्ध नेमस्पेस प्रदान करता है, और आपको एक नया नेमस्पेस बनाने की अनुमति देता है। नेमस्पेस नाम में अधिकतम 63 अल्फ़ान्यूमेरिक वर्ण और डैश (-) हो सकते हैं लेकिन इसमें बड़े अक्षर नहीं हो सकते। नेमस्पेस नाम केवल संख्याओं से नहीं बनना चाहिए। यदि नाम को एक संख्या के रूप में सेट किया गया है, जैसे 10, तो पॉड को डिफ़ॉल्ट नेमस्पेस में रखा जाएगा।

    यदि नेमस्पेस का निर्माण सफल होता है, तो इसे डिफ़ॉल्ट रूप से चुना जाता है। यदि निर्माण विफल होता है, तो पहला नेमस्पेस चुना जाता है।

  • इमेज पुल सीक्रेट:
    यदि निर्दिष्ट Docker कंटेनर इमेज प्राइवेट है, तो इसे पुल सीक्रेट क्रेडेंशियल्स की आवश्यकता हो सकती है।

    डैशबोर्ड एक ड्रॉपडाउन सूची में सभी उपलब्ध सीक्रेट्स प्रदान करता है, और आपको एक नया सीक्रेट बनाने की अनुमति देता है। सीक्रेट का नाम DNS डोमेन नाम सिंटैक्स का पालन करना चाहिए, उदाहरण के लिए new.image-pull.secret। सीक्रेट की सामग्री base64-एनकोडेड होनी चाहिए और .dockercfg फ़ाइल में निर्दिष्ट होनी चाहिए। सीक्रेट का नाम अधिकतम 253 वर्णों का हो सकता है।

    यदि इमेज पुल सीक्रेट का निर्माण सफल होता है, तो यह डिफ़ॉल्ट रूप से चयनित होता है। यदि निर्माण विफल होता है, तो कोई सीक्रेट लागू नहीं होता है।

  • CPU आवश्यकता (कोर) और मेमोरी आवश्यकता (MiB): आप कंटेनर के लिए न्यूनतम रिसोर्स लिमिट्स निर्दिष्ट कर सकते हैं। डिफ़ॉल्ट रूप से, पॉड्स असीमित CPU और मेमोरी लिमिट्स के साथ चलते हैं।

  • रन कमांड और रन कमांड आर्ग्युमेंट्स: डिफ़ॉल्ट रूप से, आपके कंटेनर्स निर्दिष्ट Docker इमेज के डिफ़ॉल्ट एंट्रीपॉइंट कमांड को चलाते हैं। आप डिफ़ॉल्ट को ओवरराइड करने के लिए कमांड विकल्पों और आर्ग्युमेंट्स का उपयोग कर सकते हैं।

  • प्रिविलेज्ड के रूप में चलाएं: यह सेटिंग निर्धारित करती है कि क्या प्रिविलेज्ड कंटेनर्स में प्रक्रियाएं होस्ट पर रूट के रूप में चलने वाली प्रक्रियाओं के समान हैं। प्रिविलेज्ड कंटेनर्स नेटवर्क स्टैक में हेरफेर करने और डिवाइसेस तक पहुंचने जैसी क्षमताओं का उपयोग कर सकते हैं।

  • एनवायरनमेंट वेरिएबल्स: कुबेरनेट्स एनवायरनमेंट वेरिएबल्स के माध्यम से सर्विसेज को एक्सपोज करता है। आप एनवायरनमेंट वेरिएबल्स के मान का उपयोग करके एनवायरनमेंट वेरिएबल बना सकते हैं या अपने कमांड्स को आर्ग्युमेंट्स पास कर सकते हैं। इनका उपयोग एप्लिकेशन में सर्विस खोजने के लिए किया जा सकता है। मान $(VAR_NAME) सिंटैक्स का उपयोग करके अन्य वेरिएबल्स को संदर्भित कर सकते हैं।

YAML या JSON फ़ाइल अपलोड करना

कुबेरनेट्स घोषणात्मक कॉन्फ़िगरेशन का समर्थन करता है। इस शैली में, सभी कॉन्फ़िगरेशन मैनिफेस्ट (YAML या JSON कॉन्फ़िगरेशन फ़ाइलें) में संग्रहीत की जाती हैं। मैनिफेस्ट कुबेरनेट्स API रिसोर्स स्कीमा का उपयोग करते हैं।

डिप्लॉय विज़ार्ड में एप्लिकेशन विवरण निर्दिष्ट करने के विकल्प के रूप में, आप एक या अधिक मैनिफेस्ट में अपना एप्लिकेशन परिभाषित कर सकते हैं, और डैशबोर्ड का उपयोग करके फ़ाइलें अपलोड कर सकते हैं।

डैशबोर्ड का उपयोग करना

निम्नलिखित खंड कुबेरनेट्स डैशबोर्ड UI के व्यू का वर्णन करते हैं; वे क्या प्रदान करते हैं और कैसे उपयोग किए जा सकते हैं।

नेविगेशन

जब क्लस्टर में कुबेरनेट्स ऑब्जेक्ट्स परिभाषित होते हैं, तो डैशबोर्ड उन्हें प्रारंभिक व्यू में दिखाता है। डिफ़ॉल्ट रूप से केवल default नेमस्पेस के ऑब्जेक्ट्स दिखाए जाते हैं और इसे नेविगेशन मेनू में स्थित नेमस्पेस सेलेक्टर का उपयोग करके बदला जा सकता है।

डैशबोर्ड अधिकांश कुबेरनेट्स ऑब्जेक्ट प्रकारों को दिखाता है और उन्हें कुछ मेनू श्रेणियों में समूहित करता है।

एडमिन ओवरव्यू

क्लस्टर और नेमस्पेस प्रशासकों के लिए, डैशबोर्ड नोड्स, नेमस्पेस और PersistentVolumes को सूचीबद्ध करता है और उनके लिए विस्तृत व्यू प्रदान करता है। नोड सूची व्यू में सभी नोड्स में एकत्रित CPU और मेमोरी उपयोग मेट्रिक्स शामिल हैं। विस्तृत व्यू एक नोड के लिए मेट्रिक्स, उसकी विशिष्टता, स्थिति, आवंटित संसाधन, घटनाएं और नोड पर चल रहे पॉड्स दिखाता है।

वर्कलोड्स

चयनित नेमस्पेस में चल रहे सभी एप्लिकेशन दिखाता है। यह व्यू वर्कलोड प्रकार के अनुसार एप्लिकेशन को सूचीबद्ध करता है (उदाहरण के लिए: Deployments, ReplicaSets, StatefulSets)। प्रत्येक वर्कलोड प्रकार को अलग से देखा जा सकता है। सूचियां वर्कलोड्स के बारे में कार्रवाई योग्य जानकारी को संक्षेपित करती हैं, जैसे ReplicaSet के लिए तैयार पॉड्स की संख्या या पॉड के लिए वर्तमान मेमोरी उपयोग।

वर्कलोड्स के विस्तृत व्यू स्थिति और विशिष्टता जानकारी दिखाते हैं और ऑब्जेक्ट्स के बीच संबंधों को प्रकट करते हैं। उदाहरण के लिए, ReplicaSet द्वारा नियंत्रित पॉड्स या Deployments के लिए नए ReplicaSets और HorizontalPodAutoscalers।

सर्विसेज

कुबेरनेट्स रिसोर्सेज दिखाता है जो बाहरी दुनिया के लिए सर्विसेज को एक्सपोज करने और क्लस्टर के भीतर उन्हें खोजने की अनुमति देते हैं। इस कारण से, Service और Ingress व्यू उनके द्वारा लक्षित पॉड्स, क्लस्टर कनेक्शन के लिए आंतरिक एंडपॉइंट्स और बाहरी उपयोगकर्ताओं के लिए बाहरी एंडपॉइंट्स दिखाते हैं।

स्टोरेज

स्टोरेज व्यू PersistentVolumeClaim रिसोर्सेज दिखाता है जिनका उपयोग एप्लिकेशन द्वारा डेटा स्टोर करने के लिए किया जाता है।

ConfigMaps और Secrets

सभी कुबेरनेट्स रिसोर्सेज दिखाता है जिनका उपयोग क्लस्टर में चल रहे एप्लिकेशन के लाइव कॉन्फ़िगरेशन के लिए किया जाता है। यह व्यू कॉन्फ़िग ऑब्जेक्ट्स को संपादित करने और प्रबंधित करने की अनुमति देता है और डिफ़ॉल्ट रूप से छिपे हुए सीक्रेट्स को प्रदर्शित करता है।

लॉग्स व्यूअर

पॉड सूचियां और विस्तृत पेज एक लॉग्स व्यूअर से लिंक करते हैं जो डैशबोर्ड में बिल्ट-इन है। व्यूअर एक पॉड से संबंधित कंटेनर्स के लॉग्स को विस्तार से देखने की अनुमति देता है।

लॉग्स व्यूअर

आगे क्या है

अधिक जानकारी के लिए, कुबेरनेट्स डैशबोर्ड प्रोजेक्ट पेज देखें।

3 - TLS

अपने क्लस्टर के भीतर ट्रैफ़िक को ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस) का उपयोग करके सुरक्षित करना समझें।

3.1 - क्यूबलेट के लिए प्रमाणपत्र आवर्तन कॉन्फ़िगर करें

यह पृष्ठ दिखाता है कि क्यूबलेट के लिए प्रमाणपत्र आवर्तन कैसे सक्षम और कॉन्फ़िगर कर सकते है।

फ़ीचर स्थिति: Kubernetes v1.19 [stable]

शुरू करने से पहले

  • कम से कम कुबेरनेट्स संस्करण 1.8.0 या उसके बाद की आवश्यकता है।

अवलोकन

क्यूबलेट प्रमाणपत्रों का उपयोग कुबरनेट्स API के साथ प्रमाणित करने के लिए करता है। डिफ़ॉल्ट रूप से, ये प्रमाणपत्र एक वर्ष की समाप्ति के साथ जारी किए जाते हैं ताकि उन्हें बार-बार नवीनीकृत करने की आवश्यकता न हो।

कुबरनेट्स में क्यूबलेट प्रमाणपत्र आवर्तन शामिल है, जो स्वचालित रूप से एक नई कुंजी उत्पन्न करेगा जो स्वचालित रूप से एक नई कुंजी उत्पन्न करेगा और वर्तमान प्रमाणपत्र की समाप्ति के करीब आने पर कुबरनेट्स API से एक नया प्रमाणपत्र अनुरोध करेगा। एक बार नया प्रमाणपत्र उपलब्ध हो जाने पर, यह कुबरनेट्स API के साथ कनेक्शन को प्रमाणित करने के लिए उपयोग किया जाएगा।

क्लाइंट प्रमाणपत्र रोटेशन सक्षम करना

kubelet प्रक्रिया एक प्राचल --rotate-certificates स्वीकार करती है जो नियंत्रित करती है कि क्या कुबलेट स्वचालित रूप से वर्तमान में उपयोग किए जा रहे प्रमाणपत्र की समाप्ति के करीब आने पर एक नया प्रमाणपत्र अनुरोध करेगा।

kube-controller-manager प्रक्रिया एक प्राचल स्वीकार करती है --cluster-signing-duration (--experimental-cluster-signing-duration 1.19 से पहले) जो नियंत्रित करता है कि प्रमाणपत्र कितने समय के लिए जारी किए जाएंगे।

प्रमाणपत्र रोटेशन कॉन्फ़िगरेशन को समझना

जब एक कुबलेट शुरू होता है, यदि इसे बूटस्ट्रैप करने के लिए कॉन्फ़िगर किया गया है (उपयोग करते हुए --bootstrap-kubeconfig फ्लैग), तो यह कुबरनेट्स API से कनेक्ट करने और एक प्रमाणपत्र हस्ताक्षर अनुरोध जारी करने के लिए अपने प्रारंभिक प्रमाणपत्र का उपयोग करेगा। आप प्रमाणपत्र हस्ताक्षर अनुरोधों की स्थिति देख सकते हैं:

kubectl get csr

शुरुआत में, किसी नोड पर कुबलेट से एक प्रमाणपत्र हस्ताक्षर अनुरोध की स्थिति Pending होगी। यदि प्रमाणपत्र हस्ताक्षर अनुरोध विशिष्ट मानदंडों को पूरा करता है, तो इसे नियंत्रक प्रबंधक द्वारा स्वचालित रूप से अनुमोदित किया जाएगा, और फिर इसकी स्थिति Approved होगी। इसके बाद, नियंत्रक प्रबंधक एक प्रमाणपत्र पर हस्ताक्षर करेगा, जो --cluster-signing-duration पैरामीटर द्वारा निर्दिष्ट अवधि के लिए जारी किया जाएगा, और हस्ताक्षरित प्रमाणपत्र को प्रमाणपत्र हस्ताक्षर अनुरोध से जोड़ा जाएगा।

कुबलेट कुबरनेट्स API से हस्ताक्षरित प्रमाणपत्र प्राप्त करेगा और इसे डिस्क पर लिखेगा, --cert-dir द्वारा निर्दिष्ट स्थान में। फिर कुबलेट कुबरनेट्स API से कनेक्ट करने के लिए नए प्रमाणपत्र का उपयोग करेगा।

जैसे ही हस्ताक्षरित प्रमाणपत्र की समाप्ति निकट आती है, कुबलेट स्वचालित रूप से कुबरनेट्स API का उपयोग करके एक नया प्रमाणपत्र हस्ताक्षर अनुरोध जारी करेगा। यह प्रमाणपत्र पर शेष समय के 30% और 10% के बीच किसी भी बिंदु पर हो सकता है। फिर से, नियंत्रक प्रबंधक स्वचालित रूप से प्रमाणपत्र अनुरोध को अनुमोदित करेगा और प्रमाणपत्र हस्ताक्षर अनुरोध से एक हस्ताक्षरित प्रमाणपत्र जोड़ेगा। कुबलेट कुबरनेट्स API से नया हस्ताक्षरित प्रमाणपत्र प्राप्त करेगा और इसे डिस्क पर लिखेगा। फिर यह कुबरनेट्स API के साथ कनेक्शन को नए प्रमाणपत्र का उपयोग करके पुन: कनेक्ट करने के लिए अपडेट करेगा।