معماری k8s

  • مدرس: علی بیگدلی
  • تاریخ انتشار: 1402/06/17
  • تعداد بازدید: 123

اکنون در این بخش Kubernetes، برخی از اصول مهم Kubernetes را یاد خواهیم گرفت:

Cluster یا خوشه:
این مجموعه ای از هاست (سرورها) است که به شما کمک می کند تا منابع موجود آنها را جمع آوری کنید. این شامل رم، CPU، رم، دیسک و دستگاه های آنها در یک استخر قابل استفاده است.

Master:
Master مجموعه ای از مؤلفه ها است که کنترل پنل Kubernetes را تشکیل می دهد. این مولفه ها برای همه تصمیمات خوشه ای استفاده می شوند. این شامل زمان‌بندی و پاسخگویی به رویدادهای خوشه‌ای است.

Node یا گره:
یک هاست منفرد است که می تواند بر روی یک ماشین فیزیکی یا مجازی اجرا شود. یک گره باید kube-proxy، minikube و kubelet را اجرا کند که به عنوان بخشی از cluster در نظر گرفته می شوند.

Namespace:
 یک cluster منطقی یا environment است که یک روش پرکاربرد است و برای دسترسی به محدوده یا تقسیم یک cluster استفاده می شود.

نحوه کار کوبرنتیز

Kubernetes با مدیریت یک خوشه کار می کند که از یک صفحه کنترل و ماشین های محاسباتی (گره ها) تشکیل شده است. هر گره یک محیط مجزا در حال اجرا cluster است که گروهی از کانتینرها هستند.

صفحه کنترل (Control Plane) مسئول حفظ وضعیت مطلوب خوشه است، از جمله اینکه کدام برنامه ها در حال اجرا هستند و از چه ایمیج کانتینری استفاده می کنند. ماشین های محاسباتی (Compute machine) هم در واقع برنامه ها و بارهای کاری را اجرا می کنند.

هنگامی که یک مدیر یا تیم DevOps دستوراتی را به Kubernetes می دهد، صفحه کنترل آن دستورالعمل ها را به ماشین های محاسباتی منتقل می کند. Kubernetes به طور خودکار تصمیم می گیرد که کدام گره برای هر کار بهتر است، منابع را تخصیص می دهد و pad ها را برای انجام کار درخواستی اختصاص می دهد. حالت مطلوب خوشه مشخص می کند که کدام برنامه ها یا بارهای کاری باید اجرا شوند.

شما Kubernetes را با تعریف node ها، cluster ها و کانتینرهای درون آن ها پیکربندی می کنید. Kubernetes از تنظیم کانتینرها مراقبت می کند. می‌ توانید Kubernetes را روی گزینه ‌های زیرساختی مختلف مانند سرورهای فیزیکی، ماشین ‌های مجازی، ابرهای عمومی، ابرهای خصوصی و محیط ‌های ابری ترکیبی اجرا کنید. Kubernetes انعطاف پذیر است و می تواند بر روی انواع زیرساخت ها کار کند.

معماری Kubernetes

در زیر نمودار معماری Kubernetes با جزئیات آمده است:

گره اصلی یا Master Node

گره اصلی اولین و حیاتی ترین مؤلفه ای است که مسئولیت مدیریت خوشه Kubernetes را بر عهده دارد. این نقطه ورود برای همه انواع وظایف اداری است. ممکن است بیش از یک گره اصلی در خوشه برای بررسی تحمل خطا وجود داشته باشد.

گره اصلی دارای اجزای مختلفی مانند API Server، Controller Manager، Scheduler و ETCD است. بگذار همه آنها را ببینیم.

API Server: سرور API به عنوان یک نقطه ورودی برای تمام دستورات REST مورد استفاده برای کنترل خوشه عمل می کند.

Scheduler

زمانبند وظایف را به گره برده زمان بندی می کند. این اطلاعات استفاده از منبع را برای هر گره برده ذخیره می کند. وظیفه توزیع حجم کار را بر عهده دارد.

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

Etcd

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

worker / slave nodes

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

  • Kubelet: پیکربندی یک Pod را از سرور API دریافت می کند و اطمینان می دهد که کانتینرهای توصیف شده آماده و در حال اجرا هستند.
  • Docker Container: کانتینر Docker روی هر یک از گره های کارگر اجرا می شود که cluster های پیکربندی شده را اجرا می کند.
  • Kube-proxy: Kube-proxy به عنوان یک متعادل کننده بار و پروکسی شبکه برای انجام خدمات بر روی یک گره کارگر عمل می کند.
  • Pods: یک pod ترکیبی از کانتینرهای منفرد یا چندگانه است که به طور منطقی با هم روی گره ها اجرا می شوند

دیگر ساختار های kubernetes

Replication Controller

یک کنترل‌کننده تکرار، شی‌ای است که یک قالب پاد را تعریف می‌کند. همچنین با افزایش یا کاهش تعداد کپی‌های در حال اجرا، پارامترها را برای مقیاس افقی کپی‌های یکسان Pod کنترل می‌کند.

Replication Sets

مجموعه‌های تکرار، تعاملی بر روی طراحی کنترل‌کننده تکرار با انعطاف‌پذیری در نحوه شناسایی cluster هایی است که کنترل‌کننده برای مدیریت آن‌ها در نظر گرفته شده است. به دلیل قابلیت انتخاب تکرار بالاتر، جایگزین کنترلرهای تکرار می شود.

Deployments
استقرار یک حجم کاری رایج است که می تواند مستقیما ایجاد و مدیریت شود. مجموعه تکرار استفاده از استقرار به عنوان یک بلوک ساختمانی که ویژگی مدیریت چرخه حیات را اضافه می کند.

Stateful Sets

این یک کنترل cluster تخصصی است که سفارش و منحصر به فرد بودن را ارائه می دهد. این عمدتاً برای داشتن کنترل دقیق استفاده می شود، که شما نیاز خاصی به ترتیب استقرار، شبکه پایدار و داده های پایدار دارید.

Daemon Sets

Daemon sets شکل تخصصی دیگری از کنترلر پاد هستند که یک کپی از یک پاد را روی هر گره در خوشه اجرا می‌کند. این نوع کنترلر پاد روشی موثر برای استقرار پادها است که به شما امکان می دهد تعمیر و نگهداری را انجام دهید و خدماتی را برای خود گره ها ارائه می دهد.