
VMware در کنفرانس VMWorld 2019 یک فناوری به نام Project Pacific ارائه کرد.این فناوری در واقع نسخه ای از vSphere است که بازطراحی شده است و هدف آن ادغام با Kubernetes Control Plane (به اختصار K8s) برای مدیریت یکپارچه ماشین های مجازی و کانتینرها در پلتفرم vSphere. توسعه دهندگان نرم افزار می توانند به راحتی ماشین های مجازی، دیسک ها و NIC های متصل به آنها را با استفاده از دستورات Kubernetes مدیریت کنند. اگر پلتفرم مجازی آنها VMware vSphere باشد، این میتواند برای تیمهایی از محیطهای ناهمگن که شامل ماشینهای مجازی و کانتینرها هستند، مفید باشد.
فناوری Project Pacific اجزای پلتفرم Kubernetes را در قالب ماشینهای مجازی vSphere پیادهسازی میکند و مدیر پلتفرم مجازیسازی شده میتواند از ویژگیهای پلتفرم vSphere مانند تخصیص منابع، رمزگذاری، دسترسی بالا (HA)، زمانبندی منابع توزیعشده (DRS) استفاده کند. ) ) و تهیه از یک عکس فوری برای بارهای کاری Kubernetes استفاده کنید.
در این فناوری، دو جزء اصلی پلتفرم Kubernetes، Agent و Container Runtime، به عنوان اجزای سفارشی به vSphere اضافه می شوند. نوع خاصی از خوشه Kubernetes به نام Supervisor در محیط Project Pacific اجرا می شود. به عبارت دیگر، Kubernetes از ESXi به جای سیستم عامل لینوکس برای استقرار اجزای خود استفاده می کند و یک vSphere Agent ویژه به نام Spherelet را روی هاست های ESXi نصب می کند. Spherelet بر اساس پروژه ای به نام Virtual Kubelet توسعه یافته است که کاربرد اصلی آن ایجاد ارتباط بین Kubernetes و سایر سرورها برای ایجاد بستری برای اجرای Pods است. لازم به ذکر است که Virtual Kubelet یک ابزار متن باز است که توسط مایکروسافت توسعه یافته است.
کانتینرها در ESXi توسط یک Container Runtime به نام CRX (Container Runtime Executive) اجرا می شوند. CRX مانند یک ماشین مجازی است که درون آن یک هسته لینوکس به همراه حداقل زمان اجرای کانتینر وجود دارد. اما از آنجایی که این هسته لینوکس با Hypervisor یکپارچه شده است، می توانیم از آن برای بهینه سازی عملیات مربوط به ماشین های مجازی در کانتینرها استفاده کنیم. CRX از تکنیکی به نام Direct Boot برای آماده سازی اولیه ماشین مجازی استفاده می کند و با این روش نیازی به مراحل معمول بوت هسته نیست. در ادامه به هر یک از این مفاهیم پرداخته خواهد شد.
این فناوری علاوه بر تغییراتی که در ESXi ایجاد می کند، مجموعه ای از اجزا را نیز به vCenter اضافه می کند. این اجزا عبارتند از:
- سرویس پلت فرم حجم کاری: این سرویس ایجاد فضای نام خوشه ای را امکان پذیر می کند و تعامل بین API های REST و فضاهای نام را برقرار می کند.
- تعهدات مشتری K8s: ارتباط بین سرویس Workload Platform و سرور K8s API برقرار می کند. مدیر پلت فرم مجازی می تواند از رابط کاربری HTML5 نرم افزار vCenter برای انجام تنظیمات مربوط به Kubernetes استفاده کند و تنظیمات به تنظیمات قابل استفاده در فضای نام Kubernetes ترجمه می شوند.
- سرویس تبادل توکن: این سرویس توکنهای vSphere SSO SAML را دریافت میکند و آنها را برای استفاده توسط Kubernetes به فرمت JSON Web Tokens (JWT) تبدیل میکند.
- بسته تصاویر: یک مخزن برای ذخیره تصاویر Control Plane و Spherelet Bundle ایجاد می کند.
معماری پروژه اقیانوس آرام
خوشه نظارتی
پس از فعال کردن Project Pacific در vSphere Cluster، آن خوشه به Supervisor Cluster تبدیل میشود و قابلیتهای Kubernetes روی آن فعال میشود. هنگامی که قابلیت های Kubernetes در خوشه فعال می شود، مراحل زیر توسط vCenter انجام می شود:
تعداد 3 ماشین مجازی Kubernetes Control Plane با استفاده از تصویر Supervisor Control Plane در خوشه ایجاد می شود. اطلاعات پایگاه داده پلتفرم Kubernetes در این ماشین های مجازی با فرمت Key-Value (مشابه K8 و غیره) ذخیره و نگهداری می شود. قانون Anti-Affinity برای این ماشین های مجازی اعمال می شود و روی 3 هاست مختلف اعمال می شود تا در صورت بروز مشکل برای هاست ها، اختلالی در Control Plane ایجاد نشود. در ماشین های مجازی Control Plane، علاوه بر سرویس سرور Kubernetes API در حال اجرا، چندین پلاگین مرتبط با vSphere نیز وجود دارد. این مکمل ها عبارتند از:
NCP – پلاگین کانتینر NSX-T
این افزونه به عنوان یک ظرف عمل می کند و ارتباط بین NSX Manager و هواپیمای کنترل Kubernetes را برقرار می کند. مدیریت اجزای شبکه مانند پورت های منطقی، سوئیچ، روتر و گروه های امنیتی با فراخوانی NSX API بر عهده این افزونه است.
فضای ذخیره سازی خصوصی ابری (CNS
به مدیر پلتفرم مجازی اجازه میدهد از ذخیرهگاه دادههای vSphere (از هر نوع VMFS، NFS یا vSAN) بهعنوان یک حجم دائمی برای کانتینرهای ایجاد شده توسط Kubernetes استفاده کند.
برنامه ریزی
هنگامی که یک مدیر قصد دارد یک Pod جدید ایجاد کند، این سرویس تعیین می کند که کدام Node برای قرار دادن آن Pod در خوشه Supervisor با استفاده از ویژگی VMware DRS مناسب است.
احراز هویت
کاربران می توانند با استفاده از حساب های کاربری تعریف شده در vSphere SSO به خوشه مهمان Kubernetes متصل شوند.
بسته نرم افزاری Spherelet بر روی همه هاست ها در خوشه نصب می شود و این باعث می شود هاست های ESXi بتوانند به عنوان گره های کارگری Kubernetes عمل کنند. در vCenter، سرویس Workload Platform این عامل را روی هر میزبان در خوشه نصب می کند. Spherelet همچنین فضاهای نام را با استفاده از REST API مدیریت می کند.
نصب Container Runtime Executive (CRX) روی هاست های ESXi. CRX از نظر سرویس Hostd و سرور vCenter شبیه یک ماشین مجازی به نظر می رسد، اما CRX اجازه می دهد تا کانتینرها را مستقیماً روی VMKernel اجرا کنید. CRX یک ماشین مجازی است که شامل یک هسته لینوکس (سیستم عامل PhotonOS) و حداقل زمان اجرا کانتینر است. مانند سایر ماشین های مجازی، این ماشین مجازی نیز دارای یک فایل VMX (ماشین مجازی قابل اجرا) است، اما برای شروع خیلی سریع ماشین مجازی (کمتر از یک ثانیه)، بسیاری از پارامترهای داخل آن حذف شده است. علاوه بر فایل VMX بهینه شده، VMware فناوری Direct Boot را نیز طراحی کرده است که از طریق آن بسیاری از عملیات زمان بر از فرآیند بوت سیستم عامل حذف شده است، مانند شناسایی سخت افزار یا پیکربندی ساختار حافظه، زیرا ساختار حافظه CRX از قبل ایجاد شده و به موقع بارگذاری نباید آن را تعریف کند. پادهایی که از طریق CRX در پلتفرم vSphere ایجاد می شوند، Native Pods یا vSphere Pods نامیده می شوند.
یک فضای نام
مفهوم فضای نام تعریف شده برای Supervisor Cluster در پلتفرم vSphere با مفهوم مشابه در Kubernetes متفاوت است. فضای نام Supervisor Cluster را می توان به عنوان یک منبع برای تخصیص منابع سخت افزاری مانند CPU، حافظه در نظر گرفت. مدیر پلتفرم vSphere همچنین می تواند دسترسی کاربر به فضای نام را مشخص کند. علاوه بر این، مدیر میتواند تعیین کند که کدام یک از خطمشیهای ذخیرهسازی برای فضای نام اعمال میشود و بر اساس آن، تعیین میکند که فضای نام به کدام یک از دادهها دسترسی داشته باشد.
خوشه مهمان
Kubelet مورد استفاده در Supervisor Cluster با Kubelet مورد نیاز Kubernetes متفاوت است. بنابراین، هیچ سازگاری با ساختار خوشه Kubernetes وجود ندارد و ممکن است برای استقرار برخی کانتینرها با مشکل مواجه شویم. VMware برای حل این مشکل Guest Cluster را طراحی و توسعه داد. اصولاً یک خوشه مهمان دقیقاً یک خوشه Kubernetes است که در یک خوشه Supervisor و به عنوان ماشین های مجازی اجرا می شود. خوشه مهمان کاملاً با پلتفرم Kubernetes بالادست خود سازگار است، با این تفاوت که به جای اینکه سرورهای Master و Node بر روی هاست ها مستقر شوند، روی ماشین ها مستقر می شوند.
نکته دیگری که در این زمینه باید به آن اشاره کرد این است که رابطه بین Supervisor Cluster و vSphere Cluster یک رابطه یک به یک است. به عبارت دیگر، تنها یک Supervisor Cluster در vSphere Cluster می تواند وجود داشته باشد. اما چنین رابطه ای بین یک خوشه مهمان و یک خوشه سرپرست وجود ندارد و خوشه های مهمان متعدد با فضای نام های مختلف می توانند در یک خوشه سرپرست وجود داشته باشند.
VMware vSphere با Tanzu
در اوایل سال 2020 و شش ماه پس از معرفی Project Pacific، VMware محصول جدیدی به نام VMware Cloud Foundation (VCF) با Tanzu معرفی کرد که از فناوری Project Pacific استفاده می کرد. پس از معرفی این محصول، VMware متوجه شد که علاوه بر کاربرانی که از VCF با Tanzu برای پلتفرم ابری و توسعه نرم افزار خود استفاده می کنند، کاربران زیادی نیز هستند که از Kubernetes در پلتفرم فعلی vSphere استفاده می کنند و می خواهند از شبکه Current vSphere و زیرساخت های ذخیره سازی استفاده کنند. برای استقرار Kubernetes، بنابراین Vware تصمیم گرفت این ویژگی را به پلتفرم vSphere در vSphere 7 Update 1 اضافه کند.
مقالات زیر به معرفی vSphere با فناوری Tanzu می پردازند.