کوبرنیتس (Kubernetes) یک پلتفرم متنباز برای مدیریت بارهای کاری و سرویسهای کانتینری است که ابتدا توسط گوگل توسعه داده شد و اکنون توسط بنیاد Cloud Native Computing Foundation (CNCF) مدیریت میشود. این پلتفرم در سال 2014 به عنوان یک پروژه متنباز معرفی شد و به سرعت تبدیل به یکی از محبوبترین ابزارهای مدیریت کانتینر در جهان شد.
گوگل، به عنوان یکی از پیشگامان در استفاده از کانتینرها برای مدیریت بارهای کاری مقیاسپذیر، نیاز به سیستمی داشت که بتواند به صورت مؤثر و کارآمد کانتینرها را در مقیاس بزرگ مدیریت کند. این نیاز منجر به توسعه Borg، سیستم مدیریت بارهای کاری داخلی گوگل، شد. تجربهها و درسهای آموختهشده از Borg در نهایت به ایجاد کوبرنیتس منجر شد.
هدف اصلی از ایجاد کوبرنیتس، فراهم کردن یک پلتفرم قوی و قابل اطمینان برای مدیریت کانتینرها به شیوهای است که توسعهدهندگان و تیمهای عملیاتی بتوانند به سرعت و به آسانی برنامههای خود را مستقر، مدیریت و مقیاسبندی کنند.
از این رو میتوان برخی مزایای استفاده از کوبرنیتس رو بصورت زیر شرح داد:
1. مدیریت خودکار کانتینرها: کوبرنیتس به طور خودکار کانتینرها را مستقر، مدیریت و مقیاسبندی میکند، که باعث کاهش نیاز به مدیریت دستی میشود.
2. مقیاسپذیری آسان: با استفاده از کوبرنیتس، میتوان به راحتی بارهای کاری را بر اساس نیازهای فعلی مقیاسبندی کرد.
3. پشتیبانی از بازیابی خودکار: کوبرنیتس میتواند به طور خودکار کانتینرهای خراب را مجدداً راهاندازی کرده و بهبود دهد، که باعث افزایش پایداری و اطمینان از در دسترس بودن برنامهها میشود.
4. توسعه متمرکز و توزیعشده: کوبرنیتس به تیمهای توسعه اجازه میدهد که به صورت متمرکز و توزیعشده بر روی پروژهها کار کنند، که این موضوع باعث افزایش کارایی و بهرهوری میشود.
5. پشتیبانی از استقرارهای ابر-مختلط: کوبرنیتس میتواند بر روی زیرساختهای مختلف از جمله ابرهای عمومی، ابرهای خصوصی و مراکز داده محلی مستقر شود، که این موضوع انعطافپذیری بیشتری را برای سازمانها فراهم میکند.
کوبرنیتس به پلتفرم اصلی برای مدیریت برنامههای کانتینری در مقیاس تبدیل شده است. با این حال، تسلط بر کوبرنیتس نیازمند درک واسط خط فرمان (CLI) گسترده آن برای مدیریت منابع به طور مؤثر است.
در ادامه، ما یک چیت شیت جامع از دستورات با مثالهایی از کوبرنتیس را با همدیگر بررسی و یاد خواهیم گرفت:
دستورات پاد (Pod):
ایجاد یک پاد:
$ kubectl create -f <pod-definition.yaml>
لیست پادها:
$ kubectl get pods
توصیف یک پاد:
$ kubectl describe pod <pod-name>
حذف یک پاد:
$ kubectl delete pod <pod-name>
ورود به یک پاد:
$ kubectl exec -it <pod-name> - /bin/bash
دستورات دیپلویمنت (Deployment):
ایجاد یک دیپلویمنت:
$ kubectl create deployment <deployment-name> --image=<image-name>
لیست دیپلویمنتها:
$ kubectl get deployments
تغییر مقیاس یک دیپلویمنت:
$ kubectl scale deployment <deployment-name> --replicas=<number-of-replicas>
وضعیت رولاوت:
$ kubectl rollout history deployment/<deployment-name>
تاریخچه رولاوت:
$ kubectl rollout history deployment/<deployment-name>
دستورات سرویس (Service):
ایجاد یک سرویس:
$ kubectl expose deployment <deployment-name> --type=NodePort --port=<port-number>
لیست سرویسها:
$ kubectl get services
توصیف یک سرویس:
$ kubectl describe service <service-name>
حذف یک سرویس:
$ kubectl delete service <service-name>
دستورات نامفضا (Namespace):
ایجاد یک نامفضا:
$ kubectl create namespace <namespace-name>
لیست نامفضاها:
$ kubectl get namespaces
توصیف یک نامفضا:
$ kubectl describe namespace <namespace-name>
حذف یک نامفضا:
$ kubectl delete namespace <namespace-name>
دستورات ConfigMap و Secret:
ایجاد یک ConfigMap:
$ kubectl create configmap <configmap-name> --from-literal=<key1>=<value1> --from-literal=<key2>=<value2>
لیست ConfigMapها:
$ kubectl get configmaps
توصیف یک ConfigMap:
$ kubectl describe configmap <configmap-name>
حذف یک ConfigMap:
$ kubectl delete configmap <configmap-name>
ایجاد یک Secret:
$ kubectl create secret generic <secret-name> --from-literal=<key1>=<value1> --from-literal=<key2>=<value2>
لیست Secrets:
$ kubectl get secrets
توصیف یک Secret:
$ kubectl describe secret <secret-name>
حذف یک Secret:
$ kubectl delete secret <secret-name>
اعمال تغییرات به منابع:
$ kubectl apply -f <resource-definition.yaml>
دسترسی به داشبورد کوبرنیتس:
$ kubectl proxy
گرفتن لاگهای یک پاد:
$ kubectl logs <pod-name>
پورت فورواردینگ:
$ kubectl port-forward <pod-name> <local-port>:<pod-port>
اکسپورت کردن مانفیست YAML یک منبع:
$ kubectl get <resource-type> <resource-name> -o yaml > <resource-definition.yaml>
این چیت شیت دستورات اساسی برای مدیریت منابع کوبرنیتس را پوشش میدهد. البته همیشه مستندات رسمی یا آموزشهای خاص برای درک عمیقتر و استفاده پیشرفتهتر می تواند مفیدتر باشد.
برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *
ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *
هنوز برای این مطلب نظری ارسال نشده است!