۳۰ آذر ۱۴۰۳

Techboy

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

با لینوکس CBL-Mariner 2.0 مایکروسافت عمل کنید

نحوه نصب و پیکربندی توزیع سریع و سبک کانتینر میزبان لینوکس برای سرویس Azure Kubernetes و رجیستری کانتینر مایکروسافت.

نحوه نصب و پیکربندی توزیع سریع و سبک کانتینر میزبان لینوکس برای سرویس Azure Kubernetes و رجیستری کانتینر مایکروسافت.

توزیع CBL-Mariner Linux مایکروسافت برای Azure اهمیت بیشتری پیدا می‌کند، هم در فضای ابری و هم در محل. علاوه بر میزبانی ویژگی های رابط کاربری گرافیکی WSL 2 در ویندوز ۱۱، میزبان کانتینر نیز می باشد. در سرویس Azure Kubernetes و به عنوان یک تصویر کانتینر پایه در رجیستری کانتینر مایکروسافت در دسترس است، به علاوه از کانتینرهای بدون توزیع در Azure پشتیبانی می کند. این باعث می‌شود که ارزش وقت گذاشتن با CBL-Mariner، یادگیری ویژگی‌ها و قابلیت‌های آن و دیدن اینکه چگونه می‌تواند روی کد شما تأثیر بگذارد، داشته باشد.

اکنون کار با CBL-Mariner بسیار ساده تر است با انتشار نسخه ۲.۰. نسخه‌های اولیه باید از ابتدا ساخته می‌شد، که نیازمند یک زنجیره ابزار مبتنی بر Go بود که روی لینوکس اجرا می‌شد. اکنون می‌توانید به سادگی یک ISO را دانلود کنید و آن را در ابزارهای سرور مجازی انتخابی خود نصب کنید. همانطور که از ویندوز استفاده می کردم، از Hyper-V برای میزبانی نصب خود استفاده کردم. اگر Azure را به عنوان میزبان ترجیح می دهید، می توانید ماشین مجازی خود را راه اندازی کنید یا از یک نصب از پیش پیکربندی شده از کتابخانه VM Azure استفاده کنید. یک رویکرد جایگزین استفاده از Docker برای دانلود و اجرای یک تصویر پایه مستقیماً از رجیستری کانتینر خود مایکروسافت است.

نصب CBL-Mariner در Hyper-V

CBL-Mariner یک لینوکس بسیار مدرن است که برای کار با سیستم‌های UEFI (رابط سفت‌افزار توسعه‌پذیر یکپارچه) طراحی شده است، بنابراین می‌توانید از دیسک مجازی Gen2 Hyper-V استفاده کنید تا بیشترین بهره را از نصب خود ببرید. یک دام احتمالی وجود دارد: باید مطمئن شوید که محیط Hyper-V UEFI از گواهی صحیح استفاده می کند. در غیر این صورت، ISO بوت نمی شود. در بخش امنیت تنظیمات Hyper-V برای ماشین مجازی خود، مطمئن شوید که از Microsoft UEFI Certificate Authority برای راه‌اندازی ایمن استفاده می‌کنید، نه گواهی پیش‌فرض ویندوز.

در اولین راه‌اندازی، انتخاب یک نصب‌کننده مبتنی بر متن یا گرافیکی به شما پیشنهاد می‌شود. گزینه گرافیکی به شما امکان می دهد نصب کامل یا نصب هسته را انتخاب کنید. من نصب کامل را انتخاب کردم تا ببینم چقدر فضا استفاده کرده و چه خدماتی را نصب کرده است.

معرفی Redwood.js: توسعه سریع برنامه با React

هنگامی که نصب خود را انتخاب کردید، دیسک مورد استفاده را انتخاب کنید و اینکه آیا رمزگذاری خواهد شد یا خیر. رمزگذاری در یک محیط چند مستاجر یا جایی که نمی دانید چه کسی به دیسک های سیستم شما دسترسی دارد مفید است. سپس نصب کننده درایو انتخابی شما را فرمت می کند و CBL-Mariner را نصب می کند.

cbl mariner 01

نصب گرافیکی انتخاب نصب کامل یا اصلی را ارائه می دهد.

در سیستم آزمایشی من، نصب کامل ۸۵ ثانیه طول کشید و از ۲.۲ گیگابایت فضای دیسک استفاده شد. نصب هسته CBL-Mariner با استفاده از نصب‌کننده متن زمان کمتری داشت، فقط ۲۱ ثانیه و تنها به ۲۹۷ مگابایت فضا نیاز داشت.

cbl mariner 03

نصب کامل CBL-Mariner کمتر از دو دقیقه طول کشید.

بعد از نصب، یک بوت دیگر شما را به یک فرمان ورود می برد. مانند Windows Server Core، دسکتاپ وجود ندارد. این نباید تعجب آور باشد. CBL-Mariner یک سیستم بدون هد است که روی سرورهای ابری اجرا می‌شود و برنامه‌های بومی ابری را میزبانی می‌کند که دارای رابط کاربری وب هستند. دسکتاپ حالت کاربر فقط خطرات امنیتی را اضافه می کند و سیستم را پیچیده تر می کند. مزیت بزرگی که با توزیع سبک وزن و فقط کنسولی مانند مایکروسافت به دست می آورید، سادگی است. اگر دوست دارید آزمایش کنید، نسخه X11 در مخزن بسته CBL-Mariner وجود دارد که احتمالاً بخشی از نقش آن در ارائه پشتیبانی گرافیکی برای WSL 2 است.

کوچک، سریع و ایده آل برای ظروف

نصب کوچکی مانند این هنگام کار با کانتینرها مهم است. این بدان معنی است که تصویر پایه شما به سرعت بارگیری می شود و از استقرار سریع کانتینرها به عنوان مقیاس برنامه در Kubernetes یا در محیط های سبک وزن مانند کانتینر Azure با استفاده از بسته پیش فرض Moby-containerd اطمینان حاصل می کند. اینجاست که نسخه اصلی وارد می شود. به اندازه کافی کوچک است که باید با سرعت بسیار بالایی از طریق شبکه داخلی Azure یا از یک رجیستری کانتینر محلی به یک سیستم Azure Stack HCI دانلود شود. تصاویر کوچک تراکم بیشتری را در سیستم هایی مانند این امکان پذیر می کنند، یک ویژگی مفید زمانی که از سخت افزار با محدودیت منابع در لبه استفاده می کنید.

3 افسانه رایج در مورد پایداری و رایانش ابری

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

برای آسان‌تر کردن کارها، CBL-Mariner شبیه هر لینوکس حالت متنی دیگر است. سرویس‌های زیادی در حال اجرا ندارد، عمدتاً سیستم فایل اصلی، شبکه‌سازی و مدیریت گزارش‌ها. این همان چیزی است که از پلتفرمی مانند این انتظار دارید: حداقل مجموعه خدمات ممکن برای اطمینان از اینکه سطح حمله بسیار کمی وجود دارد. ارزش وقت گذاشتن با اسناد اولیه را دارد تا بفهمید چگونه نصب خود را مدیریت کنید. p>

یک نکته مهم فلسفی با CBL-Mariner: این یک توزیع لینوکس نیست که یک بار نصب شده و سپس به طور مداوم به روز شود. می‌توانید به‌روزرسانی‌های امنیتی را از مایکروسافت دریافت کنید، اما بسیار بهتر است که آن را به‌عنوان زیرساختی در نظر بگیرید که تنها زمانی تغییر می‌کند که یک نسخه کاملاً جدید را نصب می‌کنید. هر چیزی که نیاز به زندگی در سرزمین کاربری دارد باید به عنوان یک کانتینر نصب شود. سیستم عامل پایه ماهانه به روز می شود، که برنامه ای برای افزودن نسخه های جدید به فرآیند یکپارچه سازی و تحویل مداوم (CI/CD) ارائه می دهد.

افزودن بسته ها به CBL-Mariner

این بدان معنا نیست که نمی‌توانید آن را برای پروژه‌های خود سفارشی کنید. مایکروسافت اسناد و ابزارهایی را برای افزودن بسته‌ها یا ساخت فورک‌های خود ارائه می‌کند. اگر نسخه شخصی خود را می‌سازید، باید از کدهای مایکروسافت با استفاده از git rebase استفاده کنید تا کد خود و مایکروسافت را با به‌روزرسانی‌ها و نسخه‌های امنیتی همگام کنید تا از نسخه ناامن CBL-Mariner عقب نمانید. .

اکنون می توانید بسته هایی را به نصب پایه خود اضافه کنید. مایکروسافت از فرمت بسته RPM RedHat پشتیبانی می‌کند و مدیر بسته TDNF به عنوان بخشی از نسخه اصلی نصب شده است. اگر قبلاً از TDNF استفاده نکرده اید، آن را به عنوان نسخه به روز شده ابزار آشنای yum در نظر بگیرید. TDNF در CBL-Mariner پیکربندی شده است تا از مخازن خود مایکروسافت استفاده کند، که حاوی نسخه های امنیتی پچ شده بسته هایی است که با CBL-Mariner آزمایش شده اند. مایکروسافت قراردادی در سطح سرویس برای وصله بسته‌ها دارد که بر اساس سطح شدت هر آسیب‌پذیری است.

نحوه استفاده از TinyIoC در ASP.NET Core

می‌توانید دایرکتوری بسته‌های انتخاب‌شده را به صورت آنلاین پیدا کنید. این لیست نسبتاً کوتاهی در مقایسه با RedHat یا Ubuntu است، اما همان چیزی است که برای یک تصویر کانتینری در حال اجرا در Azure انتظار دارید. بسته‌های ویژه مایکروسافت شامل .NET و ASP.NET Core (همراه با وب سرور Kestrel) و همچنین انتشار OpenJDK مایکروسافت و ابزار SQL Server، از جمله اتصال دهنده‌های ODBC است. در کنار ابزارهای خود مایکروسافت، مخزن CBL-Mariner شامل فهرستی طولانی از ابزارهای رایج لینوکس و محیط های برنامه نویسی، از جمله Python 3، Kubernetes و node.js است. بسته‌ها به مجموعه‌های پایه و گسترده تقسیم می‌شوند و به شما این امکان را می‌دهند که اکثر برنامه‌ها را میزبانی کنید و در نتیجه سرزمین کاربر راهی برای ساخت و مدیریت کانتینرها برای استفاده در Azure است.

با توجه به اینکه مایکروسافت اکنون سرورهای مبتنی بر ARM را به عنوان بخشی از Azure عرضه کرده است، دیدن ساخت‌های ARM بسیاری از بسته‌های CBL-Mariner خوب است. اگر در حال ساخت کانتینرهایی هستید که در آن سرورهای جدید اجرا می شوند، مهم است که نسخه های پشتیبانی شده ARM بسته هایی که قصد استفاده از آنها را دارید بررسی کنید.

با توجه به اینکه کانتینرها پایه و اساس توسعه بومی ابری هستند، واضح است که مایکروسافت به سیستم عامل میزبان خود برای Azure نیاز داشت، اگر فقط از مشکلات ناشی از از دست دادن CoreOS جلوگیری کند. در حالی که خرید Kinvolk Flatcar را وارد بازار کرد، هنوز نیاز به یک سیستم‌عامل متمرکز مانند CBL-Mariner وجود دارد که نیازهای Azure را هدف قرار دهد، نه فقط هر پلتفرم Kubernetes. همراه با Kestrel و YARP و در حال اجرا بر روی ARM، CBL-Mariner همچنین می تواند به برنامه های بیشتر اجازه دهد تا روی سرورهای کمتری اجرا شوند و انرژی کمتری مصرف کنند. این دلیل خوبی برای آشنایی با لینوکس خود مایکروسافت است.