سازمانها و شرکتها به شکل مستمر برنامههای کاربردی خود را ارتقا میدهند تا بتوانند در بازار به شدت رقابتی حضور پررنگی داشته باشند. بر این اساس، بهکارگیری کانتینرها و ریزسرویسها به عنوان الگوی برتر توسعه نرمافزار برای بهروزرسانی برنامهها و خدمات اجتنابناپذیر است.
به گزارش شبکه مگ
معماری و مولفههای زیرساخت کوبرنتیس
وقتی کاربر برای اولین مرتبه کوبرنتیس را راهاندازی میکند، یک خوشه کوبرنتیس دریافت میکند که شامل مولفههای زیادی است. در سطح پایه، کوبرنتیس اکوسیستمی برای اجرا و تعامل برنامههای کانتینرشده در محیطهای خوشهبندیشده ارائه میکند، زیرساختی آماده که برای چرخه عمر برنامههای کانتینر شده است و خدماتی نظیر گسترشپذیری و دسترسی بالا را مدیریت کند. اکوسیستم کوبرنتیس به هر ماشین درون خوشه یک نقش میدهد. همچنین یک سرور یا مجموعه کوچکی از سرورها نقش سرور اصلی را بازی میکنند. این سرور بهعنوان یک دروازه و مغز خوشه شناخته میشود و وظایف مختلفی دارد که از آن جمله میتوان به بررسی کارکرد درست سایر سرورها، ارائه واسطهای برنامهنویسی کاربردی به توسعهدهندگان و کلاینتها، تقسیم وظایف به بهترین حالت و هماهنگسازی ارتباط بین مولفهها اشاره کرد. کوبرنتیس مولفههای زیادی دارد که هر یک کاربردهای خاصی دارند، اما در این مقاله تمرکز ما روی بررسی مولفههای مربوط به پیادهسازیVMware vSphere در تعامل با زیرساخت کوبرنتیس است.
گرهها (Nodes)
دو نوع گره اصلی در کوبرنتیس بهنامهای Master و Worker وجود دارد. گره اصلی مجموعهای از گرههای کارگر در زمان اجرا را مدیریت میکند. گره اصلی خود از مولفههای زیر ساخته شده است:
- Kube-ApiServer: تمامی ارتباطات خارجی با خوشه از طریق مولفهApiServer انجام میشود.
- Kube-Controller-Manager: مجموعهای از کنترلکنندهها را برای خوشه در حال اجرا استفاده میکند. گره فوق وظیفه نظارت بر کل خوشه را دارد.
- Kube-Scheduler: بر اساس رخدادهایی که درEtcd اتفاق میافتد، فعالیت گرههای کارگر را برنامهریزی میکند. علاوه بر این، گرههای بهینه را برای پادهایتازه ساخته شده یا برنامهریزی نشده انتخاب میکند.
Etcd: یک بانکاطلاعاتی خوشهمانند است که برای ذخیرهسازی و تکرار وضعیت خوشه کوبرنتیس استفاده میشود.
Pod
پاد مجموعهای از یک یا چند کانتینر است. پادها توسط kubelet در حال اجرا روی هر گره مدیریت میشوند. Kubelet تمامی Podspecهای تخصیص یافتهای که دریافت میکند را زیر نظر میگیرد و در طول چرخه عمر خود با ارزیابی پاد واقعی با وضعیت موردنظر که در Podspec تعریف شده، اطمینان حاصل میکند که تمامی مولفهها به درستی کار میکنند.
Kubelet
Kubelet مولفه یا به عبارت دقیقتر عاملی (Agent) در هر گره کوبرنتیس است که تضمین میکند گرهها در یک پاد به درستی اجرا میشوند. Kubelet بر تمام Podspecهای تخصیص یافته به خود نظارت میکند و در طول چرخه عمر خود با ارزیابی وضعیت پاد واقعی با وضعیت تعریف شده در Podspec وظایف محوله را انجام میدهد. شکل 1 نحوه اتصال این مولفهها و عملکرد آنها را نشان میدهد.
VMware vSphere همراه با کوبرنتیس چیست؟
VMware vSphere همراه با زیرساخت کوبرنتیس بازتعریف جدیدی از معماریvSphere است که از کوبرنتیس به عنوان صفحه کنترل (Control Plane) استفاده میکند. راهحل فوق برای اجرای بارهای کاری قدیمی و برنامههای بومی جدید ایدهآل است و به توسعهدهندگان اجازه میدهد از واسطهای برنامهنویسی نامآشنای کوبرنتیس برای مدیریت منابع ابری همچون ماشینهای مجازی، دیسکها و شبکهها استفاده کنند. علاوه بر این، به مدیران شبکه اجازه میدهد به جای تعامل با ماشینهای مجازی بهطور مستقیم به مدیریت تمام برنامههای کاربردی بپردازند. متاسفانه به رغم مزایای زیادی که پیادهسازی زیرساخت کوبرنتیس دارد، شرکتها و متخصصان مجازیسازی تمایلی ندارند از روش فوق استفاده کنند. نظرسنجی سال 2019 بنیاد CNCF نشان میدهد سه مانع اصلی در پذیرش کوبرنتیس، تغییرات فرهنگی (43 درصد)، امنیت (40 درصد) و پیچیدگی آن (38 درصد) است. VMware vSphere همراه با کوبرنتیس با هدف غلبه بر این مشکلات از سوی شرکت VMware ارائه شده است.
VMware vSphere همراه با زیرساخت کوبرنتیس بهترین راهحل ممکن را ارائه میکند و به تمام نیازهای توسعهدهندگان پاسخ میدهد. مدیران زیرساختهای مجازی(VI) سرنام Virtual infrastructure میتوانند با استفاده از ابزارهای رایج مدیریت vSphere، خوشههایی را بر مبنای تقاضا برای پشتیبانی از توسعهدهندگان ارائه کنند. ابزارهایی نظیر vSphere Client ،vSphere Power CLI و APIs برای مدیریت ماشینهای مجازی از جمله راهحلهای کاربردی در دسترس هستند.
VMware vSphere همراه با کوبرنتیس شبیه یک خوشه استاندارد کوبرنتیس است و عملکردی شبیه به آن دارد. بهطوری که قادر است از واسطههای برنامهنویسی استاندارد کوبرنتیس برای تعریف منابع لازم استفاده کند. در شکل 2 مشاهده میکنید که VMware vSphere همراه با کوبرنتیس بهترین قابلیتها را برای مدیران زیرساختهای مجازی و مهندسان دوآپس ارائه میکند. VMware vSphere همراه با کوبرنتیس دو نوع خوشه دارد که به شکل بومی قابل اجرا هستند. خوشه اول vSphere Supervisor یک صفحه کنترل کوبرنتیس برای vSphere است.
خوشه دوم vSphere VMware Tanzu Kubernetes Grid که خوشه مهمان (Guest Cluster) است یک خوشه استاندارد پایه است که بهطور کامل با کوبرنتیس سازکار است.
خوشه vSphere Supervisor
vSphere Supervisor نوع خاصی از خوشه کوبرنتیس است که اجازه میدهد از گرههای لینوکسی مبتنی بر VMware ESXi Host به عنوان گره کارگر استفاده کرد. به عبارت دیگر از یک Kubelet سفارشی بهنام Spherelet که بهطور مستقیم با ESXi Hypervisor ادغام میشود استفاده میکند. Spherelet مسئولیت تمامی موارد مربوط به چرخه عمر، تنظیمات و تعامل میان پادها را عهدهدار است و تضمین میدهد هرگونه وابستگی به پاد نظیر دسترسی به ایمیجها، شبکه، حجم و پیکربندی به شکل درستی انجام میشود. علاوه بر این، Spherelet به شکل دورهای وضعیت اجرای درست پاد در دامنه خودش را گزارش میدهد تا سایر مولفههای کوبرنتیس و K8s API master بتوانند در صورت لزوم اقدام به تصحیح موارد اشتباه کنند. شکل 3 نشان میدهد که چگونه VMware NSX درون vSphere همراه با کوبرنتیس پیادهسازی شده است.
مولفههای NSX نظیر NSX Container Plug-in ،vSphere Distributed Switch و NSX Agent به شکل دقیقی در معماری جدید پیادهسازی شدهاند.
خوشه Tanzu Kubernetes Grid (خوشه میهمان)
خوشه vSphere Supervisor برای vSphere شامل زیرساخت کوبرتنیس است که به عنوان صفحه کنترل عمل میکند و در حالی که از کوبرنتیس استفاده میکند، اما عملکردی یکسان با کوبرنتیس ندارد. خوشه Tanzu Kubernetes Grid با این هدف طراحی شده که توسعهدهندگان بتوانند به خوشههای کاملا سازگار با زیرساخت کوبرتینس دسترسی پیدا کنند و شبیه به یک سرویس عادی از دستورات استاندارد منطبق با کوبرنتیس استفاده کنند. شکل 4 مولفههای یک خوشه Tanzu Kubernetes Grid را نشان میدهد.
فضاهای نام در معماری vSphere همراه با کوبرنتیس
فضای نام برای مدیریت محیطهایی که شامل کاربران زیادی است که در قالب تیمها یا پروژههای مختلف با یکدیگر در تعامل هستند استفاده میشود. فضاهای نام راهحلی برای تقسیم منابع موجود در خوشهها و متمایز کردن مجوزهای کاربران ارائه میکنند. یک سازمان میتواند چهار فضای نام برای محیطهای مختلفی همچون front-end ،DB and analytics و موارد این چنینی تعریف کند.
شبکهسازی منطبق با VMware NSX
شبکه نرمافزار محور (SDN) یک زیرساخت مرکزی و ضروری برای مفاهیم مجازیسازی نظیر هایپرویزورها، ماشینهای مجازی، کانتینترها، خوشههای مهمان و موارد این چنینی ارائه میکند. شبکه نرمافزار محور اجازه میدهد تا خطمشیهای امنیتی به شکل دقیقی پیادهسازی شوند، نظارت به شکل دقیقی انجام شود، ایزوله کردن شبکهها مطابق با نیازهای سازمان انجام شود و گرههای شبکه بر مبنای یک اتصال یکپارچه و امنیت از پیش ساخته شده با یکدیگر در ارتباط باشند. VMware NSX هر آنچه که متخصصان شبکه و کارشناسان مجازیسازی برای شبکهسازی و برقراری امنیت ارتباطات بر مبنای راهحل Sphere with Kubernetes و VMware Cloud Foundation
به آن نیاز دارند را ارائه میکند. NSX انعطافپذیری زیادی در اختیار سازمانها قرار میدهد تا ریزسرویسها و بارهای کاری در حال اجرا روی کانتینرها و ماشینهای مجازی را به شکل دقیقی مدیریت و اطمینان حاصل کرد بارهای کاری و ریزسرویسها به شکل محافظت شدهای با یکدیگر در ارتباط هستند. سازمانها میتوانند با استفاده از NSX خطمشیهای پایدار خود را توسعه داده و دغدغه خاصی از بابت پیچیدگی محیطهای توسعه کاربردی نداشته باشند، اما در عین حال از مزایای بالقوه برنامههای کاربردی مدرن استفاده کنند.
شکل 5 مجموعه راهحلهای شبکهسازی و امنیت NSX ویژه ماشینهای مجازی، کانتینرها و Bare Metal را نشان میدهد.
دلیل استفاده از NSX برای ماشینهای مجازی، کانتینترها و Bare Metal چیست؟
شبکهسازی مبتنی بر vSphere with Kubernetes از جمله راهحلهای کاملا سازگار با شبکه فعلی سازمانی است. به لطف پادها، ماشینهای مجازی و کانتینترها، NSX تنهار راهحلی است که اجازه میدهد فرآیند شبکهسازی ماشینهای مجازی، کانتینترها و bare metal را با قابلیت دید کامل پیادهسازی کنید. همانگونه که در شکل 6 مشاهده میکنید، برعکس راهحلهای DIY که نیاز به چند فروشنده را غیرقابل اجتناب میکنند، شبکهسازی مبتنی NSX اجازه میدهد تا شبکه کامل از L2 تا L7 را برای ماشینهای مجازی، کانتینرها و Bare Metal فراهم کنید. NSX به کارشناسان شبکه دید دقیقی در ارتباط با شبکهای که قرار است بر مبنای راهحل vSphere مبتنی بر کوبرنتیس پیادهسازی شود ارائه میدهد.(شکل 7)
NSX در ساختار vSphere همراه با کوبرنتیس به گونهای پیادهسازی شده تا قابلیت دید کامل بر شبکه و امنیت در اختیار کارشناسان شبکه قرار بگیرد و اتصال میان vSphere Supervisor Cluster و شبکه فیزیکی بدون مشکل خاصی برقرار شود. NSX برای هدایت دقیق ترافیک شبکه از غرب به شرق در vSphere Supervisor Cluster از راهگزینی توزیعی، مسیریابی و تعدیل بار توزیعی برای پادهای مختلف در یک فضای نام مشخص برای ارتباط استفاده میکند. NAS برای انتقال ترافیک از شمال به جنوب راهحلهای مختلفی نظیر NAT، پیادهسازی دیوارآتش در سطح کانتینر، تعدیلکنندگان بار Ingress و Type برای برنامههای کاربردی عمومی مورد استفاده در خارج از اکوسیستم فوق ارائه میکند.
تمامی قابلیتهای شبکه و امنیت را میتوان توسط Native Kubernetes Network Policy کنترل کرد. تیمهایی که بر مبنای خطمشی دوآپس که از دستورات کوبرنتیس بهره میبرد استفاده میکنند این توانایی را به دست میآورند تا شبکههای خودشان را مدیریت کنند. در خوشه مهمان، اتصال به شبکه فیزیکی و انتشار برنامههای کاربردی با استفاده از NSX Load Balancer فراهم میشود. راهحل vSphere مبتنی بر کوبرنتیس برای ارتباطات پاد به پاد، گزینه CNIs سرنام Certified Container Networking Interfaces را در اختیار توسعهدهندگان قرار میدهد که شامل افزونههای شبکه ثالث، Project Antrea و NSX container Plug-in است.
شکل 8 نشان میدهد که NSX چگونه سرویسهای کارآمدی برای نظارت بر شبکه و امنیت بر مبنای معماری vSphere with Kubernetes ارائه میکند. NSX بر خلاف دیگر راهحلهای کانتینری شبکه، خطمشیهای مشخصی همچون SNAT برای هر فضای نام ارائه میکند.
روش کار NSX
NSX یک بخش منطقی برای هر فضای نام از طریق Tier 1 Router ایجاد میکند. خطمشیهای دیوار آتش را میتوان در سطح کانتینر استفاده کرد. خطمشیهای مورد استفاده توسط دیوارهای آتش سنتی و تعدیلکنندگان بار قدیمی به کارشناسان شبکه اجازه نمیدادند تا قابلیت دید دقیق در سطح کانتینر به دست آورند. NSX قابلیت دید دقیق در ارتباط با کانتینرها ارائه میکند و میتواند خطمشیهای دیوارآتش را به شکل مستقیم بر کانتینرها اعمال کند. در حالی که تعدیلکنندههای دیگر مختص یک خوشه خاص هستند، NSX سرویسهای تعدیل بار توزیعی لایه 4 را بهطور کامل برای کوبرنتیس ارائه میکنند. NSX میتواند خطمشیهای کارآمدی همچون SNAT را برای هر فضای نام ارائه کند. در این حالت NSX میتواند دسترسی به پایگاههای دادهای که مختص یک موقعیت جغرافیایی خاص هستند و با فضاهای نام ایزوله شدهاند را محدود کند و از طریق برنامههای ثالث مانع دسترسی شود.
توسعه در نسخه NSX-T 3.0
تعدیلکننده بار توزیعی NSX در نگارش VMware NSX-T 3.0 توسعه یافته و برای سرویسهایی که در یک فضای نام قرار دارند امکان ارتباط با یکدیگر را فراهم میکند.
مزایای راهحل فوق برای یک مهندس فولاستک چیست؟
سازمانها پیوسته در تلاش هستند تا ارائه خدمات را سرعت ببخشند، عملکردها را ساده کنند و به بازارهای جدیدی وارد شوند. پیادهسازی NSX و بهکارگیری راهحلهایی نظیر vSphere همراه با کوبرنتیس به سازمانها کمک میکند تا شبکه و امنیت را بر مبنای مدلهای هوشمند و برنامههای راهبردی جدید برای بارهای کاری قدیمی و مدرن پیادهسازی کنند.
در معماری فوق، توسعهدهندگان به ابزارهای موردنیاز در کمترین زمان دسترسی دارند و میتوانند برنامههای کاربردی را در زیرساختهای دلخواه و بر مبنای معماری چند ابری پیادهسازی و اجرا کنند. زمانی که شبکه و امنیت در قالب نرمافزار (نرمافزارمحور) تعریف و استفاده شود، مدیران و توسعهدهندگان میتوانند همگام با یکدیگر کار کنند و به سوی اهداف تجاری مشترک بروند