वर्चुअलाइज़ेशन

cloud-init क्या है?

परिभाषा

cloud-init is the standard mechanism for configuring a virtual machine on first boot, using metadata supplied by the platform. It handles SSH key injection, hostname, network configuration and arbitrary user scripts, which is what makes fully automated provisioning possible.

cloud-init क्यों मायने रखता है

यह SSH कुंजी इंजेक्शन, होस्टनाम, नेटवर्क कॉन्फ़िगरेशन और मनमाने उपयोगकर्ता स्क्रिप्ट संभालता है, जो पूर्णतः स्वचालित प्रावधान को संभव बनाता है।

व्यवहार में cloud-init

ताज़ा बूट पर, cloud-init आपकी सेवाएँ शुरू होने से पहले चलता है। आप 'running modules' के लिए कंसोल देखेंगे और /var/log/cloud-init-output.log जाँचेंगे। गलत user-data स्क्रिप्ट बूट को लटका सकती है या SSH को लॉक कर सकती है। आप पहले डिस्पोज़ेबल इंस्टेंस में परीक्षण करेंगे। आप 'cloud-init clean' के साथ फिर से चला सकते हैं और रीबूट कर सकते हैं। गलत करने पर पैनल से पुनः प्रोविज़निंग में समय लगता है, या मैन्युअल रूप से ठीक करने के लिए VNC सेशन।

लोग cloud-init के बारे में क्या गलत समझते हैं

आम गलती यह मान लेना है कि cloud-init हर बूट पर फिर से चलता है। यह पहले बूट पर एक बार चलता है। यदि आप user-data में कोई स्क्रिप्ट जोड़ते हैं और उम्मीद करते हैं कि यह रीस्टार्ट पर लागू होगी, तो ऐसा नहीं होगा। सुधार: इसे केवल प्रारंभिक प्रोविज़निंग के लिए उपयोग करें, या ताज़ा रन के लिए स्थिति रीसेट करने हेतु स्पष्ट रूप से 'cloud-init clean' कॉल करें।

cloud-init — सामान्य प्रश्न

मैं cloud-init को user-data कैसे पास करूँ?

जब आप पैनल या API से प्रोविज़न करते हैं, तो आप user-data फ़ील्ड प्रदान कर सकते हैं। यह मेटाडेटा के माध्यम से इंजेक्ट किया जाता है, और cloud-init इसे पहले बूट पर लागू करता है। इसे शेल स्क्रिप्ट या cloud-config YAML के रूप में रखें, जो आपको चाहिए उसके आधार पर।

क्या मैं कस्टम ISO के साथ cloud-init का उपयोग कर सकता हूँ?

हाँ, यदि ISO में cloud-init स्थापित है। उदाहरण के लिए, प्रमुख डिस्ट्रो के क्लाउड इमेज में यह शामिल होता है। आप cloud-init के साथ अपनी खुद की इमेज भी अपलोड कर सकते हैं। सुनिश्चित करें कि इंस्टेंस KVM है, कंटेनर नहीं, क्योंकि cloud-init प्लेटफ़ॉर्म द्वारा प्रदान किए गए मेटाडेटा पर निर्भर करता है।

वर्चुअलाइज़ेशन से अधिक

KVM
KVM लिनक्स कर्नेल में निर्मित पूर्ण हार्डवेयर वर्चुअलाइज़ेशन है, जो प्रत्येक अतिथि को अपना कर्नेल और अन्य टेनेंट से हार्डवेयर-प्रवर्तित अलगाव देता है।
OpenVZ
OpenVZ कंटेनर-आधारित वर्चुअलाइज़ेशन है जिसमें प्रत्येक इंस्टेंस होस्ट कर्नेल साझा करता है, इसलिए अतिथि कर्नेल मॉड्यूल लोड नहीं कर सकते हैं या एक अलग ऑपरेटिंग सिस्टम नहीं चला सकते हैं।
LXC
LXC लिनक्स-नेटिव कंटेनरीकरण है जो नेमस्पेस और cgroups के साथ प्रक्रियाओं को अलग करता है जबकि होस्ट कर्नेल साझा करता है।
हाइपरवाइज़र
हाइपरवाइज़र सॉफ़्टवेयर परत है जो वर्चुअल मशीन बनाता है और चलाता है, उनके बीच भौतिक CPU, मेमोरी और IO आवंटित करता है।
नेस्टेड वर्चुअलाइज़ेशन
नेस्टेड वर्चुअलाइज़ेशन एक वर्चुअल मशीन को स्वयं वर्चुअल मशीन चलाने देता है, अतिथि को प्रोसेसर वर्चुअलाइज़ेशन एक्सटेंशन उजागर करके।
vCPU
वीपीयू एक वर्चुअल प्रोसेसर है जो गेस्ट को प्रस्तुत होता है, जो भौतिक कोर या थ्रेड पर शेड्यूलिंग समय द्वारा समर्थित होता है।