پرو ہوسٹر > بلاگ > انتظامیہ > CRI-O Docker کے متبادل کے طور پر Kubernetes کے رن ٹائم ماحول کے طور پر: CentOS 8 پر سیٹ اپ
CRI-O Docker کے متبادل کے طور پر Kubernetes کے رن ٹائم ماحول کے طور پر: CentOS 8 پر سیٹ اپ
ہیلو! میرا نام سرجی ہے، میں سرف میں ڈی او اوپس ہوں۔ Surf میں DevOps ڈپارٹمنٹ کا مقصد نہ صرف ماہرین کے درمیان تعامل قائم کرنا اور کام کے عمل کو مربوط کرنا ہے، بلکہ اپنے بنیادی ڈھانچے اور کسٹمر کے بنیادی ڈھانچے دونوں میں موجودہ ٹیکنالوجیز کو فعال طور پر تحقیق کرنا اور ان پر عمل درآمد کرنا ہے۔
ذیل میں میں کنٹینرز کے لیے ٹیکنالوجی کے اسٹیک میں ہونے والی تبدیلیوں کے بارے میں تھوڑی بات کروں گا جن کا ہمیں تقسیم کا مطالعہ کرتے ہوئے سامنا کرنا پڑا۔ CentOS 8 اور یہ کیا ہے کے بارے میں CRI-O اور فوری طور پر قابل عمل ماحول کیسے ترتیب دیا جائے۔ Kubernetes.
Docker CentOS 8 میں کیوں شامل نہیں ہے؟
تازہ ترین اہم ریلیز کو انسٹال کرنے کے بعد RHEL 8 یا CentOS 8 کوئی مدد نہیں کر سکتا لیکن نوٹس لے سکتا ہے: ان تقسیموں اور سرکاری ذخیروں میں ایپلی کیشن شامل نہیں ہے۔ میں Docker، جو نظریاتی اور عملی طور پر پیکجوں کی جگہ لے لیتا ہے۔ پوڈ مین, بلڈہ (بطور ڈیفالٹ تقسیم میں موجود) اور CRI-O. یہ اوپن کنٹینر انیشی ایٹو (OCI) پروجیکٹ کے حصے کے طور پر Red Hat کے ذریعہ دیگر چیزوں کے علاوہ، تیار کردہ معیارات کے عملی نفاذ کی وجہ سے ہے۔
او سی آئی کا مقصد، جو لینکس فاؤنڈیشن کا حصہ ہے، کنٹینر فارمیٹس اور رن ٹائمز کے لیے اوپن انڈسٹری کے معیارات بنانا ہے جو ایک ساتھ کئی مسائل کو حل کرتے ہیں۔ سب سے پہلے، انہوں نے لینکس کے فلسفے سے متصادم نہیں کیا (مثال کے طور پر، اس حصے میں کہ ہر پروگرام کو ایک عمل کرنا چاہیے، اور میں Docker ایک قسم کا آل ان ون کمبائن ہے)۔ دوم، وہ سافٹ ویئر میں موجود تمام خامیوں کو ختم کر سکتے تھے۔ میں Docker. تیسرا، وہ کنٹینرائزڈ ایپلی کیشنز کی تعیناتی، انتظام اور پیش کرنے کے لیے معروف تجارتی پلیٹ فارمز کی کاروباری ضروریات کے ساتھ مکمل طور پر ہم آہنگ ہوں گے (مثال کے طور پر، Red Hat OpenShift)۔
حدود میں Docker اور نئے سافٹ ویئر کے فوائد پہلے ہی کچھ تفصیل سے بیان کیے جا چکے ہیں۔ یہ مضمون، اور OCI پروجیکٹ کے اندر پیش کردہ پورے سافٹ ویئر اسٹیک کی تفصیلی وضاحت اور اس کی تعمیراتی خصوصیات سرکاری دستاویزات اور خود Red Hat کے مضامین میں مل سکتی ہیں (کوئی برا نہیں مضمون ریڈ ہیٹ بلاگ میں) اور تھرڈ پارٹی میں جائزے.
یہ نوٹ کرنا ضروری ہے کہ مجوزہ اسٹیک کے اجزاء میں کیا فعالیت ہے:
پوڈ مین - runC عمل کے ذریعے کنٹینرز اور امیج اسٹوریج کے ساتھ براہ راست تعامل؛
بلڈہ - رجسٹری میں تصاویر جمع کرنا اور اپ لوڈ کرنا؛
CRI-O - کنٹینر آرکیسٹریشن سسٹم کے لیے ایک قابل عمل ماحول (مثال کے طور پر، Kubernetes)۔
میرا خیال ہے کہ اسٹیک کے اجزاء کے درمیان تعامل کی عمومی اسکیم کو سمجھنے کے لیے، یہاں ایک کنکشن ڈایاگرام فراہم کرنے کا مشورہ دیا جاتا ہے۔ Kubernetes c runC اور کم درجے کی لائبریریوں کا استعمال کرتے ہوئے CRI-O:
CRI-O и Kubernetes اسی ریلیز اور سپورٹ سائیکل پر عمل کریں (مطابقت میٹرکس بہت آسان ہے: بڑے ورژن Kubernetes и CRI-O موافق)، اور یہ، ڈویلپرز کی طرف سے اس اسٹیک کے آپریشن کی مکمل اور جامع جانچ پر توجہ مرکوز کرتے ہوئے، ہمیں کسی بھی استعمال کے منظر نامے کے تحت آپریشن میں زیادہ سے زیادہ قابل حصول استحکام کی توقع کرنے کا حق دیتا ہے (متعلقہ ہلکا پن بھی یہاں فائدہ مند ہے۔ CRI-O کے مقابلے میں میں Docker فعالیت کی بامقصد حد بندی کی وجہ سے)۔
جب انسٹال کریں Kubernetes "صحیح راستہ" طریقہ (او سی آئی کے مطابق، یقینا) استعمال کرتے ہوئے CRI-O پر CentOS 8 ہمیں کچھ معمولی مشکلات کا سامنا کرنا پڑا، تاہم، ہم نے کامیابی سے قابو پالیا۔ مجھے آپ کے ساتھ انسٹالیشن اور کنفیگریشن کی ہدایات شیئر کرنے میں خوشی ہوگی، جس میں مجموعی طور پر تقریباً 10 منٹ لگیں گے۔
CRI-O فریم ورک کا استعمال کرتے ہوئے CentOS 8 پر Kubernetes کو کیسے تعینات کریں۔
شرائط: کم از کم ایک میزبان کی موجودگی (2 کور، 4 جی بی ریم، کم از کم 15 جی بی اسٹوریج) انسٹال کے ساتھ CentOS 8 ("سرور" انسٹالیشن پروفائل کی سفارش کی جاتی ہے)، نیز مقامی DNS میں اس کے لیے اندراجات (آخری حربے کے طور پر، آپ /etc/hosts میں اندراج کے ذریعے حاصل کر سکتے ہیں)۔ اور مت بھولنا تبادلہ کو غیر فعال کریں۔.
ہم روٹ صارف کے طور پر میزبان پر تمام کارروائیاں کرتے ہیں، محتاط رہیں۔
پہلے مرحلے میں، ہم OS کو ترتیب دیں گے، CRI-O کے لیے ابتدائی انحصار کو انسٹال اور ترتیب دیں گے۔
آئیے OS کو اپ ڈیٹ کریں:
dnf -y update
اگلا آپ کو فائر وال اور SELinux کو ترتیب دینے کی ضرورت ہے۔ یہاں سب کچھ اس ماحول پر منحصر ہے جس میں ہمارے میزبان یا میزبان کام کریں گے۔ آپ یا تو کی سفارشات کے مطابق فائر وال سیٹ کر سکتے ہیں۔ دستاویزات، یا، اگر آپ قابل اعتماد نیٹ ورک پر ہیں یا تھرڈ پارٹی فائر وال استعمال کرتے ہیں تو ڈیفالٹ زون کو ٹرسٹ میں تبدیل کریں یا فائر وال کو آف کریں:
مطلوبہ ورژن مرتب کریں۔ CRI-O (بڑا ورژن CRI-Oجیسا کہ پہلے ہی ذکر کیا گیا ہے، مطلوبہ ورژن سے مماثل ہے۔ Kubernetes)، تازہ ترین مستحکم ورژن کے بعد سے Kubernetes فی الحال 1.18:
تنصیب کے عمل کے دوران ہمارے سامنے آنے والی پہلی باریکیوں پر توجہ دیں: آپ کو ترتیب میں ترمیم کرنے کی ضرورت ہے۔ CRI-O سروس شروع کرنے سے پہلے، کیونکہ مطلوبہ conmon جزو مخصوص جگہ سے مختلف ہے:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
دوسرا اہم نکتہ: چونکہ ہم ڈیمون استعمال نہیں کرتے ہیں۔ میں Docker، لیکن ہم ڈیمون استعمال کرتے ہیں۔ CRI-O، لانچ اور ابتدا سے پہلے Kubernetes آپ کو کنفیگریشن فائل /var/lib/kubelet/config.yaml میں مناسب سیٹنگز کرنے کی ضرورت ہے، پہلے مطلوبہ ڈائرکٹری بنانے کے بعد:
تیسرا اہم نکتہ جس کا ہمیں تنصیب کے دوران سامنا کرنا پڑتا ہے: اس حقیقت کے باوجود کہ ہم نے استعمال شدہ ڈرائیور کی نشاندہی کی ہے۔ سی گروپ، اور اس کی ترتیب دلائل کے ذریعے گزر گئی۔ کیوبلیٹ پرانا ہے (جیسا کہ دستاویزات میں واضح طور پر کہا گیا ہے)، ہمیں فائل میں دلائل شامل کرنے کی ضرورت ہے، بصورت دیگر ہمارا کلسٹر شروع نہیں کیا جائے گا:
اپنی مرضی کے مطابق کرنے کے لئے کنٹرول طیارہ یا کارکن منٹ میں نوڈس، آپ استعمال کر سکتے ہیں اس اسکرپٹ کے ساتھ.
یہ ہمارے کلسٹر کو شروع کرنے کا وقت ہے.
کلسٹر شروع کرنے کے لیے، کمانڈ چلائیں:
kubeadm init --pod-network-cidr=10.244.0.0/16
کلسٹر "kubeadm join …" میں شامل ہونے کے لیے کمانڈ ضرور لکھیں، جسے آپ آؤٹ پٹ کے آخر میں استعمال کرنے کے لیے کہا جاتا ہے، یا کم از کم مخصوص ٹوکنز۔
آئیے پوڈ نیٹ ورک کے لیے پلگ ان (CNI) انسٹال کریں۔ میں استعمال کرنے کی سفارش کرتا ہوں۔ کیلیکو۔. ممکنہ طور پر زیادہ مقبول فلالین کے ساتھ مطابقت کے مسائل ہیں۔ nftables، جی ہاں اور کیلیکو۔ - واحد CNI عمل درآمد جس کی سفارش کی گئی ہے اور پروجیکٹ کے ذریعہ مکمل طور پر تجربہ کیا گیا ہے۔ Kubernetes:
ورکر نوڈ کو ہمارے کلسٹر سے مربوط کرنے کے لیے، آپ کو اسے ہدایات 1 اور 2 کے مطابق ترتیب دینے کی ضرورت ہے، یا استعمال کریں سکرپٹ، پھر "kubeadm init..." آؤٹ پٹ سے کمانڈ چلائیں جسے ہم نے پچھلے مرحلے میں لکھا تھا:
آئیے چیک کریں کہ ہمارا کلسٹر شروع ہوا ہے اور کام کرنا شروع کر دیا ہے:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
تیار! آپ پہلے سے ہی اپنے K8s کلسٹر پر پے لوڈز کی میزبانی کر سکتے ہیں۔
آگے ہمارا کیا انتظار ہے۔
مجھے امید ہے کہ اوپر دی گئی ہدایات نے آپ کو کچھ وقت اور اعصاب بچانے میں مدد کی ہے۔
صنعت میں ہونے والے عمل کا نتیجہ اکثر اس بات پر منحصر ہوتا ہے کہ آخر صارفین کی بڑی تعداد اور متعلقہ جگہ میں دوسرے سافٹ ویئر کے ڈویلپرز کی طرف سے انہیں کس طرح قبول کیا جاتا ہے۔ یہ ابھی پوری طرح واضح نہیں ہے کہ OCI کے اقدامات چند سالوں میں کیا لے جائیں گے، لیکن ہم خوشی سے دیکھ رہے ہوں گے۔ آپ اپنی رائے ابھی کمنٹس میں بتا سکتے ہیں۔