سوالات مصاحبه دواپس: کوبرنیتیز بخش اول

در باره اجزای control plane به صورت مختصر توضیح بدهید

  • kube-api
    • دریافت تمامی درخواست های خارجی و داخلی به API سرور ارسال میشود. مثلا زمانی که دستور kubectl را میزنیم در واقع درخواست را برای این سرویس ارسال میکنیم. ارتباط بین control plane و worker node ها نیز وظیفه این قسمت است. 
  • etcd:
    •  یک key-value store است. که  اطلاعات مورد نیاز API سرور را نگهداری میکند و فقط API سرور امکان دسترسی به آن را دارد. 
  • scheduler
    • زمانی که API سرور نیاز به ساخت پاد جدید داشته باشد وظیفه برگزیدن Node برای دیپلوی آن پاد بر عهده scheduler میباشد. 
  • control manager
    • وظیفه مانیتور کردن پادها جهت یکی بودن وضعیت فعلی (Current State) با وضعیت مورد انتظار (Desired State)  را بر عهده دارد. وقتی که این ۲ یکسان نباشند API سرور را با خبر میکند. برای Resource های مختلف کنترلرهای متفاوتی وجود دارد. نکته جالب آن که نیازی نیست حتما کنترلر ها میتوانند خارج از Control Plane باشند. 

Worker Node ها از چه قسمت هایی تشکیل شده اند؟

  • Kubelet
    •  دستورات control plane  را اجرا میکند و بررسی سلامت پاد روی آن Node را نیز بر عهده دارد.
  • kube-proxy
    •  سرویس پروکس که بر روی همه  Worker Node ها وجود دارد تا با استفاده از آن بتواند یک شبکه ایزوله برای پادها فراهم کند. علاوه بر آن دسترسی سرویس ها از خارج  کلاستر را نیز مدیریت میکند. این کار معمولا توسط سرویس Iptables انجام میپذیرد.
  • CRI
    • هدف تمامی سرویس ها اجرای یک کانتینر است که توسط Runtime های مختلف فراهم میشود. از جمله آن ها میتوان به Docker، CRI-O و Containerd اشاره نمود.

بررسی وضعیت سلامت پاد چگونه انجام میشود؟

با استفاده از readinessProbe و livenessProbe. هر دو میتوانند از ۳ روش جهت بررسی وضعیت سلامت کانتینر استفاده نمایند: exec، httpGet و tcpGet

livenessProbe وضعیت سلامت را چک میکند ولی ممکن است کانتنر ما سالم باشد ولی نیاز داشته باشیم تا در صورتی که شرط دیگری نیز برقرار بود ارسال ترافیک به آن پاد انجام شود. در این حالت از  readinessProbe استفاده میکنیم.  

مدیریت دسترسی ها در کوبرنیتیز چگونه است؟

کنترل دسترسی با استفاده از RBAC که روشی برای اعطای دسترسی کاربران به منابع API Kubernetes است. RBAC یک طراحی امنیتی است که دسترسی به منابع Kubernetes را بر اساس نقشی که کاربر دارد محدود می کند.

اشتراک گذاری

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *