در ادامه پست های مربوط به VMware vSphere7 در این مقاله قصد داریم در مورد یکی از تغییرات بسیار عمده در معماری این محصول صحبت کنیم. برای دستیابی به آخرین مطالب در مورد vSphere7 می توانید عبارت vSphere7 را در سایت جستجو کنید.
مطلبی که در این پست در مورد آن صحبت خواهیم کرد به عقیده شرکت VMware بزرگترین تغییری است که از آغاز در این محصول رخ داده است و به نوعی در آینده نزدیک در مسائل مربوط به مارکتینگ و فروش نیز تا حد بسیار زیادی تاثیر گذار خواهد بود.
اما این تغییر چیست؟ همانطور که احتمالا افراد علاقه مند به محصولات شرکت VMware ، در جریان هستند این شرکت در آخرین نسخه خود، محصول vSphere را با محصول اوپن سورس Kubernetes، ادغام نموده است. برای اطلاع از اینکه اصولا چرا این کار صورت گرفته است و همچنین اطلاع از مزایای آن می توانید به این پست و این پست مراجعه کنید.
نکته:
محصول vSphere with Kubernetes تنها از طریق پکیج 4.0 vCloud Foundation یا VCF 4.0 در اختیار مشتریان قرارخواهد گرفت که طبق اعلام این شرکت از تاریخ 10 آوریل منتشر خواهد گردید.
برای شفاف سازی بیشتر این مطلب، ابتدا در مورد اینکه Kubernetes چیست به صورت خلاصه صحبت خواهیم کرد.
Kubernetes:
کوبرنتیز محصولی است که برای ایجاد orchestration در زیرساخت های دراندازه بزرگ یا enterprise ایجاد container، مورد استفاده قرار میگیرد. به عنوان مثال محصول داکر(Docker) یکی از محصولاتی است که می توان به وسیله آن کانتینرها را ایجاد و مدیریت کرد، اما زمانی که تعداد کانتینر ها زیاد می شود و یا به عبارتی محیط ما به سمت یزرگتر شدن میرود، نیاز به یک مدیریت کننده خارجی احساس می شود، که در اینجا نقش Kubernetes به عنوان یک orchestrator، معرفی می شود.
نکته:
محصول داکر برای ایجاد Orchestration، از محصولی با نام Swarm ، که محصول خود این شرکت می باشد، نیز می تواند استفاده کند.
کوبرنتیز با ایجاد یک لایه کلاستر بالاتر از محصولات زیرین خود (به عنوان مثال داکر) می تواند به مدیریت کانتینرها بپردازد. هر یک از هاست هایی که در لایه زیرین قرار دارند به عنوان یک Worker Node شناخته خواهند شد و Kubernetes برای مدیریت کانتینرها برای روی آنها از مفاهیمی مانند POD استفاده میکند که هر POD میتواند شامل یک یا چند کانتینر باشد. کوبرنتیز می تواند با ایجاد نتورک بین POD ها، بستر مستقل لایه 2 و لایه 3 را بین کانتینرهای روی یک هاست و حتی روی هاست های متفاوت ایجاد کند.
نکته:
علاوه بر Worker Nodeها ، کلاستر کوبرنتیز نیاز به سرورهایی با عنوان Master Node دارد که در حقیقت به عنوان Control plane برای نودهای ورکر می باشند و ادمین های دواپس برای ارتباط با ورکرها به صورت مستقیم با Master ها صحبت میکنند.
در محصول جدید vSphere with Kubernetes، هر یک از هاست های ESXi، به عنوان Worker Node برای کلاستر کوبرنتیز خواهند بود و از این پس می توان بر روی آنها به صورت مستقیم و غیر مستقیم، کانتینترها را نیز ایجاد و مدیریت کرد. برای توضیح استفاده از کلمه غیر مستقیم به ادامه مطلب توجه کنید.
از نظر یکی از ایجاد کنندگان این تکنولوژی، کوبرنتیز به عنوان ““Platform Platform معرفی شده است. یعنی اینکه کوبرنتیز پلتفرمی است که می تواند پلتفرم های دیگر را درخود جای دهد، حتی آن پلتفرم می تواند خود کوبرنتیز نیز باشد. با تکیه بر این جمله به یک نکته بسیار مهم میرسیم:
با ادغام Kubernetes در درداخل زیرساخت مجازی، علاوه بر ایجاد کانتینر ها در داخل خود ESXi ها از طریق سرویس vSphere POD Service، از این پس می توانیم به ازای درخواست هایی که از سمت دولوپرها و از طریق یک فایل YAML، ایجاد می شود برای هر یک از آنها کلاستر کوبرنتیز مستقلی متشکل از Master Node ها و Worker Node ها به صورت Nested، ایجاد کنیم. به این کلاسترها در زمان معرفی اولیه محصول، Guest Cluster، گفته می شد ولی هم اکنون نام آن تغییر یافته و به TKG یا Tanzu kubernetes Grid، تغییر نام پیدا کرده است.
کلاستر TKG ایجاد شده می تواند، سطح دیدی به وسعت هرآنچه که در داخل پلتفرم های زیرین صورت میگیرد را از طریق وی سنتر، در اختیار ادمین مجازی سازی قرار دهد. به عنوان مثال ما میتوانیم ببینیم که چه تعداد کانتینر در هر کلاستر کوبرنتیز زیرین یا TKG، ایجاد شده است، این کانتینترها چه نوع ارتباط نتورکی با هم دارند و حتی برای دسترسی به آنها آیا از لودبالانسر نرم افزاری در داخل کلاستر زیرین استفاده شده است یا خیر؟
نکته:
کلاستری که در لایه بالاتر و با ادغام کوبرنتیز در ESXi، ایجاد شده است را Supervisor Cluster می گوییم، این کلاستر می تواند با افزایش هاست ها بزرگتر شود.
به تصویر زیر نگاه کنید، این تصویر میتواند شمای کلی مفاهیم بیان شده را نشان دهد
در این تصویر اجزای مختلف معماری ایجاد پلتفرم نمایش داده شده است که اجزای آن به ترتیب عبارتند از:
SDDC:
این بخش Software defined Datacenter یا همان زیرساخت مبتنی بر نرم افزار شرکت VMware می باشد.
vSphere POD service:
این بخش در واقع همان سرویس کوبرنتیز در لایه vSphere می باشد که می تواند کلاستر Kubernetes را در لایه هاست های ESXi ایجاد کند و از هاست های ESXi به عنوان Worker Node استفاده کند.
Namespace:
در این تصویر دو نوع Namespace دیده می شود که هر دو به اختصاص منابع اشاره می کنند. Namespace ی که در لایه vSphere ایجاد شده است ، معنای متناظر با Resource pool را دارد و در آن منابعی از قبیل منابع پردازشی و ذخیره سازی برای ایجاد کلاسترهای زیرین یا TKG ها برای استفاده درخواست هایی که از سمت دولوپرها ایجاد می شود، را مشخص میکند. د رحقیقت، ادمین مجازی سازی با ایجاد Namespace، میزان استفاده دولوپرها از منابع را مشخص میکند.
از طرفی در لایه بالاتر نیز در داخل TKG ها، Namespaceهایی وجود دارند که توسط ادمین های آنها برای ایجاد کانتینرها در داخل TKG ها ایجاد می شوند.
POD:
POD ها کوچکترین اجزا در کوبرنتیز هستند که می توانند شامل یک یا چند کانتینر باشند.
TKG:
همانطورکه در بالا ذکر شد، به کلاستر های زیرین، یا کلاسترهایی که در پی ایجاد درخواست توسط یک فایل YAML، از طرف دولوپرها ایجاد می شود، Tanzu Kubernetes Grid یا TKG گفته می شود.
نکته:
در تصویر فوق به این نکته دقت شود که POD ها هم در سطح Supervisor cluster می توانند ایجاد شوند و هم در سطح TKG ها
نتیجه گیری:
در انتهای این مطلب باید اشاره کنیم که در حقیقت از این پس ادمین های مجازی با انواع جدیدی از Workload ها آشنا خواهند شد که می بایست با کلیات معماری ارایه ی آنها آشنا باشند. از این پس ساختار مجازی سازی علاوه بر Virtual Machine ها، قابلیت ایجاد و مدیریت container ها را نیز خواهد داشت و ادمین ها می توانند با استفاده از همان اینترفیس های قبلی مانند وی سنتر، پذیرای نوع جدیدی از workload ها که برای ارایه اپلیکیشن های مدرن مورد استفاده قرار خواهد گرفت، باشند.
منابع:
https://kubernetes.io/docs/concepts/