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