یہ سمجھ لینا آسان ہے کہ کنٹینرز کے ساتھ کام کرتے ہوئے میزبان کی سلامتی اہم نہیں رہتی۔ حقیقت اس کے بالکل برعکس ہے: ہر Kubernetes نوڈ ایک مشین ہے جو کسی امیج سے بوٹ ہوتی ہے، اور میزبان میں نقب لگنے سے اس پر چلنے والے تمام پوڈز خطرے میں پڑ جاتے ہیں۔ اس لیے نوڈ کی AMI سلامتی کا ایک نازک حصہ ہے۔
آپ کے پاس تین راستے ہیں: سرکاری بہتر شدہ AMIs کو جوں کا توں استعمال کرنا، انہیں بنیاد بنا کر اپنی مرضی کے مطابق ڈھالنا، یا اپنی خود بنانا۔ سنجیدہ پروڈکشن کے لیے سخت کی گئی بنیاد پر ڈھالنا یا بنانا ہی تجویز کیا جاتا ہے۔
ایک اچھی نوڈ 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 سے خالی کریں اور ایک ایک نوڈ بدلیں۔
- نئی AMIs کے ساتھ تبدیلی خودکار کرنے کے لیے Managed Node Groups یا Karpenter۔
- PodDisruptionBudgets تاکہ گردش آپ کی سروسز کی دستیابی کو متاثر نہ کرے۔
عام غلطیاں
- طے شدہ بہتر شدہ AMI کو مہینوں تک بغیر اپ ڈیٹ کیے استعمال کرنا۔
- وفاقی شناخت کے بجائے کلسٹر کی اسناد امیج میں پکا دینا۔
- خود kubelet اور فائل سسٹم کی اجازتوں کی ہارڈننگ بھول جانا۔
- نوڈز تک SSH رسائی محدود نہ کرنا: مثالی صورت صفر SSH اور صرف SSM کے ذریعے رسائی ہے۔
اکثر پوچھے جانے والے سوالات
کیا مجھے اپنی مرضی کی AMI چاہیے یا EKS کی بہتر شدہ کافی ہے؟
شروعات کے لیے سرکاری بہتر شدہ AMI اچھا نقطۂ آغاز ہے۔ اگر تعمیل یا سلامتی کے سخت تقاضے ہوں تو اسے ڈھالیں یا اپنی ہارڈننگ اور ایجنٹس کے ساتھ اپنی بنائیں۔
کیا Bottlerocket عام Linux AMI کی جگہ لے لیتا ہے؟
ان نوڈز کے لیے جو صرف کنٹینر چلاتے ہیں، جی ہاں: کم حملہ سطح اور ناقابلِ تبدیل اپ ڈیٹ۔ یہ ان کاموں کے لیے موزوں نہیں جنہیں عام مقصد کا OS درکار ہو۔
نئی AMI شائع کرنے پر نوڈز کیسے اپ ڈیٹ کروں؟
نوڈ گروپ کی رولنگ اپ ڈیٹ سے: انہیں بتدریج خالی کر کے بدلا جاتا ہے، PodDisruptionBudgets کا لحاظ رکھتے ہوئے تاکہ سروس متاثر نہ ہو۔
imaxe.cloud میں ہم ایسی سخت کی گئی بنیادی امیجز ڈیزائن کرتے ہیں جو آپ کے Kubernetes نوڈز کی مثالی بنیاد بنتی ہیں۔



