اگر صدها کانتینر را در Kubernetes مستقر می کنید، چگونه می توانید همه آنها را زیر نظر داشته باشید؟ رابط خط فرمان کار نخواهد کرد. شما به یک نمایش بصری از همه چیز نیاز دارید.
معرفی داشبورد Kubernetes. داشبورد Kubernetes رابط کاربری رسمی مبتنی بر وب است که از گروهی از منابع برای سادهسازی مدیریت کلاستر تشکیل شده است. در این آموزش نحوه نصب و راه اندازی داشبورد Kubernetes را گام به گام بر روی یک دستگاه اوبونتو خواهید آموخت.
قبل از اینکه بتوانید از مزایای داشبورد Kubernetes لذت ببرید، ابتدا باید آن را نصب کنید، پس بیایید وارد آن شویم. برای نصب داشبورد Kubernetes، به ابزار رابط خط فرمان kubectl نیاز دارید. Kubectl یک ابزار خط فرمان است که نصب داشبورد Kubernetes و بسیاری از وظایف دیگر Kubernetes را مدیریت می کند.
1. ابتدا از طریق SSH به سرور اصلی Kubernetes خود متصل شوید. 2. سپس داشبورد Kubernetes را با اجرای دستور kubectl application مانند شکل زیر نصب کنید. دستور kubectl application فایل recommend.yaml را دانلود میکند و دستورالعملهای درون آن را برای تنظیم هر جزء برای داشبورد فراخوانی میکند.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
پس از اجرای دستور، kubectl موارد زیر را ایجاد می کندnamespace
, service account
, config map
, pods
, cluster role
, service
, RBAC
, deployments
namespace
– فضای مجازی مجزا ایجاد میشود.
service account
– یک هویت برای فرآیندهایی که در یک Pod اجرا می شوند ارائه می دهد.
Config Map – یک شی API که برای ذخیره داده های غیر محرمانه در جفت های کلید-مقدار مانند متغیرهای محیطی یا آرگومان های خط فرمان استفاده می شود.
RBAC – مجوزهایی برای مدیریت نقش های کاربر در داشبورد.
service
– راهی برای نمایش یک برنامه در حال اجرا با چندین مجموعه از Pods
. deployments
– مدیریت منابع در خوشه.
Pods – یک pod گروهی از یک یا چند کانتینر با منابع ذخیره سازی مشترک و شبکه و مشخصاتی برای اجرای کانتینرها است.
Secrets – اطلاعات حساس مانند رمزهای عبور، نشانه های OAuth و کلیدهای SSH را ذخیره می کند.
?
3. اکنون، با اجرای دستور kubectl get، بررسی کنید که همه منابع با موفقیت نصب شده اند. دستور زیر اطلاعاتی را در مورد تمام منابع موجود در خوشه ایجاد شده در فضای نام kubernetes-dashboard (-n) واکشی می کند.
kubectl get all -n kubernetes-dashboard
?
در حال حاضر، شما یک داشبورد کاربردی Kubernetes در حال اجرا دارید، اما برای اینکه کاملاً کاربردی باشد، همچنان به کمی پیکربندی نیاز دارد. اکنون باید داشبورد را به گونهای پیکربندی کنید که با افشای سرویس داشبورد در خارج از کلاستر در دسترس باشد. با فرض اینکه هنوز از طریق کلاینت SSH به ماشین Kubernetes متصل هستید:
1. سرویس داشبورد Kubernetes ایجاد شده در قسمت قبل را با استفاده از دستور kubectl edit مطابق شکل زیر ویرایش کنید. با اجرای دستور زیر یک فایل پیکربندی سرویس قابل ویرایش باز می شود که پیکربندی سرویس را نمایش می دهد.
kubectl edit service/kubernetes-dashboard -n kubernetes-dashboard
2. پس از باز شدن فایل، نوع سرویس را از ClusterIP به NodePort تغییر دهید و فایل را مطابق شکل زیر ذخیره کنید. بهطور پیشفرض، این سرویس فقط به صورت داخلی برای خوشه (ClusterIP) در دسترس است، اما تغییر به NodePort، سرویس را به بیرون نشان میدهد.
تنظیم نوع سرویس بر روی NodePort به همه IP ها (داخل یا خارج از) کلاستر اجازه می دهد تا به سرویس دسترسی داشته باشند.
# Updated the type to NodePort in the service.ports:port: 443protocol: TCPtargetPort: 8443selector: k8s-app:kubernetes-dashboardsessionAffinity: Nonetype: NodePort
3. نام هر پاد را که مرحله دوم در بخش قبل با استفاده از دستور kubectl get pods ایجاد شده است، پیدا کنید.
شما باید یک پاد را ببینید که با kubernetes-dashboard شروع می شود.kubectl get pods –all-namespaces
?
4. سپس، پاد داشبورد Kubernetes را با استفاده از نام موجود در مرحله سوم با استفاده از دستور حذف kubectl حذف کنید.
برای این آموزش نام پاد kubernetes-dashboard-78c79f97b4-gjr2l است.
هر زمان که نوع سرویس را تغییر می دهید، باید پاد را حذف کنید. پس از حذف، Kubernetes یک سرویس جدید با نوع سرویس به روز شده برای دسترسی به کل شبکه برای شما ایجاد می کند.
kubectl delete pod kubernetes-dashboard-78c79f97b4-gjr2l -n kubernetes-dashboard
5. با اجرای دستور kubectl get svc –all-namespace بررسی کنید که سرویس kubernetes-dashboard نوع صحیحی دارد.
اکنون متوجه خواهید شد که نوع سرویس به NodePort تغییر کرده است و سرویس پورت TCP داخلی 30265 پاد را با استفاده از پورت TCP خارجی 443 در معرض دید قرار می دهد.
?
6. اکنون یک حساب سرویس با استفاده از kubectl create serviceaccount در فضای نام kubernetes-dashboard ایجاد کنید.
برای احراز هویت هر فرآیند یا برنامه ای در داخل کانتینر که در پاد قرار دارد به این serviceaccount نیاز دارید.
kubectl create serviceaccount dashboard -n kubernetes-dashboard
7. رمز سرویس را با اجرای دستور kubectl get secret واکشی کنید. از این توکن برای دسترسی به داشبورد در بخش بعدی استفاده خواهید کرد.
8. رول clusterrolebinding را با استفاده از دستور kubectl create clusterrolebinding ایجاد کنید و نقش cluster-admin را به حساب سرویس ایجاد شده قبلی اختصاص دهید تا دسترسی کامل به کل خوشه داشته باشید.
kubectl create clusterrolebinding dashboard-admin -n kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=default:dashboard
اکنون که داشبورد Kubernetes را نصب و راه اندازی کرده اید، تنها کاری که باید انجام دهید این است که از عملکرد آن لذت ببرید!
مرورگر مورد علاقه خود را باز کنید و به
https://kuberntes-master-node:NodePort/#/login بروید
تا به داشبورد Kubernetes دسترسی پیدا کنید.
kuberntes-master-node میشود آی پی سرور مستر شما
NodePort پورتی که در مرحله پنجم بر روی کلاستر خود باز کرده اید.
به طور مثال :
https://192.168.1.100:30625
صفحه اصلی داشبورد Kubernetes از شما میخواهد که از طریق یک توکن حامل معتبر یا با یک فایل kubeconfig از قبل موجود احراز هویت کنید.
برای این آموزش، از توکن تولید شده در بخش قبل برای دسترسی به داشبورد Kubernetes استفاده خواهید کرد.
?
مطمئن شوید که Token را انتخاب کرده اید و secret به دست آمده از مرحله هفت در بخش قبل را ارائه دهید. اگر همه چیز خوب پیش رفت، داشبورد باید شما را احراز هویت کند و صفحه خدمات را به شما ارائه دهد.
?
نتیجه
اکنون باید نحوه استقرار و دسترسی به داشبورد Kubernetes را بدانید.
داشبورد Kubernetes یک روش بصری برای مدیریت تمام منابع خوشه شما بدون رها شدن به خط فرمان است.
اکنون که داشبورد Kubernetes را راه اندازی کرده اید، چه برنامه هایی را در کنار آن قرار می دهید؟
https://adamtheautomator.com/kubernetes-dashboard/
https://enginedevops.com/2022/07/01/install-kubernetes-dashboard/