۳۰ آذر ۱۴۰۳

Techboy

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

Azure AKS را با فناوری های جدید Kubernetes به روز می کند

مایکروسافت به تکامل پلتفرم ارکستراسیون کانتینر Azure ادامه می دهد و پشتیبانی از پروکسی و WebAssembly را اضافه می کند.

مایکروسافت به تکامل پلتفرم ارکستراسیون کانتینر Azure ادامه می دهد و پشتیبانی از پروکسی و WebAssembly را اضافه می کند.

Kubernetes پایه و اساس بسیاری از نرم افزارهای مدرن بومی ابری است. اگرچه این یک فناوری بالغ است که برای Azure و دیگر ابرهای ابر مقیاس مهم است، Kubernetes قطعا ثابت نمی‌ماند. به‌روزرسانی‌های منظم ویژگی‌هایی را اضافه می‌کنند، در حالی که اکوسیستم رو به رشد ابزارها و فناوری‌هایی را می‌سازد که با پلتفرم زیربنایی یکپارچه می‌شوند. جای تعجب نیست که پلتفرم‌های مدیریت‌شده Kubernetes مانند سرویس Kubernetes Azure (AKS) جدید را اتخاذ کنند. فناوری‌ها سریع‌تر از سایر سرویس‌های ابری – حتی با سرعت توسعه سریعی که ابر ارائه می‌دهد.

به‌روزرسانی‌های اخیر AKS با افزودن پشتیبانی پیش‌نمایش برای پراکسی‌های HTTP و HTTPS، همراه با آوردن پروژه Krustlet بیشتر به جریان اصلی با استخرهای گره‌های WebAssembly System Interface، امنیت برنامه را بهبود بخشیده است. هر دو در حال حاضر به‌عنوان پیش‌نمایش‌های انتخابی در دسترس هستند، که بهتر است برای نمونه‌های اولیه و آزمایش‌ها در نظر گرفته شوند. با این حال، این بدان معنی است که آنها برای تولید با پشتیبانی از توافقنامه در سطح خدمات در چند ماه آینده در نظر گرفته شده‌اند (البته احتمالاً برای WebAssembly طولانی‌تر)، و ارزش آن را دارد که به آنها نگاهی بیندازید تا ببینید آیا آنها نیازهای شما را برآورده می‌کنند یا خیر.

افزودن پشتیبانی پروکسی به Kubernetes

پشتیبانی از پروکسی‌های HTTP و HTTPS احتمالاً وجود دارد مفیدترین ویژگی در کوتاه مدت، زیرا به شما امکان می دهد خوشه های Kubernetes را در پشت پراکسی ها اجرا کنید و اجرای آنها را در شبکه های ایزوله ممکن می کند. اگر می خواهید از Azure VNet برای محافظت از خدمات خود هنگام کار با داده های حساس یا استفاده از یک ابر ترکیبی برای گسترش برنامه های Kubernetes در محل به Azure استفاده کنید، مفید است. همچنین اگر از AKS در Azure Arc در زیرساخت خود از طریق زیرساخت ابرهمگرا Azure Stack (HCI) استفاده می‌کنید یا اگر از یک ابزار مدیریت‌شده Azure Stack در لبه شبکه استفاده می‌کنید، این یک رویکرد محتمل است.

پشتیبانی پروکسی HTTP AKS به شما امکان می دهد خدمات شبکه و ترافیک مورد نیاز را به شبکه خصوصی خود بیاورید و اتصالات را از طریق پراکسی ها زنجیره ای کنید. همراه با قابلیت‌های شبکه، ابزارهایی برای مدیریت گواهی‌ها برای اطمینان از اینکه گره‌ها و خوشه‌های ایزوله شما هنوز بخشی از زنجیره کامل اعتماد هستند، را شامل می‌شود.

حرفه ابری خود را بهینه کنید

شروع به کار به اندازه کافی ساده است. پشتیبانی از پروکسی AKS با استفاده از بهترین روش‌های توسعه برنامه‌های کاربردی مدرن، در پشت پرچم ویژگی نگهداری می‌شود. Azure CLI را باز کنید و از دستور feature register برای ثبت HTTPProxyConfigService در سرویس کانتینر Azure استفاده کنید. فعال کردن این کار مدتی طول می کشد، که می توانید با استفاده از دستور feature list آن را بررسی کنید. پس از فعال شدن، مجدداً Container Service را ثبت کنید تا از ویژگی جدید استفاده کنید.

وقتی این ویژگی فعال شد، می‌توانید از آن در خوشه‌های Kubernetes خود استفاده کنید. با این حال، در حال حاضر نمی‌توانید آن را روی خوشه‌های موجود فعال کنید. پشتیبانی پروکسی باید در طول ایجاد خوشه اضافه شود. در اینجا باید از دستور aks create با فایل پیکربندی JSON یا YAML استفاده کنید. این شامل نشانی‌های وب پراکسی‌های HTTP و HTTPS، با فهرستی از دامنه‌هایی است که از سرویس پراکسی مستثنی شده‌اند. در نهایت، اگر از یک مرجع گواهی استفاده می‌کنید، باید گواهی نام‌های جایگزین موضوع کدگذاری شده با base64 را در قالب PEM اضافه کنید. همان جزئیات پراکسی را می توان در یک الگوی ARM استفاده کرد.

پس از پیکربندی، تنظیمات پراکسی خوشه بدون راه‌اندازی کامل یک خوشه کاملاً جدید قابل تغییر نیستند. تنها بخشی از پیکربندی که می‌توان آن را تغییر داد، گواهی مرجع گواهی است، به منظور پشتیبانی از جابجایی (به خصوص اگر از گواهی‌های کوتاه مدت از سرویسی مانند Let’s Encrypt استفاده می‌کنید).

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

استفاده از Krustlets در AKS

نسخه جدید بزرگ دیگر پشتیبانی از پیش نمایش WebAssembly است. -گره های مجهز به عنوان جایگزینی برای کانتینرهای در حال اجرا. این رویکرد مخصوصاً زمانی جالب است که به محیط‌های محدود به منابع که سرویس‌های نسبتاً ساده را اجرا می‌کنند، می‌رسد. یک کانتینر ممکن است کوچک به نظر برسد، اما به منابع پشتیبانی قابل توجهی برای میزبانی سرزمین کاربری برنامه نیاز دارد. WebAssembly (WASM)، به ویژه محیط WebAssembly Standard Interface (WASI) بدون مرورگر، به حداقل منابع سیستمی فراتر از یک محیط جاوا اسکریپت پشتیبانی شده نیاز دارد و به طور خودکار همه کدهای شما را باکس‌باکس می‌کند.

دنیای در حال تغییر جاوا

مدتی پیش در مورد آزمایش‌هایی نوشتم که آزمایشگاه Deis مایکروسافت با Krustlets انجام می‌داد، راهی برای استفاده از WASI در گره‌های Kubernetes. این یک جایگزین جذاب برای کانتینرهای سنگین وزن بود که راهی برای اجرای Kubernetes در دستگاه های لبه کوچک ارائه می داد. آوردن Krustlets به AKS به عنوان استخرهای گره WASM/WASI روش جالبی برای گسترش آن است، هم در ابر Azure و هم در نمونه های Azure Arc AKS در سخت افزار لبه.

اجرای استخرهای گره WASM به برخی پیش نیازها نیاز دارد، زیرا به اندازه سایر پیش نمایش های AKS بالغ نیست. انتشار زودهنگام آن یک گام جالب برای مایکروسافت است. همانطور که با محبوبیت Cloud Native WASM Day در KubeCon آمریکای شمالی ۲۰۲۱، بنابراین خوب است که ببینیم Azure در اینجا پیشتاز است و ابزارهایی را که توسعه دهندگان برای ساخت و آزمایش برنامه های توزیع شده WebAssembly در مقیاس به آن نیاز دارند، ارائه می دهد. یک متقاطع جالب نیز وجود دارد، با کار Deis Labs روی واسط دروازه WebAssembly (WAGI) و ابزارهایی مانند محیط توسعه Hippo، که باید به توسعه دهندگان در طراحی و ساخت Krustlet کمک کند. میکروسرویس های مبتنی بر.

همانند کار با ابزارهای پراکسی HTTPS، باید پرچم ویژگی WasmNodePoolPreview را در ContainerService از طریق Azure CLI فعال کنید. پس از فعال شدن، سرویس کانتینر را بازخوانی کنید تا مطمئن شوید که کاملاً ثبت شده است. در مرحله بعد باید نسخه پیش نمایشی از پسوند AKS Azure CLI را نصب کنید. اگر قبلاً از آن استفاده می‌کنید، مطمئن شوید که به‌روز است.

اکنون می توانید یک Node Pool WebAssembly را به یک خوشه AKS اضافه کنید. این باید در لینوکس اجرا شود و باید از هر گره مبتنی بر کانتینر جدا باشد. پس از راه اندازی و اجرا، می توانید بارهای کاری WebAssembly را در استخر گره خود مستقر کنید. باید اطمینان حاصل کنید که فقط به گونه‌ای تنظیم شده است که غلاف‌های wasm32-wagi را اجرا کند، به طوری که AKS کانتینرها را در گره‌های WebAssembly شما برنامه‌ریزی نمی‌کند و در عین حال از بارگیری غلاف‌های WebAssembly شما در غلاف‌های کانتینری استاندارد جلوگیری می‌کند. این یکی از حوزه‌هایی است که در نسخه‌های بعدی به اتوماسیون نیاز دارد، بنابراین مراقب باشید که این دو فناوری را در نمونه‌های اولیه خود از هم جدا نگه دارید.

از ابر برای تقویت زنجیره تامین خود استفاده کنید

مایکروسافت مجموعه‌ای از ماژول‌های نمونه WebAssembly را ارائه می‌کند که می‌توانید با استفاده از kubectl بارگیری کنید، همراه با یک فایل YAML از پیش پیکربندی شده برای پیکربندی برنامه آزمایشی خود. این می تواند به شما در برنامه های آینده کمک کند و ساختاری را به شما ارائه دهد که می تواند برای کار با کد خود شخصی سازی شود. در نهایت، می‌توانید یک پروکسی معکوس برای آزمایش برنامه WebAssembly خود راه‌اندازی کنید، با استفاده از نمودار Helm برای بارگیری متعادل‌کننده بار Nginx تا یک آدرس IP خارجی به آن بدهید.

این مرحله دیگری است که احتمالاً در نسخه‌های بعدی خودکار می‌شود، زیرا مایکروسافت به سمت ایجاد پشتیبانی WebAssembly در AKS حرکت می‌کند. با این حال، دیدن پشتیبانی آزمایشی که در پیش‌نمایش می‌رسد، خوب است. WASI و WAGI هنوز هم فناوری‌های بسیار جدیدی هستند و برای استفاده در زمان اولیه آماده نیستند، و اگرچه مایکروسافت به وضوح آینده بلندمدتی را برای آنها در Kubernetes می‌بیند، بعید است که حداقل یک سال دیگر از آنها در تولید استفاده کنید.

این پیش‌نمایش‌ها نشان می‌دهند که زمان آن رسیده است که ببینید آن‌ها چه کاری می‌توانند برای شما انجام دهند. استخرهای گره WebAssembly ارزش کاوش را دارند، و هم افزایی با پشتیبانی از پراکسی های HTTPS به عنوان راهی برای ایجاد دروازه های میکروسرویس های مبتنی بر WAGI در خارج از VNets و ابرهای خصوصی وجود دارد. با بخشی از AKS از Azure Arc، فضای زیادی برای ارائه این خدمات به دستگاه‌های خارج از ابر Azure وجود دارد، در حالی که هنوز از Azure و Azure CLI به عنوان یک لایه مدیریتی استفاده می‌شود.

مایکروسافت تعهد بزرگی به Kubernetes کرده است، هم برای خدمات خود و هم برای پشتیبانی از کد شما. حذف وابستگی آن به کانتینرها از طریق Krustlets باعث می‌شود که در صورت نیاز، در صورت نیاز و در عین حال که از منابع کمتری استفاده می‌کنید، نمونه‌های جدیدی از کدتان را شروع کنید. نتیجه باید سریع‌تر، خدمات سبک‌تر و هزینه‌های محاسباتی کمتر باشد. این یک شبه اتفاق نمی‌افتد، اما توسعه‌ای است که باید برای آن آماده باشید.