कुबेरनेट्स है एक मुक्त और खुला स्रोत कंटेनर प्रबंधन प्रणाली जो उपलब्ध कराता है होस्ट कंप्यूटरों के समूहों में अनुप्रयोग कंटेनरों की तैनाती, स्केलिंग और संचालन को स्वचालित करने के लिए एक मंच।
कुबेरनेट्स के साथ, वे अपने संगठन की तैनाती कार्यों को चलाने के लिए स्वतंत्र रूप से ऑन-प्रिमाइसेस, पब्लिक और हाइब्रिड क्लाउड इन्फ्रास्ट्रक्चर का लाभ उठा सकते हैं।
उबंटू और डेरिवेटिव पर कुबेरनेट्स की स्थापना
एक व्यावहारिक स्थापना के लिए, हम एक दो-नोड क्लस्टर का उपयोग करने जा रहे हैं जो हम इस लेख में बनाएंगे जिसमें एक मास्टर नोड और एक दास नोड शामिल होगा।
दोनों नोड्स को उन पर Kubernetes स्थापित करने की आवश्यकता है। पहली चीज जो हम करने जा रहे हैं, वह है इन दोनों पर डॉकटर स्थापित करना, इसके लिए हमें बस उन पर निम्न कमांड निष्पादित करने की आवश्यकता है:
sudo apt install docker.io
सत्यापित करने के लिए कि डॉक स्थापित है, आप दोनों नोड्स पर निम्न कमांड चला सकते हैं:
docker --version
अब चलो दोनों नोड्स पर डॉकटर को सक्षम करने के लिए आगे बढ़ें:
sudo systemctl enable docker
अब अगला कदम दोनों नोड्स में कुबेरनेट्स कुंजी जोड़ने के लिए है, हम निम्नलिखित कमांड के साथ ऐसा करते हैं:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
अगला कदम दोनों प्रणालियों में निम्नलिखित भंडार जोड़ना है:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
इंस्टॉलेशन प्रक्रिया में अंतिम चरण निम्न कमांड के माध्यम से दोनों नोड्स पर Kubeadm स्थापित करना है:
sudo apt install kubeadm
वे Kubeadm वर्जन नंबर की जांच कर सकते हैं और निम्न कमांड के माध्यम से इंस्टॉलेशन को सत्यापित कर सकते हैं:
kubeadm version
कुबेरनेट्स की तैनाती
अब सिस्टम में कुबेरनेट तैनाती को लागू करने के लिए हमें स्वैप मेमोरी को निष्क्रिय करना होगा (यदि यह चल रहा है) दोनों नोड्स में
उन्हें दोनों नोड्स पर स्वैप मेमोरी को अक्षम करना चाहिएजैसा कि कुबेरनेट्स एक सिस्टम पर ठीक से काम नहीं करता है जो स्वैप मेमोरी का उपयोग करता है।
ऐसा करने के लिए, बस दौड़ें:
sudo swapoff -a
अब अगला कदम है मास्टर नोड पर इसे एक अद्वितीय होस्टनाम देने के लिए निम्नलिखित कमांड चलाएँ:
sudo hostnamectl set-hostname master-node
जबकि दास नोड के लिए हमें टाइप करना होगा:
sudo hostnamectl set-hostname slave-node
हो गया अब यह vनिम्नलिखित कमांड के साथ मास्टर नोड को इनिशियलाइज़ करने के लिए आगे बढ़ते हैं:
sudo kubeadm init --pod-network-cidr = 10.244.0.0/16
आपके इंटरनेट कनेक्शन के आधार पर प्रक्रिया में एक मिनट या अधिक समय लग सकता है। इस आदेश का आउटपुट बहुत महत्वपूर्ण है, इसलिए आपको आउटपुट में जानकारी लिखनी चाहिए, क्योंकि इसमें आईपी, टोकन और अन्य शामिल हैं।
अपने क्लस्टर का उपयोग शुरू करने के लिए, उन्हें एक नियमित उपयोगकर्ता के रूप में निम्नलिखित को चलाने की आवश्यकता है:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
अब वे प्रत्येक नोड पर रूट उपयोगकर्ताओं के रूप में निम्न चलाकर किसी भी संख्या में मशीनों में शामिल हो सकते हैं:
kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
जहां वे टुटोकैन, ट्यिप और आपके हैश की जानकारी को बदल देंगे, जो कुछ समय पहले कहा गया था कि वे लिखेंगे।
नोड्स की सूची प्राप्त करना
आप देखेंगे कि मास्टर नोड की स्थिति अभी तैयार नहीं है। ऐसा इसलिए है क्योंकि अभी तक मास्टर नोड पर कोई पॉड तैनात नहीं किया गया है और इसलिए कंटेनर नेटवर्क इंटरफ़ेस खाली है।
सूची देखने के लिए हमें केवल निष्पादन करना है:
kubectl get nodes
मास्टर नोड के माध्यम से एक पॉड नेटवर्क की तैनाती
एक पॉड नेटवर्क एक नेटवर्क के नोड्स के बीच संचार का एक साधन है। इस ट्यूटोरियल में, हम निम्नलिखित कमांड के माध्यम से अपने क्लस्टर में एक फलालैन पॉड नेटवर्क को लागू कर रहे हैं:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
नेटवर्क की स्थिति जानने के लिए, बस टाइप करें:
kubectl get pods --all-namespaces sudo kubectl get nodes
एक बार यह हो जाने के बाद, अब नेटवर्क में दास नोड को एक क्लस्टर बनाने के लिए जोड़ने का समय है, उसी तरह उन्हें मास्टर नोड की तरह जानकारी को पूरक करना होगा।
sudo kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
अब जब आप मास्टर नोड पर निम्न कमांड चलाते हैं, तो यह पुष्टि करेगा कि दो नोड, मास्टर नोड और सर्वर नोड आपके सिस्टम पर चल रहे हैं।
sudo kubectl get nodes
इससे पता चलता है कि दो-नोड क्लस्टर अब ऊपर और कुबेरनेट कंटेनर प्रबंधन प्रणाली के माध्यम से चल रहा है।