۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

درک Flatcar Container Linux

Kinvolk’s Flatcar جدیدترین لینوکس مایکروسافت است. چیست و برای چه باید از آن استفاده کرد؟

Kinvolk’s Flatcar جدیدترین لینوکس مایکروسافت است. چیست و برای چه باید از آن استفاده کرد؟

مایکروسافت تنها یک شرکت ویندوزی نیست. اکنون چندین توزیع لینوکس را در کنار سیستم عامل های خود پشتیبانی می کند. مهم است که به یاد داشته باشید که اینها لینوکس های همه منظوره مانند اوبونتو یا رد هت نیستند. در عوض، آنها موارد استفاده خاصی را هدف قرار می دهند: SoNIC برای سخت افزار شبکه در مقیاس ابر، SphereOS برای سخت افزار صنعتی ایمن اینترنت اشیا، و CBL-Mariner به عنوان میزبان برای سیستم های لبه پشته Azure و بخشی از زیرسیستم ویندوز برای لینوکس.

یک سال پیش، مایکروسافت فروشنده آلمانی لینوکس Kinvolk را خرید تا به پشتیبانی از استفاده از کانتینر در Azure، به‌ویژه در پلتفرم‌های بومی ابری کمک کند. مثل کوبرنتیس Kinvolk خانه لینوکس Flatcar محبوب کانتینر بهینه شده و همچنین پلتفرم Kubernetes ایمن مبتنی بر لینوکس، Lokomotive است. . پس از اینکه Red Hat CoreOS را خریداری کرد و پشته آن را در Fedora ادغام کرد، Kinvolk باتوم تولید یک نسخه لینوکس آماده کانتینر را بر عهده گرفت و کارایی آن را برای پلتفرم هایی مانند Kubernetes کاهش داد.

افزودن Kinvolk به Microsoft و Azure

در خرید Kinvolk، مایکروسافت اشاره کرد اهمیت آن برای Azure و متعهد به اجرای پروژه توسعه جامعه Flatcar شد و قصد داشت از نحوه عملکرد تیم Kinvolk بیاموزد. شنیدن اینکه مایکروسافت می گوید می خواهد یاد بگیرد چگونه متن باز را به خوبی انجام دهد، جالب است، زیرا واضح است که این شرکت در حال انتقال بزرگی به روش های منبع باز است. ممکن است هرگز Windows یا Office منبع باز را باز نکند، اما از منبع باز به عنوان راهی برای ساخت و مدیریت ابزارها و پلتفرم های جدیدتر خود استفاده می کند.

واضح است که مایکروسافت در ابتدا Flatcar را به عنوان جایگزینی برای CoreOS در Azure می دید. یک سال قبل از خرید، توصیه شد که مشتریان قبل از مهلت پایان عمر CoreOS در ماه می ۲۰۲۰ به Flatcar مهاجرت کنند. مهاجرت به تغییر تصاویر استقرار Azure شما در مخزن Kubernetes یا کانتینر بستگی داشت. از طرف دیگر، سیستم‌های CoreOS می توان با استفاده از یک اسکریپت ساده به Flatcar تغییر داد تا ابزارهای به روز رسانی را دانلود و اجرا کند. این به گره‌های موجود اجازه می‌دهد تا بدون جابجایی کامل به کار خود ادامه دهند. با یک سیستم‌عامل جدید در حال اجرا، می‌توانید قبل از استقرار مجدد محیط کانتینر، زمانی را صرف ساختن و آزمایش تصاویر جدید کنید.

کدام منبع باز با Mastodon اشتباه می کند

Linux Flatcar Container چیست؟

اگر Flatcar را نگاه نکرده‌اید، این یک توزیع حداقل لینوکس است که برای اجرا طراحی شده است. ظروف و هیچ چیز دیگر Flatcar بر اساس بسیاری از مفاهیم اساسی در توسعه برنامه های کاربردی ابری استوار است و زیرساخت تغییرناپذیری را ارائه می دهد که با هر ساخت جدید کد شما مجدداً مستقر می شود. شما نمی خواهید سیستم عامل شما تحت برنامه شما تغییر کند، حتی اگر فقط کانتینرهای برنامه شما را میزبانی کند، بنابراین Flatcar قبل از استقرار، با یک پارتیشن سیستم فقط خواندنی پیکربندی شده است. می‌توان آن را برای به‌روزرسانی خودکار وصله‌های امنیتی پیکربندی کرد، اگرچه ممکن است ترجیح دهید به‌روزرسانی‌ها را بخشی از فرآیند ساخت و استقرار کنید. Kinvolk ابزارهایی را برای مدیریت فرآیند به‌روزرسانی، مدیریت مواردی که می‌توانند به‌روزرسانی شوند، زمان اجرای به‌روزرسانی‌ها و دفعات استفاده از آنها ارائه می‌کند.

داشتن یک لینوکس مینیمال با یک سیستم فایل قفل شده که در فضای ابری اجرا می شود بسیار منطقی است. Azure بین مستاجرینی که روی یک سخت‌افزار اجرا می‌شوند، جدایی را اعمال می‌کند، اما داشتن میزبان کانتینر تغییرناپذیر خطرات امنیتی را به میزان قابل توجهی کاهش می‌دهد، سطح حمله را کوچک نگه می‌دارد و تضمین می‌کند که بسیاری از کلاس‌های حمله روی میزبان کانتینر شما اجرا نمی‌شوند.

می‌توانید Flatcar را در بازار Azure با نسخه برای سه کانال به روز رسانی مختلف: پایدار، بتا و آلفا. اکثر سیستم های تولید باید از کانال پایدار استفاده کنند که بتا و آلفا برای آزمایش و توسعه توصیه می شود. ممکن است ترجیح دهید بتا و آلفا را روی سیستم‌های داخلی خود مستقیماً از Kinvolk اجرا کنید تا از Azure Marketplace.

شروع با Flatcar در Azure

Kinvolk اسکریپت‌های Azure CLI را برای نصب Flatcar ارائه می‌کند. می‌توانید با تعیین SKU و نسخه قبل از ساخت URN برای تصویری که قرار است نصب شود، نسخه را انتخاب کنید. این فرمت productname:channel:version را دارد. Kinvolk از تصاویر هایپروایزر نسل ۱ و نسل ۲ پشتیبانی می کند و نسل ۱ پیش فرض است. اگر می‌خواهید از نسل ۲ استفاده کنید، -gen2 را به نام کانال در بخش SKU و URN اسکریپت‌های نصب اضافه کنید.

12 اصل برای بهبود devsecops

از طرف دیگر، می‌توانید بارگیری کنید تصویر Flatcar آماده Azure را مستقیماً انتخاب کرد و آن را در یک حساب ذخیره سازی Azure قرار داد. Kinvolk یک اسکریپت ارائه می دهد که به نام گروه منبع و حساب ذخیره سازی نیاز دارد. با این حال، در عمل، استفاده از Azure Marketplace بهترین گزینه است، زیرا تصویر Flatcar در حال حاضر در Azure است و هزینه ذخیره‌سازی متحمل نمی‌شوید.

اگرچه AKS (سرویس Kubernetes Azure) از اوبونتو به عنوان پایه سیستم عامل خود استفاده می کند، همچنان می توانید با استفاده از نصب Kubernetes خود یا نسخه Azure ارائه دهنده Cluster API برای اجرای نمونه Kubernetes مدیریت شده خود. دستورالعمل‌هایی برای استفاده از AKS Engine در سایت Kinvolk وجود دارد، و اگرچه امکان استفاده از نسخه مستقل AKS وجود دارد، اما اکنون منسوخ شده است و دیگر به‌روزرسانی نمی‌شود.

پیکربندی و اجرای Flatcar

هنگامی که یک تصویر Flatcar را نصب کردید، باید آن را با ابزاری به نام Ignition پیکربندی کنید که یک فایل JSON پیکربندی را قبل از اولین راه‌اندازی به کاربر Flatcar تزریق می‌کند. پس از راه‌اندازی، سیستم فایل فقط خواندنی Flatcar به این معنی است که نمی‌توانید تغییراتی ایجاد کنید. فایل های پیکربندی با استفاده از YAML نوشته می شوند و یک Container Linux Config ایجاد می کنند. این پیکربندی پایه میزبان کانتینر را تنظیم می‌کند، مشخص می‌کند چه کانتینرهای سرویس بارگیری می‌شود، چگونه اجرا می‌شوند و چگونه میزبان به خرابی کانتینر پاسخ می‌دهد. به عنوان مثال، می‌توانید جدیدترین تصاویر کانتینر را در هنگام راه‌اندازی مجدداً بارگیری کنید، نسخه‌های قدیمی را حذف کنید، در حالت خاموش شدن کاملاً متوقف شوید، و کانتینرهای ناموفق را پس از زمان مشخصی راه‌اندازی مجدد کنید.

Kinvolk ابزاری را برای انتقال CLC YAML به JSON برای استفاده با Ignition فراهم می‌کند. هنگامی که JSON ایجاد می شود، می توان آن را با استفاده از Azure CLI به عنوان داده سفارشی در هنگام تنظیم کانتینر در Flatcar قرار داد. Azure CLI می‌تواند کاربران و کلیدهای SSH را به تصاویر اضافه کند، در صورت نیاز به ورود به آنها برای اهداف توسعه و اشکال‌زدایی. نمونه‌های تولید به این نیاز ندارند، زیرا خطرات امنیتی را اضافه می‌کند.

نحوه ارزش گذاری خدمات رایانش ابری

تیم توصیه می‌کند قبل از شروع به تولید، تست یک ماشین مجازی Flatcar را روی یک ماشین توسعه دهنده انجام دهید. . اگرچه می‌توانید از Hyper-V استفاده کنید، اما بیشتر اسناد از QEMU منبع باز استفاده می‌کنند، بنابراین ممکن است ترجیح دهید روی یک سیستم لینوکس آزمایش کنید. این رویکرد به شما امکان می دهد از تصاویر آزمایشی خود Kinvolk استفاده کنید و فایل Ignition JSON را در اولین بوت نصب کنید. اگر در حال آزمایش با کانتینرها و پیکربندی‌های مختلف هستید، هر بار که تغییری ایجاد می‌کنید، به سادگی VM را حذف کنید و از یک کپی دیگر از تصویر Flatcar استفاده کنید.

Flatcar فقط برای Azure نیست. روی تمام ابرهای عمومی اصلی و همچنین ابرهای لبه ای و خصوصی اجرا می شود. از آنجایی که فایل‌های پیکربندی یکسان بر روی همه سیستم‌ها کار می‌کنند، Flatcar گزینه جالبی برای استقرار ابر و لبه هیبریدی ایجاد می‌کند که در آن می‌توانید بارهای کاری را یک بار توسعه دهید و آنها را با حداقل تغییرات به چندین هدف تحویل دهید. همچنین از ابزارهایی مانند Terraform پشتیبانی می‌شود، بنابراین می‌توانید Flatcar را بخشی از یک پلت‌فرم زیرساخت به‌عنوان کد کنید و مدیریت میزبان‌های کانتینر را از برنامه‌ها جدا کنید.

مایکروسافت در چند سال گذشته چیزهای زیادی در مورد مدیریت خریدهای منبع باز آموخته است. مانند Deis Labs، Kinvolk یک موجودیت تقریباً مستقل باقی می ماند. این به آن اجازه می دهد تا به حمایت از جامعه منبع باز خود ادامه دهد و آزمایش های خود را بسازد و اجرا کند. در همین حال، مایکروسافت می‌تواند از درس‌های Flatcar استفاده کند، زیرا عرضه‌های داخلی لینوکس خود را گسترش می‌دهد و پروژه‌های منبع باز بیشتری را به مجموعه خود اضافه می‌کند. در عین حال، توسعه‌دهندگان اپلیکیشن‌های بومی ابری می‌توانند با آرامش خاطر از یک پشتیبان متعهد با جیب‌های عمیق، به استفاده از میزبان کانتینر آشنا ادامه دهند.

شاید به این مطالب علاقمند باشید