Kubernetes and Private Cloud
प्रशासन में कहाँ: Kubernetes: Infrastructure › Cloud provider › CloudStack › Kubernetes (CKS) (
/infra/cloudstack?tab=k8s), फिर Services › Kubernetes (Overview, Clusters, Versions, Policy)। Private Cloud: Services › Private Cloud (Overview/vpc, VPC/vpc/list, Plans & pricing/vpc/plans)। System › Admin › License & updates के अंतर्गत दोनों मॉड्यूल चालू करें।
यह क्या करता है
- Kubernetes. ग्राहक CloudStack Kubernetes Service (CKS) के साथ आपके CloudStack पर प्रबंधित Kubernetes क्लस्टर बनाते हैं। कंट्रोल प्लेन मुफ़्त है; ग्राहक worker नोड्स के लिए भुगतान करते हैं। NexCMP प्रत्येक क्लस्टर के लिए एक अलग नेटवर्क और सार्वजनिक आईपी बनाता है और प्रत्येक ग्राहक के क्लस्टर अलग रखता है।
- Private Cloud. ग्राहकों को एक राउटर, सबनेट (टियर), फ़ायरवॉल नियमों (नेटवर्क ACL) और इसके अंदर वर्चुअल मशीनों के साथ एक प्राइवेट नेटवर्क (CloudStack VPC) मिलता है। इसे समर्पित, अनमीटर्ड गति (उदाहरण के लिए 50, 100, 500 Mbps, 1 और 3 Gbps) वाले bandwidth plan द्वारा बेचा जाता है। डिफ़ॉल्ट रूप से प्रत्येक ग्राहक के पास एक VPC हो सकता है।
दोनों CloudStack पर बने हैं और एक ही कनेक्शन के माध्यम से इसके API का उपयोग करते हैं।
आवश्यकताएं
Kubernetes
| आइटम | आवश्यकता |
|---|---|
| CloudStack | 4.23 (परीक्षण किया गया)। CKS सक्षम (cloud.kubernetes.service.enabled = true) होना चाहिए। |
| खाता | समर्पित डोमेन में एक Domain Admin खाता, ताकि NexCMP प्रत्येक ग्राहक के लिए एक CloudStack प्रोजेक्ट और उसके भीतर संसाधन सीमाएँ बना सके। CloudStack देखें। |
endpoint.url | CloudStack ग्लोबल सेटिंग आपके प्रबंधन API को इंगित करनी चाहिए, जो क्लस्टर VM से पहुंच योग्य हो। NexCMP एंडपॉइंट जाँच का मान और परिणाम दिखाता है। |
| वर्जन | Enabled स्थिति में अपनी बाइनरी ISO के साथ कम से कम एक Kubernetes समर्थित-वर्जन प्रविष्टि। जीवनकाल समाप्त हो चुके वर्जन बिक्री के लिए नहीं रखे जा सकते। |
| कंट्रोल-प्लेन ऑफरिंग | बिल्कुल 2 vCPU, 2048 MB RAM और CPU कैप (limitcpuuse = true) वाली एक निःशुल्क सेवा ऑफरिंग, जो खाते को दिखाई देती है। सर्वर cp_offering_invalid के साथ बाकी किसी भी चीज़ को अस्वीकार कर देता है। |
| नेटवर्क | CKS-सक्षम आइसोलेटेड नेटवर्क ऑफरिंग जो सक्षम है। |
| IP | बिक्री योग्य रेंज में निःशुल्क सार्वजनिक IPv4 पते; प्रत्येक क्लस्टर एक का उपयोग करता है। |
| क्षमता | कंट्रोल प्लेन और एक छोटे राउटर VM के लिए प्रत्येक क्लस्टर की आपको 2 से 4 GB RAM खर्च करनी होती है। क्षमता टैब पर नज़र रखें। |
Private Cloud
| आइटम | आवश्यकता |
|---|---|
| CloudStack | VPC सक्षम के साथ 4.23 (परीक्षित)। |
| VPC ऑफरिंग | एक VPC ऑफरिंग। डुअल-स्टैक ऑफरिंग प्रत्येक टियर को एक IPv6 /64 भी देती है। |
| टियर नेटवर्क ऑफरिंग्स | प्रत्येक बैंडविड्थ प्लान के लिए एक नेटवर्क ऑफरिंग, VPC के लिए बनाई गई, जिसमें network rate (Mbps) प्लान के बराबर हो, साथ ही 1 Mbps की एक locked ऑफरिंग जो तब लागू होती है जब कोई VPC गैर-भुगतान के लिए लॉक किया जाता है। |
| खाता | समर्पित खाता (Domain Admin अनुशंसित)। VPC नेटवर्क प्रोजेक्ट्स में नहीं, खाते में रहते हैं। |
| IP | निःशुल्क सार्वजनिक IPv4 पते (प्रत्येक VPC स्रोत NAT के लिए एक का उपयोग करता है)। |
| पता स्थान | प्रत्येक VPC को 10.128.0.0/9 से एक /16 प्राप्त होता है। उस रेंज को अपने खुद के नेटवर्क पर उपयोग न करें। |
| इस पर निर्भर करता है | CloudStack कनेक्टेड; मॉड्यूल Private Cloud। |
बुनियादी ढांचा तैयार करें
Kubernetes: CKS सक्षम करें और वर्जन जोड़ें
सेवा सक्षम करें और एंडपॉइंट सेट करें, फिर प्रबंधन सर्वर को पुनरारंभ करें:
bashcmk update configuration name=cloud.kubernetes.service.enabled value=true cmk update configuration name=endpoint.url value=https://cloudstack.example.com/client/api sudo systemctl restart cloudstack-managementendpoint.urlको क्लस्टर के कंट्रोलर द्वारा वापस कॉल किया जाता है, इसलिए यह एक ऐसा पता होना चाहिए जिसे क्लस्टर VM तक पहुँच मिल सके।CloudStack सोर्स ट्री से
create-kubernetes-binaries-iso.shस्क्रिप्ट के साथ, उस वर्जन के लिए एक Kubernetes बाइनरी ISO बनाएँ जिसे आप बेचना चाहते हैं, इसे एक वेब सर्वर पर होस्ट करें और इसे पंजीकृत करें:bashcmk add kubernetessupportedversion name="Kubernetes 1.35.0" semanticversion=1.35.0 \ url=https://files.example.com/setup-v1.35.0-calico-amd64.iso zoneid=<zone-id> \ mincpunumber=2 minmemory=2048 cmk list kubernetessupportedversions filter=name,semanticversion,state,isostateISO स्थिति के Ready होने और वर्जन के Enabled होने की प्रतीक्षा करें।
NexCMP डोमेन तक सीमित, कंट्रोल-प्लेन ऑफरिंग बनाएँ:
bashcmk create serviceoffering name=K8S-CP-2-2 displaytext="Kubernetes control plane" \ cpunumber=2 cpuspeed=1000 memory=2048 limitcpuuse=true offerha=false domainid=<domain-id>जाँच करें कि CKS नेटवर्क ऑफरिंग सक्षम है:
bashcmk list networkofferings state=Enabled forvpc=false filter=id,name
Private Cloud: ऑफरिंग्स बनाएँ
CloudStack UI में (Service Offerings › Network Offerings › Add network offering) या cmk के साथ:
सूची बनाएँ कि आपके पास क्या है:
bashcmk list vpcofferings filter=id,name,state cmk list networkofferings forvpc=true filter=id,name,networkrate,stateसक्षम VPC ऑफरिंग का उपयोग करें (यदि आप IPv6 चाहते हैं तो डुअल-स्टैक)। यदि आपको नए की आवश्यकता है, तो CloudStack की डिफ़ॉल्ट VPC ऑफरिंग को क्लोन करें और इसे सक्षम करें।
बेचे जाने वाले प्रत्येक बैंडविड्थ प्लान के लिए, VPC के लिए एक नेटवर्क ऑफरिंग बनाएँ (डिफ़ॉल्ट "isolated network offering for VPC networks" को क्लोन करें) और Network rate (Mb/s) को प्लान की गति पर सेट करें:
50,100,500,1000,3000। प्रत्येक ऑफरिंग को सक्षम करें।लॉक किए गए VPC के लिए network rate 1 (
VPC-LOCKED-1M) के साथ एक और ऑफरिंग बनाएँ: ग्राहक अभी भी SSH के माध्यम से अपने सर्वर तक पहुँच सकते हैं, लेकिन गति सीमित है।प्रत्येक offering का UUID नोट करें। NexCMP को अगले अनुभाग में इनकी आवश्यकता होगी।
भेजी गई offering ID आपके क्लाउड में मौजूद नहीं हैं
Private Cloud फ़ॉर्म में ऐसी offering UUID पहले से भरी होती हैं जो किसी अन्य CloudStack इंस्टॉलेशन से संबंधित हैं। हर एक को अपनी खुद की offering से बदलें, अन्यथा पहला VPC ऑर्डर विफल हो जाएगा।
NexCMP में कनेक्ट करें
Kubernetes
Infrastructure › Cloud provider › CloudStack खोलें और Kubernetes (CKS) टैब चुनें। दाईं ओर का कार्ड CKS status on CloudStack (read-only)
kubernetesserviceenabled,endpoint.urlको Endpoint check, CKS नेटवर्क offering,cloud.kubernetes.*सेटिंग्स तथा ISOs और संस्करणों की सूची के साथ दिखाता है। किसी चीज़ को ठीक करने के बाद Recheck पर क्लिक करें।Sales config में, Control plane Offering चुनें (यदि यह ठीक 2 vCPU / 2048 MB / CPU cap नहीं है तो एक चेतावनी दिखाई देती है), Max workers per cluster सेट करें (1 से 9: CKS नियंत्रण नोड सहित 10 नोड्स की अनुमति देता है), Enable CKS for this backend स्विच चालू करें और Save करें। कोई offering चुने जाने तक स्विच अक्षम रहता है।

Services › Kubernetes › Versions खोलें और Sync from CloudStack पर क्लिक करें। जिन संस्करणों को आप बेचते हैं उनके लिए Available for new clusters स्विच चालू करें, डिफ़ॉल्ट सेट करें और यदि चाहें तो End of life (EOL) तिथि दें।
Services › Kubernetes › Policy खोलें। Worker plans में Plan code (A-Z, 0-9, हाइफ़न, अधिकतम 16 वर्ण) के साथ प्लान जोड़ें। NVMe per worker (GB), Min and max workers तथा क्लस्टर सीमाएँ (प्रति खाता सक्रिय क्लस्टर, प्रति 24 घंटे में निर्माण, वैश्विक कैप, समवर्ती CKS संचालन) सेट करें। फिर Sell Kubernetes (CKS) स्विच चालू करें। बिक्री पर कम से कम एक प्लान अवश्य रहना चाहिए।

Private Cloud
Services › Private Cloud (Overview) खोलें। पॉलिसी कार्ड में VPC offering और Locked offering tier को अपने स्वयं के UUID से बदलें। सीमाओं (प्रति खाता VPC, टियर, VM और प्रति VPC ACL नियम, बनाने के लिए आवश्यक प्लान शुल्क के घंटों में बैलेंस, प्रति 24 घंटे में प्लान परिवर्तन, समवर्ती संचालन जहाँ 0 एक आपातकालीन स्टॉप है) और DNS सर्वर की जाँच करें। Save पर क्लिक करें (एक कारण पूछा जाता है)।

Services › Private Cloud › Plans & pricing खोलें। प्रत्येक प्लान के लिए Edit पर क्लिक करें और VND price per month, On sale तथा CloudStack tier offering UUID सेट करें जिसकी नेटवर्क दर प्लान के Mbps के बराबर हो। पंक्ति पूर्ण उपयोग पर लागत और लाभ दिखाती है, जिससे आप देख सकते हैं कि कौन से प्लान आपकी लागत से कम हैं।

Sell Private Cloud स्विच चालू करें। पहले आज़माने के लिए, Beta accounts में परीक्षण खाता ID जोड़ें: जब बिक्री स्विच बंद हो तब वे खाते सेवा का उपयोग कर सकते हैं।
सत्यापित करें
- Kubernetes: स्टेटस कार्ड
kubernetesserviceenabled: true, एक अच्छा एंडपॉइंट चेक और एक सक्षम संस्करण दिखाता है। एक ग्राहक के रूप में एक-वर्कर वाला परीक्षण क्लस्टर बनाएँ; इसे रनिंग तक पहुँचना चाहिए औरkubectl get nodesको इसे तैयार दिखाना चाहिए। बाद में इसे हटा दें: नेटवर्क और IP पूल में वापस चले जाते हैं। - Private Cloud: एक परीक्षण ग्राहक के रूप में सबसे छोटे प्लान के साथ एक VPC बनाएँ। VPC सक्रिय दिखाई देता है, एक टियर को अपना सबनेट मिलता है, टियर में एक VM VPC राउटर के माध्यम से इंटरनेट तक पहुँचती है, और किसी बड़े प्लान पर Change plan कनेक्शन छोड़े बिना लगभग 20 सेकंड के भीतर प्रभावी हो जाता है।
सीमाएँ और नोट्स
- Kubernetes: वर्करों पर प्लान की कीमतों पर VM की तरह बिल लगाया जाता है और VM सीमाओं में उन्हें VM के रूप में गिना जाता है। CKS की 10 नोड्स की सीमा के कारण एक क्लस्टर में अधिकतम 9 वर्कर हो सकते हैं।
- Kubernetes: नियंत्रण प्लेन, राउटर और क्लस्टर का सार्वजनिक IP ग्राहक के लिए मुफ़्त हैं; आप उनकी लागत वहन करते हैं।
- Private Cloud: सभी प्लान unmetered हैं। फ़ॉर्म में कीमतें प्रति माह वियतनामी डोंग हैं; लागत स्तंभ एक संदर्भ मूल्य का उपयोग करता है जो आपका नहीं है, इसलिए अपने स्वयं के नंबरों का उपयोग करें।
- एक लॉक किए गए VPC को 1 Mbps तक सीमित किया जाता है, इसका बिल नहीं भेजा जाता है और यह अपने आप हटता नहीं है।
- Private Cloud प्रति VPC एक राउटर का उपयोग करता है, न कि अतिरेक जोड़ी (redundant pair) का। यदि इसका होस्ट विफल हो जाता है, तो CloudStack इसे कुछ ही मिनटों में पुनर्निर्माण कर देता है।
ट्रबलशूटिंग
| लक्षण | कारण | सुधार |
|---|---|---|
cp_offering_invalid / "यह ऑफ़रिंग 2 vCPU / 2048 MB / limitcpuuse नहीं है" | कंट्रोल-प्लेन ऑफ़रिंग में अन्य आकार हैं या कोई CPU कैप नहीं है | चरण 3 के अनुसार ऑफ़रिंग बनाएं और इसे फिर से चुनें। |
| Enable CKS स्विच अक्षम है | कोई कंट्रोल-प्लेन ऑफ़रिंग नहीं चुनी गई | पहले एक चुनें। |
kubernetesserviceenabled: false | CloudStack में CKS बंद है | इसे सक्षम करें और मैनेजमेंट सर्वर को पुनरारंभ करें। |
| एंडपॉइंट जांच विफल होती है | क्लस्टर VM से endpoint.url तक नहीं पहुँचा जा सकता | एक पहुँचने योग्य URL सेट करें, मैनेजमेंट सर्वर को पुनरारंभ करें, Recheck पर क्लिक करें। |
| "EOL: बिक्री के लिए सक्षम नहीं किया जा सकता" | संस्करण की एंड-ऑफ़-लाइफ तिथि बीत चुकी है | एक नया संस्करण पंजीकृत करें। |
| "कोई संस्करण नहीं: Sync from CloudStack पर क्लिक करें" | कोई Kubernetes संस्करण पंजीकृत नहीं है | एक संस्करण पंजीकृत करें और सिंक करें। |
| "CKS बैकएंड बंद है: बिक्री फ़्लैग सक्षम होने पर भी ग्राहक क्लस्टर नहीं बना सकते" | बिक्री स्विच चालू है लेकिन CKS बैकएंड बंद है | CloudStack टैब पर CKS सक्षम करें। |
| "कम से कम 1 प्लान बिक्री पर होना चाहिए" | अंतिम वर्कर प्लान हटाया गया | कम से कम एक प्लान रखें, या Kubernetes बिक्री बंद करें। |
| क्लस्टर निर्माण में अटका हुआ है | पर्याप्त क्षमता नहीं है या ISO गायब है | क्षमता टैब और संस्करण की ISO स्थिति की जाँच करें। |
| पहला VPC पहले चरण में विफल हो जाता है | VPC ऑफ़रिंग या टियर ऑफ़रिंग ID मान्य नहीं है | प्रत्येक ऑफ़रिंग UUID को अपने CloudStack के किसी UUID से बदलें। |
| "cs_offering_id एक UUID होना चाहिए" | कोई ऑफ़रिंग ID एक UUID नहीं है | cmk list networkofferings से ID पेस्ट करें। |
| प्लान बदलना विफल होता है | नई टियर ऑफ़रिंग मौजूद नहीं है या नेटवर्क रेट गलत है | ऑफ़रिंग UUID और उसके नेटवर्क रेट की जाँच करें। |