यह मान लेना आसान है कि कंटेनरों के साथ काम करते समय होस्ट की सुरक्षा मायने नहीं रखती। सच्चाई इसके ठीक उलट है: हर Kubernetes नोड एक मशीन है जो किसी इमेज से बूट होती है, और होस्ट में सेंध उस पर चल रहे सभी पॉड्स को खतरे में डाल देती है। इसलिए नोड का AMI सुरक्षा का एक अहम हिस्सा है।
आपके पास तीन रास्ते हैं: आधिकारिक ऑप्टिमाइज़्ड AMI को जस का तस इस्तेमाल करना, उसे आधार बनाकर कस्टमाइज़ करना, या अपना खुद का बनाना। गंभीर प्रोडक्शन के लिए, हार्डन्ड बेस पर कस्टमाइज़ करना या बनाना ही सुझाया जाता है।
एक अच्छे नोड AMI में क्या होना चाहिए
- कंटेनर रनटाइम के लिए ऑप्टिमाइज़्ड बेस, जिसमें containerd और kubelet सही ढंग से कॉन्फ़िगर हों।
- ऑपरेटिंग सिस्टम की CIS हार्डनिंग और, जहाँ लागू हो, CIS Benchmark for Kubernetes की भी।
- कर्नेल और कंपोनेंट्स की अद्यतन पैचिंग, समय-समय पर पुनर्निर्माण के साथ।
- ज़रूरी एजेंट —लॉग, मेट्रिक्स, सुरक्षा— तेज़ बूट के लिए पहले से इंस्टॉल।
- कोई बेक्ड सीक्रेट या क्रेडेंशियल नहीं; पहचान IAM Roles for Service Accounts (IRSA) या समकक्ष के ज़रिए।
- न्यूनतम कॉन्फ़िगरेशन: वे पैकेज और सेवाएँ हटा दें जिनकी नोड को ज़रूरत नहीं।
EKS के लिए इमेज विकल्प
| विकल्प | लाभ | कब चुनें |
|---|---|---|
| EKS ऑप्टिमाइज़्ड AMI (AL2023) | आधिकारिक, AWS द्वारा अनुरक्षित | सामान्य शुरुआती बिंदु |
| Bottlerocket | कंटेनर-केंद्रित न्यूनतम OS, अपरिवर्तनीय | अधिकतम सुरक्षा, न्यूनतम सतह |
| कस्टम AMI | हार्डनिंग और एजेंटों पर पूरा नियंत्रण | कड़ी अनुपालन आवश्यकताएँ |
नियंत्रण और सुविधा के बीच अपने संतुलन के हिसाब से नोड बेस चुनें।
Bottlerocket: पहले कंटेनर
Bottlerocket AWS का एक न्यूनतमवादी ऑपरेटिंग सिस्टम है, जो विशेष रूप से कंटेनर चलाने के लिए बना है। इसकी अटैक सरफ़ेस बेहद छोटी है, यह अपरिवर्तनीय है और इमेज के ज़रिए अपडेट होता है —हॉट पैचिंग से नहीं—, जो अपरिवर्तनीय इन्फ़्रास्ट्रक्चर के दर्शन से बख़ूबी मेल खाता है। यदि आपकी प्राथमिकता न्यूनतम रखरखाव में नोड सुरक्षा है, तो यह गंभीर मूल्यांकन का हक़दार है।
बिना तकलीफ़ नोड अपडेट करना
हार्डन्ड नोड AMI तभी काम का है जब आप नोड्स को अद्यतन रखें। यहाँ अपरिवर्तनीय पैटर्न चमकता है:
- बदलें, पैच न करें: नया AMI संस्करण प्रकाशित करें और नोड्स रोटेट करें।
- नोड ग्रुप का रोलिंग अपडेट: cordon और drain से खाली करें और एक-एक नोड बदलें।
- नए AMI के साथ प्रतिस्थापन को स्वचालित करने के लिए Managed Node Groups या Karpenter।
- PodDisruptionBudgets, ताकि रोटेशन आपकी सेवाओं की उपलब्धता पर असर न डाले।
आम गलतियाँ
- डिफ़ॉल्ट ऑप्टिमाइज़्ड AMI को महीनों बिना अपडेट किए इस्तेमाल करना।
- फ़ेडरेटेड आइडेंटिटी की जगह क्लस्टर क्रेडेंशियल इमेज में बेक कर देना।
- ख़ुद kubelet और फ़ाइल सिस्टम अनुमतियों की हार्डनिंग भूल जाना।
- नोड्स तक SSH पहुँच सीमित न करना: आदर्श रूप से शून्य SSH और केवल SSM से पहुँच।
अक्सर पूछे जाने वाले सवाल
क्या मुझे कस्टम AMI चाहिए या EKS की ऑप्टिमाइज़्ड काफ़ी है?
शुरुआत के लिए आधिकारिक ऑप्टिमाइज़्ड AMI अच्छा शुरुआती बिंदु है। यदि अनुपालन या सुरक्षा की कड़ी आवश्यकताएँ हैं, तो उसे कस्टमाइज़ करें या अपनी हार्डनिंग और एजेंटों के साथ अपना बनाएँ।
क्या Bottlerocket सामान्य Linux AMI की जगह ले लेता है?
उन नोड्स के लिए जो केवल कंटेनर चलाते हैं, हाँ: छोटी अटैक सरफ़ेस और अपरिवर्तनीय अपडेट। यह उन वर्कलोड के लिए उपयुक्त नहीं जिन्हें सामान्य-उद्देश्य OS चाहिए।
नया AMI प्रकाशित करने पर नोड्स कैसे अपडेट करूँ?
नोड ग्रुप के रोलिंग अपडेट से: उन्हें क्रमशः खाली कर बदला जाता है, PodDisruptionBudgets का सम्मान करते हुए, ताकि सेवा प्रभावित न हो।
imaxe.cloud में हम ऐसी हार्डन्ड बेस इमेज डिज़ाइन करते हैं जो आपके Kubernetes नोड्स की आदर्श नींव बनती हैं।



