امروز ما یک وبلاگ از Pablo Chico de Guzmán در Okteto داریم ، که در مورد چگونگی عشق توسعه دهندگان به Docker Compose به Okteto برای ایجاد Okteto Stacks ، یک پشتیبان Kubernetes کاملاً سازگار برای Docker Compose

می نویسد. تقریبا 7 سال از زمان پخش زنده Docker Compose v1.0.0 می گذرد. از آن زمان ، Docker Compose به ابزاری غالب برای محیط های توسعه محلی تبدیل شده است. شما یک دستور را اجرا می کنید و محیط توسعه محلی شما فعال است. و روی هر سیستم عامل و برای هر برنامه به همین روش کار می کند.
در همان زمان ، Kubernetes رشد کرده و به عنوان یک پلتفرم غالب برای استقرار کانتینرها در تولید تبدیل شده است. Kubernetes به شما امکان می دهد کانتینرها را بر روی چندین میزبان برای تحمل خطا اجرا کنید ، سلامت برنامه های شما را کنترل کرده و منابع زیرساختی خود را بهینه می کند. یک اکوسیستم غنی در اطراف آن وجود دارد و همه ارائه دهندگان اصلی پشتیبانی محلی از Kubernetes دارند: GKE ، AKS ، EKS ، Openshift…
ما با ساخت Okteto (یک بستر بومی ابر برای توسعه دهندگان) با هزاران توسعه دهنده ارتباط برقرار کرده ایم . و ما شکایت یکسانی را می شنیدیم: وقتی از Docker Compose به Kubernetes می روید یک منحنی یادگیری بسیار زیاد وجود دارد. حداقل تا امروز اینطور بود. ما خوشحالیم که اعلام می کنیم اکنون می توانید فایلهای Docker Compose خود را در Kubernetes با Okteto اجرا کنید! . یک پرونده Docker Compose برای پنج ریز سرویس ممکن است حدود 30 خط yaml باشد ، اما همان کاربرد در Kubernetes 500+ خط yaml و حدود 10-15 پرونده مختلف است. همچنین ، Docker Compose CLI در صورت لزوم ظروف را از نو ساخته و مجدداً جابجا می کند. در Kubernetes ، به ابزارهای دیگری برای ساخت تصاویر خود ، برچسب گذاری آنها ، فشار دادن آنها به یک رجیستری Docker ، به روزرسانی مانیفست های Kubernetes و دوباره بکارگیری آنها نیاز دارید. این اصطکاک بیش از حد برای چیزی است که به طور کامل توسط Docker Compose انتزاع شده است.
اما برخی موارد استفاده وجود دارد که اجرای فایل های Docker Compose به صورت محلی برخی از چالش ها را به وجود می آورد. به عنوان مثال ، ممکن است شما نیاز به اجرای ده ها ریز سرویس داشته باشید که CPU / حافظه محلی شما را خسته می کند ، برای توسعه یک برنامه ML ممکن است به GPUs دسترسی داشته باشید یا اینکه بخواهید با سرویس مستقر در یک خوشه Kubernetes از راه دور ادغام شوید. برای این سناریوها ، اجرای Docker Compose در Kubernetes بهترین راه حل است. از این طریق ، توسعه دهندگان به منابع مورد نیاز CPU / Memory / GPU ، دسترسی مستقیم به سایر سرویس های موجود در خوشه و ادغام واقع بینانه پایان به انتها با پیکربندی خوشه دسترسی پیدا می کنند (کنترل کننده های ورودی ، خاتمه SSL ، ابزارهای نظارت ، مخفی
Docker تنظیم مشخصات برای نجات
خوشبختانه مشخصات Docker Compose در سال 2020 به صورت منبع باز تهیه شده است. این مجاز است ما برای اجرای Okteto Stacks ، یک پشتوانه کاملاً سازگار Kubernetes برای Docker Compose. Okteto Stacks با توجه به سایر اجرای Kubernetes باطن مشخصات Docker Compose مشخصات منحصر به فرد است زیرا:
- ایجاد خوشه برای عملکرد بهتر و رفتار caching.
- ادغام کنترل کننده ورودی و خاتمه SSL برای درگاه های عمومی.
- همگام سازی دو طرفه بین سیستم پرونده محلی و ظروف شما در Kubernetes.
هماهنگ سازی دو طرفه Okteto بسیار مفید است: در حالی که کد خود را به صورت محلی ویرایش می کنید ، برنامه شما را روی خوشه بارگیری می کند. این معادل نصب کد شما در داخل ظرف با استفاده از حجم میزبان Docker Compose است ، اما برای کانتینرهایی که در یک خوشه از راه دور کار می کنند.
نحوه شروع کار
Okteto Stacks با هر خوشه Kubernetes سازگار است (شما نیاز به نصب Okteto CLI و یک برنامه Kubernetes در کنار خوشه دارد). اما ساده ترین راه برای شروع با Okteto Stacks Cloud Okteto است ، نسخه SaaS از بستر توسعه ابری ما.
برای نشان دادن امکانات Okteto Stacks ، اجازه دهید برنامه معروف رأی دهی را مستقر کنیم. تیم من @ Tutum برای به نمایش گذاشتن قدرت توتوم (بعداً در همان سال توسط داکر خریداری شد) برنامه رأی دهی به سخنرانی اصلی DockerCon (EU 2015) را توسعه داد. خدایان نسخه ی نمایشی در آن روز با ارائه ی انگور دلجویی کردند. و امیدوارم که با دنبال کردن این آموزش ، آنها دوباره مورد رضایت قرار گیرند:
ابتدا اگر هنوز این کار را انجام نداده اید ، Okteto CLI را نصب کنید.
در مرحله بعد ، دسترسی به فضای نامی Okteto Cloud خود را پیکربندی کنید. برای انجام این کار ، دستور زیر را اجرا کنید:
$ okteto namespace
احراز هویت لازم است. آیا می خواهید به Okteto وارد شوید؟ [y/n]: سال
آدرس URL نمونه Okteto شما چیست؟ [https://cloud.okteto.com]:
احراز هویت در مرورگر پیش فرض شما ادامه خواهد یافت
as به عنوان سیندی وارد سیستم شوید
context متن به روز شده 'cloud_okteto_com' در '/Users/cindy/.kube/config'
با اجرای دستورات زیر نسخه محلی برنامه رأی گیری را دریافت کنید:
$ git clone https://github.com/okteto / نوشتن-شروع-کار
$ cd نوشتن و شروع به کار
برای استقرار برنامه رأی گیری دستور زیر را اجرا کنید:
استقرار پشته $ okteto - منتظر بمانید
volume حجم ایجاد شده "redis"
vote سرویس مستقر "رأی"
red سرویس مستقر شده 'redis'
✓ پشته "نوشتن و شروع کار" با موفقیت به کار گرفته شد
فرمان استقرار ، استقرارها ، خدمات ، حجم های مداوم و قوانین لازم برای اجرای برنامه رأی گیری را ایجاد می کند. به داشبورد Okteto Cloud بروید و آدرس URL برنامه را دریافت خواهید کرد.

اکنون که برنامه رأی دادن در حال اجرا است ، بیایید یک تغییر کوچک ایجاد کنیم تا روند کار توسعه را به شما نشان دهیم.
به جای حیوان خانگی ما ، بیایید بپرسیم همه برای رای دادن در مورد ناهار مورد علاقه ما پرونده "vote / app.py" را در IDE خود باز کرده و سطرهای 16-17 را اصلاح کنید. تغییرات خود را ذخیره کنید.
def getOptions ():
option_a = "Tacos"
option_b = "Burritos"
هنگامی که از تغییرات خود راضی بودید ، دستور زیر را اجرا کنید:
$ okteto up
✓ تصاویر با موفقیت کشیده شد
✓ پرونده ها هماهنگ شده است
فضای نام: cindy
نام: رأی دادن
* سرویس برنامه "فلاسک" (بارگذاری تنبل)
* محیط: توسعه
* حالت اشکال زدایی: روشن است
* در حال اجرا در http://10.8.4.205:8080/ (CTRL + C را فشار دهید تا ترک کنید)
* راه اندازی مجدد با stat * اشکال زدایی فعال است! * پین رفع اشکال: 139-182-328
URL برنامه خود را دوباره بررسی کنید. تغییرات کد شما فوراً اعمال شد. بدون انجام تعهد ، ساخت یا فشار لازم است. و از این لحظه ، هر تغییری که از IDE شما انجام شود ، بلافاصله در برنامه شما اعمال خواهد شد!

این همه!
به اسناد Okteto Stacks بروید تا درباره بک گراند Kubernetes Docker Compose ما بیشتر بدانید. ما در حال شروع کار هستیم ، بنابراین دوست داریم نظرات شما را در این مورد بشنویم.
کدگذاری مبارک!