جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره ها
  • مقالات
  • معرفی ابزارهای لینوکس
  • تماس با ما

ورود

گذرواژه خود را فراموش کرده اید؟

ثبت نام

آموزش لینوکس 🐧 آموزش دوآپس 🐋
  • صفحه اصلی
  • دوره ها
  • مقالات
  • معرفی ابزارهای لینوکس
  • تماس با ما
آخرین اطلاعیه ها
جهت نمایش اطلاعیه باید وارد سایت شوید
شروع کنید
0

وبلاگ

آموزش لینوکس 🐧 آموزش دوآپس 🐋مقالاتمقالاتمقایسه Orchestration های Docker

مقایسه Orchestration های Docker

2 شهریور 1399
ارسال شده توسط Aref Akhtari
مقالات

درمفاهیم مربوط به داکر و مایکروسرویس اصطلاحی به نام Container Orchestration Engines (COEs) وجود دارد که یک لایه انتزاع برای pool ها منابع و کانتینر هایی است که روی آن منابع قرار است بالا بیاید. برخی از این ویژگی های high-level عبارت اند از:

  • Container scheduling

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

  • High availability

اشاه به قابلیت در دسترس بودن یک سیستم ، کانتینر یا ارکستیشن را شامل میشود

  • Health checks

چک وضعیت سلامت برنامه یا کانتینر

  • Service discovery

که برای تعیین محل سزویس های مختلف در یک شبکه بر روی یک معماری محاسباتی توزیع شده استفاده می شود.

  • Load Balancing

توزیع بار درخواست ها چه به صورت داخلی و چه بصورت خارجی

  • اتصال انواع مختلف (شبکه ، محلی) مخازن ذخیره سازی به کانتینرهای یک کلاستر.

مدیریت و تنظیم کانتینر به سرعت در حال تحول است Kubernetes ، Docker Swarm و Apache Mesos سه بازیکن اصلی در این زمینه هستند. Kubernetes و Docker Swarm و Apache Mesos ابزار مهمی هستند که برای استقرار کانتینر ها داخل یک کلاستراستفاده می شوند. اجازه دهید ابتدا به توضیح کوتاه Kubernetes و Docker Swarm و Apache Mesos بپردازیم تا ببینیم تفاوت های بین این دو در چیست.

 

بررسی کوتاه Kubernetes

کوبرنیتیس حاصل سالها تجربه گوگل در زمینه بار کاری در مقیاس بزرگ تولید است طبق سایت کوبرنیتیس ,کوبرنیتیس یک سیستم منبع باز برای خودکار سازی استقرار ، مقیاس گذاری و مدیریت برنامه های کانتینر شده است. اگر بخواهیم به‌زبان ساده کوبرنتیز را توضیح دهیم باید بگوییم کوبرنتیز اجرا و مدیریت کانتینرهای مختلف را در سرورهای متفاوت که در یک پایگاه داده یا چندین پایگاه قرار گرفته‌اند را بر عهده می‌گیرد. در کوبرنتیز کانتینرهای مختلفی که مشترکاً برنامه کاربردی خاصی را شامل می‌شوند در حالت جداگانه و مستقل تحت عنوان پاد (Pod)‌ دسته‌بندی خواهند شد. این کار فرآیند مدیریت و شناسایی آن‌ها را ساده‌تر می‌کند.از ویژگی های بارز K8s می توان به auto-scaling,load-balancing,volume management, secret management و web UI اشاره کرد.این ویژگی ها باعث میشود این نوع نسبت به همتاهای خودش کمتر وابسته به ابزار های third-party باشد.

تو ی مقاله جدا مفصل راجب این  kubernetes صحبت می کنیم.

 

بررسی کوتاه Docker Swarm

Docker swarm نوعی تنظیم کننده کانتینر داکر است.از API و شبکه استاندارد داکر استفاده میکند. Docker Swarm به گونه ای طراحی شده است که در حدود چهار اصل اصلی کار می کند:

  • سادگی کار کردن و در عین حال قدرتمند بودن
  • معماری انعطاف پذیر و مقاوم از ابتدای پیاده سازی
  • امنیت خوب که توسط گواهی های معتبری که به صورت خودکار تولید میشود
  • سازگاری با اجزای موجود

از ویژگی های بارز swarm می توان به YAML-based deployment ,auto-healing of clusters, overlay networks with DNS , high-availability , network security using TLS اشاره کرد. مواردی مانند native auto-scaling و external load balancing همچنان پشتیبانی نمیشود

 

بررسی کوتاه Apache Mesos

یک مدیر خوشه است که وظیفه ارائه منابع مفید ایزوله و اشتراک آنها را دربین برنامه های توزیع شده یا فریم ورک ها را به عهده دارد . این برنامه متن باز در دانشگاه کالیفرنیای برکلی استارت خورده است . این برنامه بین لایه کاربردی و سیستم عامل می نشیند و کمک می کند استفاده و اجرای برنامه ها در محیط های خوشه ای مقیاس بالا آسان تر و موثرتر انجام پذیرد . با کمک آن می توانیم برنامه های زیادی روی گره های زیادی به صورت پویا اجرا کنیم . کاربران مشهور Mesos شامل Twitter ، Airbnb ، MediaCrossing ، Xogito هستند .

کلان داده مجموعه بزرگی از منابع ناهمگون را ایجاد می کند . Mesos یک مکانیزم زمان بندی دوسطحی توزیع شده به نام پیشنهاد منابع معرفی می کند . Mesos تعداد منابع هر فریم ورک را مشخص می کند درحالیکه فریم ورک تصمیم می گیرد چه منابعی را بپذیرد و چه محاسباتی را روی آنها به اجرا درآورد . این یک لایه نازک اشتراک منبع است که امکان اشتراک ریزدانه ها سراسر فریم ورک های رایانشی خوشه ای متنوع با دادن یک اینترفیس رایج برای دسترسی به منابع خوشه ، فراهم می کند . هدف ، اجرای سیستم های توزیع شده متعدد برای گره های اشتراکی به منظور افزایش بهره وری منابع است . فریم ورک های متعددی از جمله Hadoop ، Memecached ، Ruby on Rails ، Storm ، JBoss Data Grid ، MPI ، Spark و Node.js و وب سرورها ، دیتابیس ها و سرورهای نرم افزاری مختلفی را می توان روی Mesos اجرا کرد

 

مقایسه Kubernetes و Docker Swarm

اگرچه هر دو ابزار عملکردهای یکسانی را ارائه می دهند ، اما بین نحوه عملکرد این دو تفاوت اساسی وجود دارد. در زیر برخی از قابل توجه ترین موارد ذکر شده:

تعریف برنامه

در Kubernetes ، یک برنامه با استفاده از ترکیبی از پاد ، دیپلویمنت و سرویس (ماکروسرویس) قابل اجرا است.

در حالی که ، در Docker Swarm ، برنامه ها می توانند به صورت سرویس (ماکروسرویس) در یک کلاستر Swarm مستقر شوند.از فایلهای YAML می توان برای تعیین چند کانتینر استفاده کرد.علاوه بر این ، Docker Compose می تواند برنامه را مستقر کند.

نصب و راه اندازی

در Kubernetes ، نصب به صورت دستی است و برنامه ریزی جدی برای ساخت و اجرای Kubernetes ضروری است. دستورالعمل نصب از سیستم عامل تا ارائه دهنده سیستم متفاوت است.

برای پیکربندی کلاستر نیاز هست ادرس های Ip یک node و اینکه چه قوانینی برای نود نیاز هست را باید بدانیم.

در حالیکه نصب Docker Swarm نسبت به Kubernetes ساده تر است.با داکر ، تنها یک مجموعه ابزار برای یادگیری ساختن محیط و پیکربندی مورد نیاز است. Docker Swarm همچنین با اجازه دادن به هر نود جدید ، می تواند انعطاف پذیری را با استفاده از یک کلاستر موجود به عنوان مدیر یا کارگر فراهم کند.

کار بر روی دو سیستم

برای اجرای Kubernetes در بالای داکر نیاز به دانستن CLI دارد. شما باید دستورات داکر را بدانید تا در یک ساختار حرکت کند و سپس زیرساختهای مشترک زبان Kubernetes را برای اجرای آن برنامه ها تکمیل کند.

از آنجا که Docker Swarm ابزاری از داکر است ، از همان زبان مشترک برای حرکت در یک ساختار استفاده می شود. این قابلیت تغییر و سرعت در این ابزار را فراهم می کند و به داکر امکان استفاده قابل توجهی می بخشد

ورود به سیستم و نظارت

kubernetes از نسخه های مختلف ورود به سیستم و نظارت هنگام استقرار سرویس در کلاستر پشتیبانی می کند:

(Elasticsearch/Kibana (ELK

Heapster/Grafana

Sysdig cloud

Docker Swarm فقط برای نظارت بر برنامه های شخص ثالث پشتیبانی می شود. توصیه می شود از داکر با Reimann برای نظارت استفاده کنید ، اما از آنجا که Docker Swarm دارای یک API باز است ، ارتباط با تعداد زیادی برنامه را آسان تر می کند.

مقیاس پذیری

Kubernetes بیشترین فریم ورک برای سیستم های توزیع شده دارد. این یک سیستم پیچیده است زیرا مجموعه ای از برنامه های یکپارچه و تضمین های قوی در مورد وضعیت کلاستر را ارائه می دهد ، که استقرار و مقیاس بندی پاد را کند می کند.

در مقایسه با کوبرنیتیس Docker Swarm می تواند کانتینر ها را سریعتر مستقر کند.

در دسترس بودن بالا

در Kubernetes ، تمام پاد ها در بین نود ها توزیع شده و با تحمل خرابی برنامه ، دسترسی بالایی را فراهم می کند. در Kubernetes ، خدمات متعادل کننده بار ، پاد های ناسالم را ردیابی کرده و آنها را از بین می برد.

Docker Swarm همچنین امکان ارائه خدمات در نودهای Swarm را در اختیار شما قرار می دهد. در Docker Swarm ، نود های مدیر مسئول کل کلاستر هستند و منابع نود های ورکر را مدیریت می کنند.

شبکه سازی

شبکه Kubernetes مسطح است ، زیرا همه پاد ها را قادر می سازد با یکدیگر ارتباط برقرار کنند. در Kubernetes ، این مدل به دو CIDR نیاز دارد. یکی برای آی پی دادن به پاد ها و دیگری برای سرویس ها.

در Docker Swarm ، نودی که به یک کلاستر می پیوندد ، شبکه ای از خدمات را پوشش می دهد که همه میزبان ها در Swarm را در بر می گیرد و فقط یک ارتباط داکر برای کانتینر دارد. در Docker Swarm ، کاربران گزینه ایجاد رمزگذاری داده های کانتینر در هنگام ایجاد یک شبکه به تنهایی را دارند.

 

مزایا و اشکالات Kubernetes

 

مزایای Kubernetes

  • Kubernetes توسط بنیاد رایانش ابری Cloud (CNCF) پشتیبانی می شود.
  • Kubernetes یک جامعه بسیار چشمگیر در بین کانتینر است. بیش از ۵۰،۰۰۰ تعهد و ۱۲۰۰ همکار.
  • Kubernetes یک ابزار منبع باز و ماژولار است که با هر سیستم عامل کار می کند.
  • Kubernetes سازماندهی خدمات آسان برای پاد ها را فراهم می کند

اشکالات Kubernetes

هنگام انجام این کار توسط خودتان نصب Kubernetes با منحنی یادگیری شیب دار می تواند بسیار پیچیده باشد. گزینه ای برای حل این مسئله ، انتخاب یک سرویس مدیریتی مانند Kubernetes-as-a-service است.

در Kubernetes ، لازم است که مجموعه ای از ابزارهای مجزا برای مدیریت ، از جمله kubectl CLI وجود داشته باشد.

 

مزایا و اشکالات Swarm Docker

مزایای Darmer Swarm

  • Docker Swarm داری نصب سریع و آسان است
  • Docker Swarm یک نصب سبک است. استقرار آن ساده تر است و حالت Swarm در موتور داکر گنجانده شده است.
  • Docker Swarm دارای منحنی یادگیری آسان تر است.
  • Docker Swarm هموار با Docker Compose و Docker CLI ادغام می شود. به این دلیل که اینها ابزار بومی داکر هستند. بسیاری از دستورات Docker CLI با Swarm کار خواهند کرد.

اشکالاتی از Docker Swarm

  • Docker Swarm عملکرد محدودی را ارائه می دهد.
  • Docker Swarm تحمل خطای محدود دارد.
  • Docker Swarm در مقایسه با جامعه Kubernetes از جامعه و پروژه کمتری برخوردار است
  • در Docker Swarm ، سرویس ها به صورت دستی مقیاس پذیر می باشند.

 

نظر خودم در مورد این سه عزیز : مقایسه این دو (swarm, k8s) دقیقاً آسون نیست چراکه Docker Swarm یک راه حل ساده و آسان برای کار با کلاسترهه. Docker Swarm در محیطهایی که سادگی و توسعه سریع مورد علاقه است ، ارجح است. در حالی که Kubernetes برای محیط هایی که در آن کلاستر های متوسط ​​تا بزرگ کاربردهای پیچیده ای دارند مناسب است. نکته ای هست اینه که هم k8s و هم swarm از سرویس هایی با چندین کانتینر و پیاده سازی روی کلاستر فیزیکی یا مجازی اند و شامل مکانیزم های discovery هم هستند در مقابل این دو apache mesos برای مدیریت دیتا سنتر ها و نصب برنامه های پیچیده استفاده میشود. از لحاظ آسانی در استفاده k8s در ابتدا می تواند گیج کننده باشد البته نسبت به swarm و همچنین پیکربندی بیشتری رو هم شامل میشه. برای شروع در حیط های کلاستر داکر swarm می تونه انتخاب خوبی باشه البته نه برای پروداکت برنامه های اصلی ، برای تست برنامه ها و داشتن کلاستر در یک محیط کوچک بسیار مناسبه عجیبترین پیکربندی رو apache mesos داره چراکه برای تبدیل شدن به یک ابزار مدیر ارکستریشن داکر به فریمورک Marathon نیاز داره. mesos به کمک Marathon می تونه صدها یا هزاران نود رو مدیرت کنه ولی طبیعتا پیکربندی پیچیده ای دارد از لحاظ ویژگی و قابلیت، k8s حرف اول رو میزنه و بیشتر ویژگی هاش به صورت پیشفرض درون خودش هست و نیازی به third-party apps نداره. swarm فعلا از این لحاظ قابل مقایسه با اون دوتا دیگه نیست و برخی ویژگی های اتوماتیک سازی و auto-scaling رو نداره. به عنوان ابزار مدیریت کلاستر mesos نسبت به k8s ابزار های بیشتری رو ارایه میده ولی مجدد پیکربندی سخت تری داره. اساس انتخاب شما بین این ۳ ابزار می تونه بستگی به پروژتون داشته باشه مثلا برای سطح ورودی و پروژه های کوچیک و تست swarm میتونه خیلی خوب باشه برای محیط های enterprise تر k8s می تونه گزینه مناسبی باشه و برای محیط های صنعتی تر و کلاستر های خیلی بزرگ apache mesos می تونه بخوبی عمل کنه ولی به خاطر پیکربندیش اندک شرکت های بزرگی سمتش میرن

 

 تعاریف کوتاه و زبان اصلی: 

Swarm

Swarm acts as the Docker API, so all of the tools you’ve already been using with Docker can utilize Swarm to scale throughout a number of different hosts.Easy to integrate and set up, flexible API, but limited customization.Great value and easily scalable for small to medium systems.

Kubernetes

Kubernetes has the full power of Google behind it, managing containerized applications across many hosts. It has many tools and resources to help you deploy, scale, and maintain your applications. Highly versatile, large open-source dev community, but more expensive. Best for medium-scale, highly redundant systems, but requires a larger IT staff.

 

Mesos

mesos is a bit different from the other services mentioned in this article. It’s an open-source cluster manager that focuses on isolating resources and sharing across distributed applications, networks, or frameworks. Best for large systems and designed for maximum redundancy. The most stable platform, but overly complex for small-scale systems under 10-20 nodes.

برچسب ها: Apache Mesosdockerdocker orchestrationDocker SwarmKubernetesKubernetes vs Docker SwarmKubernetes و Docker SwarmOrchestration DockerOrchestration برای Dockerاشکالات Kubernetesاشکالات Swarm Dockerبررسی Apache Mesosبررسی Docker Swarmبررسی Kubernetesبررسی کوتاه Apache Mesosبررسی کوتاه Docker Swarmبررسی کوتاه Kubernetesم Orchestration برای Dockerمزایا Kubernetesمزایا Swarm Dockerمزایا و اشکالات Kubernetesمزایا و اشکالات Swarm Dockerمزایا و اشکالاتی از Kubernetesمقایسه Kubernetes Docker Swarmمقایسه Kubernetes و Docker Swarmمقایسه سرویس های Orchestration برای Docker
قبلی بررسی و راه اندازی bigbluebutton
بعدی آموزش bonding کارت شبکه ها در لینوکس

4 Comments

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • سجاد شاهچراغیان گفت:
    5 شهریور 1399 در 15:09

    سلام.
    ممنون بابت مطلب مفید تون.
    برخی ارکستریشن ها دیگه و ساده تری هم هستند که برای اسکیل کوچک تر قابل استفاده باشد؟

    پاسخ
    • عارف اختری گفت:
      6 شهریور 1399 در 15:46

      سلام. سلامت باشین.
      بهترین گزینه برای اسکیل کوچیک swarm هست. پیکربندی ساده ای هم داره.
      راجب پیاده سازی swarm هم ان شالله یک مقاله خواهیم گذاشت. ممنون از همراهی شما

      پاسخ
  • misagh گفت:
    28 بهمن 1399 در 16:10

    چطوری میشه از سرور های ایران از سرویس kubernate استفاده کرد؟
    چون من تست کردم اگه نود رو سرور ایران باشه pod ها نصب نمیشن

    پاسخ
    • عارف اختری گفت:
      29 بهمن 1399 در 11:36

      منظور شما رو دقیق متوجه نشدم.
      شما میگین که نود کوبرنتیز نمیشه توی ایران پیاده سازی کرد. اگر منظورتون همینه که اشباهه . قشنگ پیاده سازی میشه و پاد ها هم بخوبی بالا میان.
      اگر کوبر شما از داکر به عنوان container runtime استفده کنه ممکنه مشکل تحریم بخوره واسه دسترسی به داکر هاب که با ی پروکسی ساده یا رجیستری شخصی همچی درست میشه.
      اینیکه اصلا پیاده سازی نشه که نه به هیچ وجه درست نیس . خیلی از شرکت ها دارن از این کوبر استفاده میکنن

      پاسخ

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
پشتیبانی
دسته‌ها
  • مقالات
برچسب‌ها
(NFS (Network File System Adware چیست؟ Anti-Malware CentOS cluster ProxySQL CONTEXT در SELinux چیست CONTEXT چیست dark web dd debian deep web Destributed Hash Table Discretionary Access Control Dispersed Distributed Distributed Dispersed docker docker orchestration elk Eschalot facebookcorewwwi.onion FBI fedora freebsd glusterfs glusterfs-client glusterfs-server Gluster Storge Gluster Storge چیست Gluster Storge چیست؟ gluster volume type gnome gnome desktop guake kali Linux zabbix آغاز کار با لینوکس آموزش لینوکس آنتی ویروس بات نت دبیان لینوکس لینوکس چیست نرم افزار
  • محبوب
  • جدید
  • دیدگاه ها
پشتیبانی

ما در آکادمی لینوکس لرن سعی بر این داریم که بهترین آموزش ها رو با بالاترین کیفیت در اختیار شما بزاریم.
لینوکس لرن تجربه ی متفاوت آموزش است
  • خراسان جنوبی - بیرجند
  • 09159612321
  • [email protected]
دسترسی سریع
  • دوره ها
  • مقالات
  • کتابخانه
  • پذیرش پروژه
  • ابزارهای لینوکس
  • مدرسان
  • حریم خصوصی
  • تماس با ما
  • درباره ما
خبرنامه

چیزی را از دست ندهید، ثبت نام کنید و در مورد دوره های ما مطلع باشید.

نمادها
نوشته شده با ❤️
اشتراک گذاری در شبکه های اجتماعی
ارسال به ایمیل
https://linuxlearn.org/?p=21405
مرورگر شما از HTML5 پشتیبانی نمی کند.

سوالی دارید؟ از ما بپرسید، کارشناسان ما در اسرع وقت با شما تماس می گیرند.

آکادمی لینوکس لرن

  • 09159612321
  • شنبه تا چهارشنبه از ساعت 8 تا 17
  • [email protected]