10 KiB
title, content_type, weight, menu, card
| title | content_type | weight | menu | card | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| سلام مینی کیوب | tutorial | 5 |
|
|
این آموزش به شما نشان می دهد که چگونه یک برنامه ساده رو در کوبرنتیز با استفاده از مینی کیوب و کاتاکدا (Katacoda) اجرا کنید. کاتاکدا یک محیط رایگان کوبرنتیز را در مرورگر فراهم می کند.
{{< note >}} می توانید این آموزش را دنبال کنید اگر مینی کیوب را محلی (در ماشین خود) نصب کرده اید. {{< /note >}}
{{% heading "اهداف" %}}
- یک برنامه کاربردی نمونه را در مینی کیوب مستقر کنید.
- برنامه را اجرا کنید.
- لاگ های برنامه را مشاهده کنید.
{{% heading "پیش نیازها" %}}
این آموزش یک کانتینر را ارائه می دهد که با استفاده از NGINX تمام درخواست ها را بازتاب می دهد.
ساخت خوشه مینی کیوب
-
کلیک کنید ** راه اندازی ترمینال **
{{< kat-button >}}
{{< note >}}
اگر مینی کیوب را به صورت محلی نصب کرده اید ، minikube start اجرا کنید.
{{< /note >}}
-
داشبورد کوبرنتیز را در یک مرورگر باز کنید:
minikube dashboard -
فقط برای محیط کاتاکودا: در بالای صفحه ترمینال ، روی علامت مثبت کلیک کنید و سپس Select port to view on Host 1 را انتخاب کنید.
-
فقط برای محیط کاتاکودا:
30000را وارد کنید و سپس بر روی Display Port کلیک کنید.
ساختن دپلویمنت (Deployment)
یک Pod کوبرنتیز گروهی از یک یا چند کانتینر است ، که برای اهداف مدیریتی (Administration) و شبکه به هم وصل هستند. Pod در این آموزش فقط یک کانتینر دارد. یک Deployment کوبرنتیز سلامت Pod شما رو بررسی می کند و در صورت خاتمه آنرا دوباره راه اندازی می کند. Deployment ها روش پیشنهادی برای مدیریت و اسکیل (scale) کردن Pod هاست.
-
برای ایجاد یک Deployment که یک Pod را مدیریت می کند ، از دستور
kubectl createاستفاده کنید. Pod یک کانتینر را بر اساس ایمیج ارائه شده Docker اجرا می کند.kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4 -
دیدن Deployment:
kubectl get deploymentsخروجی (مثال):
NAME READY UP-TO-DATE AVAILABLE AGE hello-node 1/1 1 1 1m -
دیدن Pod:
kubectl get podsخروجی (مثال):
NAME READY STATUS RESTARTS AGE hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m -
دیدن رویدادهای یک خوشه:
kubectl get events -
دیدن تنظیمات
kubectl:kubectl config view
{{< note >}}
برای کسب اطلاعات بیشتر در مورد دستورات kubectl ، به نمای کلی kubectl مراجعه کنید.
{{< /note >}}
ساختن یک سرویس (Service)
به طور پیش فرض ، Pod فقط با آدرس IP داخلی خود در خوشه Kubernetes قابل دسترسی است. برای دسترسی hello-node کانتینر خارج از شبکه مجازی کوبرنتیز شما باید Pod را به عنوان یک Service در معرض دید قرار بدهید.
-
با استفاده از دستور
kubectl exposeپاد را در معرض دید اینترنت قرار دهید:kubectl expose deployment hello-node --type=LoadBalancer --port=8080سوییچ
--type=LoadBalancerنشان می دهد که شما می خواهید سرویس خود را در معرض دید خارج از خوشه قرار دهید. -
دیدن سرویس ساخته شده:
kubectl get servicesخروجی (مثال):
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23mدر ارائه دهندگان ابری که از Load balancer پشتیبانی می کنند ، یک آدرس IP خارجی برای دسترسی به سرویس ارائه می شود. مینی کیوب ، نوع
LoadBalancerسرویس را از طریق دستورminikube serviceقابل دسترسی می کند. -
دستور زیر را اجرا کنید:
minikube service hello-node -
فقط برای محیط کاتاکودا: روی علامت بعلاوه کلیک کنید ، و سپس روی Select port to view on Host 1 کلیک کنید.
-
فقط برای محیط کاتاکودا: به شماره پورت 5 رقمی که در مقابل
8080در خروجی خدمات نمایش داده شده است توجه داشته باشید. این شماره پورت به طور تصادفی تولید می شود و می تواند برای شما متفاوت باشد. شماره خود را در کادر متن شماره پورت تایپ کنید ، سپس روی Display Port کلیک کنید. براساس خروجی مثال قبلی ، پورت30369می باشد.با این کار یک پنجره مرورگر باز می شود که به برنامه شما سرویس می دهد و پاسخ برنامه را نشان می دهد.
فعال کردن افزونه ها
مینی کیوب دارای مجموعه ای از افزونه های {{< glossary_tooltip text="addons" term_id="addons" >}} داخلی است که می توانند در محیط محلی کوبرنتیز فعال ، غیرفعال و باز شوند.
-
افزونه های پشتیبانی شده فعلی را لیست کنید:
minikube addons listخروجی (مثال):
addon-manager: enabled dashboard: enabled default-storageclass: enabled efk: disabled freshpod: disabled gvisor: disabled helm-tiller: disabled ingress: disabled ingress-dns: disabled logviewer: disabled metrics-server: disabled nvidia-driver-installer: disabled nvidia-gpu-device-plugin: disabled registry: disabled registry-creds: disabled storage-provisioner: enabled storage-provisioner-gluster: disabled -
فعال کردن یک افزونه ، به عنوان مثال ،
metrics-server:minikube addons enable metrics-serverخروجی (مثال):
metrics-server was successfully enabled -
مشاهده Pod و سرویسی که به تازگی ایجاد کرده اید:
kubectl get pod,svc -n kube-systemخروجی (مثال):
NAME READY STATUS RESTARTS AGE pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m pod/metrics-server-67fb648c5 1/1 Running 0 26s pod/etcd-minikube 1/1 Running 0 34m pod/influxdb-grafana-b29w8 2/2 Running 0 26s pod/kube-addon-manager-minikube 1/1 Running 0 34m pod/kube-apiserver-minikube 1/1 Running 0 34m pod/kube-controller-manager-minikube 1/1 Running 0 34m pod/kube-proxy-rnlps 1/1 Running 0 34m pod/kube-scheduler-minikube 1/1 Running 0 34m pod/storage-provisioner 1/1 Running 0 34m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/metrics-server ClusterIP 10.96.241.45 <none> 80/TCP 26s service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 34m service/monitoring-grafana NodePort 10.99.24.54 <none> 80:30002/TCP 26s service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26s -
غیر فعال کردن
metrics-server:minikube addons disable metrics-serverخروجی (مثال):
metrics-server was successfully disabled
پاک کردن
اکنون می توانید منابعی را که در خوشه خود ایجاد کرده اید پاک کنید:
kubectl delete service hello-node
kubectl delete deployment hello-node
به صورت اختیاری ، ماشین مجازی Minikube (VM) را متوقف کنید:
minikube stop
در صورت تمایل ، حذف Minikube VM:
minikube delete
{{% heading "قدم بعدی" %}}
- درباره Deployment objects بیشتر بدانید.
- درباره Deploying applications بیشتر بدانید.
- درباره Service objects بیشتر بدانید.