JavaRush /وبلاگ جاوا /Random-FA /Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با ی...
Павел
مرحله

Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟

در گروه منتشر شد
همه چیز با بسته بندی شروع می شود. در توسعه صنعتی، به عنوان مثال، نیاز به "بسته بندی" برنامه مونتاژ شده وجود دارد تا بتوان آن را به سروری که در آن کار می کند، به شکلی که توسعه دهنده آن را روی رایانه خود مونتاژ کرده است، منتقل کرد، مانند "بسته بندی" باید به عنوان نوعی حفاظت عمل کند. این امر شگفتی‌ها را از بین می‌برد، مانند زمانی که یک برنامه در طول آزمایش کار می‌کند، اما وقتی به تولید منتقل می‌شود، خراب می‌شود. همچنین، "بسته بندی" یک برنامه را از برنامه دیگر، واقع در همان سرور، ایزوله می کند، چنین ایزوله سازی به یک برنامه اجازه می دهد تا در کار دیگری تداخل نداشته باشد (به عنوان مثال: یک برنامه قادر نخواهد بود تمام RAM سرور را تصاحب کند، و از سرور خارج شود. کاربرد دوم برای سرنوشت خود). مزایای "بسته بندی" با معماری میکروسرویس به ویژه قابل توجه است، و این قابل درک است؛ میکروسرویس های زیادی وجود دارد - بسیاری از برنامه های کاربردی کوچک که باید با یکدیگر ارتباط برقرار کنند، اما در عین حال نباید با یکدیگر تداخل داشته باشند. به عنوان مثال می توان به کشو (سرور) اشاره کرد که در آن کشوهای مختلفی وجود دارد و به راحتی می توانیم جوراب های مختلف را از کشو به کشو دیگر منتقل کنیم و در عین حال با هم و یا با شورت مخلوط نمی شوند. Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟  - 1 بسته بندی توسط ابزار مجازی سازی ایجاد می شود. روزی روزگاری از ماشین های مجازی (VM) به عنوان "بسته بندی" استفاده می شد. افراد قدیمی به یاد خواهند آورد که چگونه ویندوز XP را روی ویستا در یک ماشین مجازی مستقر کردند. در حال حاضر VM برای بسته بندی برنامه ها چیزی از گذشته است. کانتینرها دنیا را گرفته اند. زیرا آنها: سبک تر، پربارتر و ایمن تر هستند. با جزئیات بیشتر: یک کانتینر چه تفاوتی با ماشین مجازی دارد؟ Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟  - 2 شما باید برخی از مزایای کانتینرها را به خاطر بسپارید: • اندازه آنها کوچکتر است (حافظه کمتری را در سرور اشغال می کند). • دسترسی به منابع سرور مشترک (RAM، زمان محاسبه پردازنده). • قابلیت حمل بهتر به محیط های دیگر (از آزمایش تا صنعتی) داشته باشد. • سرعت پرتاب بالاتری را ارائه دهید (از آنجایی که کانتینر سبک وزن است، سریعتر پرتاب می شود). داکر مادر کانتینرها است. وقتی می گویند کانتینر یعنی داکر. Docker نرم افزاری برای خودکارسازی استقرار و مدیریت برنامه ها در محیط های کانتینری است. با استفاده از مثال‌ها، داکر تلاقی بین یک طراح آنلاین و یک چاپگر سه بعدی با جرثقیل است. یعنی می تواند ابتدا یک قالب (تصویر) برای یک ظرف طراحی کند، ظرف را با توجه به شرایط داده شده (تصویر) پرینت (ایجاد) کند و سپس آن را به هر کجا که نیاز است منتقل کند. به جای اهرم از Dockerfiles استفاده می شود. فرآیند مدیریت ساده است: شما فایل ها، دستورات را می نویسید، آنها را اجرا می کنید و ببینید چه اتفاقی می افتد. Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟  - 3 اولین آشنایی با Docker Docker Compose - Docker ارتقا یافته حال بیایید به سناریویی نگاه کنیم که در آن چندین کانتینر باید در یک مکان در حال اجرا باشند. ابزار مورد استفاده برای این کار Docker Compose است. Docker Compose ابزاری است که در Docker گنجانده شده است. برای حل مشکلات مربوط به استقرار پروژه طراحی شده است. تفاوت بین Docker و Docker Compose: Docker برای مدیریت کانتینرهای جداگانه استفاده می شود. Docker Compose برای مدیریت چندین کانتینر به طور همزمان استفاده می شود. این ابزار همان قابلیت های Docker را ارائه می دهد، اما به شما اجازه می دهد تا با ساختارهای پیچیده تری کار کنید. Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟  - 4 سناریوی معمولی برای استفاده از Docker Compose: تصور کنید که توسعه دهنده یک پروژه وب هستید. این پروژه شامل دو وب سایت می باشد. اولین مورد به افراد تجاری اجازه می دهد تا تنها با چند کلیک فروشگاه های آنلاین ایجاد کنند. هدف دوم پشتیبانی از مشتری است. این دو سایت با یک پایگاه داده تعامل دارند. پروژه شما روز به روز محبوب تر می شود و معلوم می شود که قدرت سروری که روی آن اجرا می شود دیگر کافی نیست. در نتیجه تصمیم می گیرید کل پروژه را به ماشین دیگری منتقل کنید. اگر از چیزی مانند Docker Compose استفاده نکرده‌اید، باید کانتینرها را یکی یکی منتقل کرده و پیکربندی مجدد کنید، به این امید که در این فرآیند چیزی را فراموش نکنید. اگر از Docker Compose استفاده می کنید، انتقال پروژه خود به یک سرور جدید موضوعی است که با اجرای چند دستور قابل حل است. برای تکمیل انتقال پروژه به یک مکان جدید، فقط باید تنظیماتی را انجام دهید و یک نسخه پشتیبان از پایگاه داده در سرور جدید آپلود کنید. DockerComposer معمولی: Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟  - 5 آنچه باید در اینجا به خاطر بسپارید: کانتینرها ابزار اصلی برای برنامه های "بسته بندی" هستند. داکر کانتینرها را کنترل می کند، تصاویر کانتینر را ایجاد می کند، کانتینرها را برمی دارد و حرکت می دهد. برای مدیریت همزمان دسته ای از کانتینرها از Docker Compose استفاده می شود که در Docker گنجانده شده است. این برنامه‌ها نرم‌افزار رایگان هستند (رایگان - در یک کلام) Kubernetes (K8s) - اتوماسیون Docker و بنابراین ما کانتینرها را مستقر کردیم، می‌دانیم چگونه آنها را "به صورت دسته‌ای" از ماشینی به ماشین دیگر منتقل کنیم. اما ناگهان یکی از کانتینرها افتاد! چه باید کرد؟ چه کسی دوباره آن را مطرح خواهد کرد؟ Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟  - 6 البته می توانید این کار را به صورت دستی و از طریق داکر انجام دهید. اما شما باید کاری انجام دهید، چیزی بنویسید، به نوعی ابزار اتوماسیون نیاز دارید. اینجاست که Kubernetes (به اختصار K8s) وارد تصویر می شود، همچنین به مدیریت و ارکستراسیون (مدیریت خودکار نهادهای مرتبط) کانتینرها می پردازد. با در اختیار داشتن K8، نیازی به نظارت بر کانتینرها در روز و شب ندارید. کافی است سناریوی رفتار را تعریف کنید و K8s همه کارها را خودش انجام خواهد داد. ویژگی های کلیدی Kubernetes 1. مقیاس پذیری و مدیریت پیکربندی شما را فراهم می کند. 2. می توانید آنچه را که می خواهید در هنگام استقرار یک خوشه به دست آورید، توصیف کنید، و K8s این کار را انجام خواهند داد. برای مثال تعداد غلاف ها را مشخص کنید، چه مقدار حافظه برای آنها اختصاص داده می شود، تعداد کپی ها (نمونه های) برنامه های کاربردی (در کانتینرها) روی pod ها را نشان می دهد. 3. مسئول حفظ سیستم در یک وضعیت خاص؛ اگر چیزی سقوط کند، K8s آن را طبق پیکربندی تعیین شده برمی‌دارد. آنچه باید در اینجا به خاطر بسپارید: Kubernetes ابزاری برای هماهنگی برنامه های کاربردی کانتینری است - استقرار، مقیاس بندی و هماهنگی آنها را در یک خوشه خودکار می کند. از فناوری‌های بزرگ کانتینری‌سازی، از جمله Docker پشتیبانی می‌کند. K8s یک نرم افزار متن باز است. Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟  - 7 OpenShift یک فراری در دنیای مجازی سازی است، جالب، سریع و گران قیمت در حال توسعه موضوع، اجازه دهید به OpenShift برویم. OpenShift یک افزونه برای Kubernetes است که عملکردهای اضافی را ارائه می دهد. بلافاصله آماده استفاده است، نیازی به پیکربندی طولانی و دردناک ندارد و می تواند بلافاصله وارد مرحله تولید شود. ببینید چند آیکون مختلف در بالای Kubernetes وجود دارد. و هر کدام از آنها کارهای جالب خود را انجام می دهند. Docker، Kubernetes، OpenShift چه کسانی هستند و چگونه با یکدیگر مرتبط هستند؟  - 8 نکات برجسته OpenShift: • این یک محصول پولی است، بر خلاف K8s. • DevOps خارج از جعبه، پشتیبانی از سناریوهای پایه آبی/سبز، استقرار قناری. • ساخته شده در پشتیبانی جنکینز. • ابزارهای مناسبی را برای مدیریت و کار با خوشه فراهم می کند. • دارای مدل امنیتی دقیق تر و نظارت داخلی است. لازم به ذکر است که OpenShift برخلاف Kubernetes یک محصول پولی است. تفاوت در این است: اگر ما Kubernetes را خالی کنیم، پس خودمان همه مشکلات را حل می کنیم. اگر در مورد OpenShift صحبت کنیم، محصول Red Hat است که مشکلات در حال ظهور را به عنوان بخشی از پشتیبانی پولی حل می کند. بیایید خلاصه کنیم: در توسعه صنعتی نیاز به "بسته بندی" برنامه وجود دارد؛ این رویکرد به ویژه در معماری میکروسرویس مرتبط است. ظروف اصلی ترین ابزار بسته بندی هستند. داکر کانتینرها را کنترل می کند، تصاویر کانتینر را ایجاد می کند، کانتینرها را برمی دارد و حرکت می دهد. برای مدیریت همزمان دسته ای از کانتینرها از Docker Compose استفاده می شود که در Docker گنجانده شده است. این برنامه ها نرم افزار رایگان هستند. Kubernetes (K8s) ابزاری برای سازماندهی برنامه های کاربردی کانتینری است - خودکارسازی استقرار، مقیاس بندی و هماهنگی آنها در یک خوشه. از فناوری‌های بزرگ کانتینری‌سازی، از جمله Docker پشتیبانی می‌کند. K8s یک نرم افزار متن باز است. OpenShift یک افزونه برای Kubernetes است که عملکردهای بیشتری را ارائه می دهد. این یک محصول پولی است، بر خلاف K8s، که برای استفاده شرکتی در نظر گرفته شده است. DevOps را خارج از جعبه ارائه می دهد: پشتیبانی از سناریوهای اصلی استقرار آبی/سبز، قناری، دارای پشتیبانی داخلی برای Jenkins است و ابزارهای مناسبی برای مدیریت و کار با خوشه ارائه می دهد. دارای یک مدل امنیتی دقیق تر و نظارت داخلی است. برای کسانی که از کدنویسی رنج می برند: بسته بندی یک برنامه Spring Boot در یک کانتینر چگونه Postgres را در Docker مستقر کنیم و به یک برنامه Spring-Boot متصل شویم وبینار: Docker - چگونه با کانتینرها کار کنیم؟ - توسعه Backend در جاوا
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION