ProHoster > بلوق > إدارة > CRI-O كبديل لـ Docker كبيئة تشغيل لـ Kubernetes: الإعداد على CentOS 8
CRI-O كبديل لـ Docker كبيئة تشغيل لـ Kubernetes: الإعداد على CentOS 8
مرحبًا! اسمي سيرجي، وأنا DevOps في Surf. لا يهدف قسم DevOps في Surf إلى إقامة تفاعل بين المتخصصين ودمج سير العمل فحسب، بل يهدف أيضًا إلى البحث بنشاط وتنفيذ التقنيات ذات الصلة سواء في البنية التحتية الخاصة بهم أو في البنية التحتية للعميل.
أدناه سأتحدث قليلاً عن التغييرات في المكدس التكنولوجي للحاويات التي قابلناها أثناء دراسة التوزيع. CentOS 8 وحول ما هو كري-O وكيفية إعداد بيئة قابلة للتنفيذ بسرعة باستخدامه Kubernetes.
لماذا تم فقدان Docker من التوزيع القياسي لـ CentOS 8
بعد تثبيت أحدث الإصدارات الرئيسية RHEL 8 أو CentOS 8 لا ينبغي إغفالها: هذه التوزيعات والمستودعات الرسمية تفتقد التطبيق عامل في حوض السفن، والتي تحل محل الحزم أيديولوجيًا ووظيفيًا Podman, بناء (موجود في التوزيع بشكل افتراضي) و كري-O. ويرجع ذلك إلى التنفيذ العملي للمعايير التي طورتها ريد هات ، من بين أمور أخرى ، كجزء من مشروع مبادرة الحاوية المفتوحة (OCI).
الهدف من OCI ، وهو جزء من The Linux Foundation ، هو إنشاء معايير صناعية مفتوحة لتنسيقات الحاويات والبيئات القابلة للتنفيذ التي من شأنها حل العديد من المشكلات في وقت واحد. أولاً، لم يتعارضوا مع فلسفة Linux (على سبيل المثال، في هذا الجزء منه، حيث يجب على كل برنامج تنفيذ إجراء واحد، و عامل في حوض السفن هو نوع من دمج الكل في واحد). ثانيًا ، يمكننا القضاء على جميع أوجه القصور الموجودة في البرنامج عامل في حوض السفن. ثالثًا ، ستكون متوافقة تمامًا مع متطلبات العمل التي طرحتها المنصات التجارية الرائدة لنشر وإدارة وصيانة تطبيقات الحاويات (على سبيل المثال ، Red Hat OpenShift).
القيود عامل في حوض السفن وقد تم بالفعل وصف مزايا البرنامج الجديد بشيء من التفصيل في هذا المقال، ووصف تفصيلي لكيفية تقديم حزمة البرامج بالكامل كجزء من مشروع OCI وميزاتها المعمارية يمكن العثور عليها في الوثائق الرسمية والمقالات من Red Hat نفسها (جيد مقالة في مدونة Red Hat)، وفي الطرف الثالث المراجعات.
من المهم ملاحظة الوظيفة التي تتمتع بها مكونات المكدس المقترح:
Podman - التفاعل المباشر مع الحاويات وتخزين الصور من خلال عملية runC؛
بناء - التجميع والتحميل في سجل الصور؛
كري-O - بيئة وقت التشغيل لأنظمة تنظيم الحاويات (على سبيل المثال ، Kubernetes).
أعتقد أنه من أجل فهم المخطط العام للتفاعل بين مكونات المكدس ، يُنصح بإعطاء مخطط اتصال هنا Kubernetes c تشغيلC والمكتبات ذات المستوى المنخفض باستخدام كري-O:
كري-O и Kubernetes اتبع نفس دورة الإصدار والدعم (مصفوفة التوافق بسيطة للغاية: الإصدارات الرئيسية Kubernetes и كري-O تتزامن) ، وهذا ، مع الأخذ في الاعتبار التركيز على الاختبار الكامل والشامل لعمل هذا المكدس من قبل المطورين ، يمنحنا الحق في توقع أقصى استقرار يمكن تحقيقه في العمل في أي سيناريوهات استخدام (الخفة النسبية مفيدة أيضًا هنا). كري-O مقارنة مع عامل في حوض السفن بسبب القيود المتعمدة للوظائف).
عند تثبيت Kubernetes طريقة "الطريق الصحيح" (وفقًا لـ OCI بالطبع) باستخدام كري-O في CentOS 8 واجهنا بعض الصعوبات البسيطة ، والتي ، مع ذلك ، تغلبنا عليها بنجاح. يسعدني أن أطلعك على تعليمات التثبيت والتهيئة ، والتي ستستغرق في المجمل 10 دقائق على الأكثر.
كيفية نشر Kubernetes على CentOS 8 باستخدام بيئة CRI-O
المتطلبات الأساسية: أن يكون لديك مضيف واحد على الأقل (مركزان ، 2 غيغابايت من ذاكرة الوصول العشوائي ، 4 غيغابايت على الأقل من التخزين) مع CentOS 8 (ملف تعريف التثبيت الموصى به "الخادم") ، بالإضافة إلى إدخالاته في DNS المحلي (في الحالات القصوى ، يمكنك الحصول على إدخال في / etc / hosts). ولا تنسى تعطيل المبادلة.
ننفذ جميع العمليات على المضيف نيابة عن المستخدم الجذر ، كن حذرًا.
في الخطوة الأولى، سنقوم بإعداد نظام التشغيل وتثبيت وتكوين التبعيات الأولية لـ CRI-O.
تحديث نظام التشغيل:
dnf -y update
بعد ذلك ، تحتاج إلى تكوين جدار الحماية و SELinux. هنا ، كل شيء يعتمد على البيئة التي سيعمل فيها مضيفنا أو مضيفونا. يمكنك إما إعداد جدار حماية على النحو الموصى به في توثيق، أو إذا كنت تستخدم شبكة موثوقة أو تستخدم جدار حماية تابعًا لجهة خارجية، فقم بتغيير المنطقة الافتراضية إلى منطقة موثوقة أو قم بإيقاف تشغيل جدار الحماية:
انتبه إلى الفروق الدقيقة الأولى التي نواجهها أثناء عملية التثبيت: تحتاج إلى تعديل التكوين كري-O قبل بدء الخدمة ، نظرًا لأن المكون conmon المطلوب له موقع مختلف عن الموقع المحدد:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
الآن يمكنك تفعيل البرنامج الخفي وبدء تشغيله كري-O:
الفارق الدقيق الثاني المهم: لأننا لا نستخدم البرنامج الخفي عامل في حوض السفنولكن استخدم البرنامج الخفي كري-O، قبل الإطلاق والتهيئة Kubernetes تحتاج إلى إجراء الإعدادات المناسبة في ملف التكوين /var/lib/kubelet/config.yaml ، بعد إنشاء الدليل الضروري:
النقطة الثالثة المهمة التي نواجهها أثناء التثبيت: على الرغم من حقيقة أننا أشرنا إلى استخدام برنامج التشغيل جروب، وتكوينها من خلال الحجج مرت مكعبة قديمة (والتي يشار إليها مباشرة في الوثائق) ، نحتاج إلى إضافة وسيطات إلى الملف ، وإلا فلن تتم تهيئة المجموعة الخاصة بنا:
للتخصيص طائرة مراقبة أو عامل العقد في دقائق، يمكنك استخدامها هذا البرنامج النصي.
لقد حان الوقت لتهيئة مجموعتنا.
لتهيئة المجموعة، قم بتشغيل الأمر:
kubeadm init --pod-network-cidr=10.244.0.0/16
تأكد من كتابة الأمر للانضمام إلى المجموعة "kubeadm Join ..." ، والذي يتم تقديمه في نهاية الإخراج ، أو على الأقل الرموز المميزة المحددة.
قم بتثبيت البرنامج المساعد (CNI) لشبكة Pod. أوصي باستخدام كاليكو. ربما أكثر شعبية الفانيلي لديه مشاكل التوافق مع nftables، و كاليكو - تنفيذ CNI الوحيد الذي أوصى به المشروع وتم اختباره بالكامل Kubernetes:
لتوصيل عقدة عاملة بالمجموعة الخاصة بنا ، تحتاج إلى تكوينها وفقًا للتعليمات 1 و 2 ، أو استخدام النصي، ثم قم بتشغيل الأمر من إخراج "kubeadm init ..." الذي سجلناه في الخطوة السابقة:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
مستعد! يمكنك بالفعل استضافة الحمولات على مجموعة K8s الخاصة بك.
ما ينتظرنا في المستقبل
آمل أن تكون التعليمات المذكورة أعلاه قد ساعدت في توفير بعض الوقت والأعصاب.
غالبًا ما تعتمد نتائج العمليات التي تجري في الصناعة على كيفية قبولها من قبل الكتلة الرئيسية من المستخدمين النهائيين ومطوري البرامج الأخرى في المكانة ذات الصلة. ليس من الواضح تمامًا إلى أين ستقود مبادرات OCI في غضون سنوات قليلة، ولكننا سنكون سعداء بمتابعتها. يمكنك مشاركة رأيك الآن في التعليقات.