Files
website/content/fa/docs/tutorials/hello-minikube.md
2020-10-27 08:42:27 +01:00

10 KiB

title, content_type, weight, menu, card
title content_type weight menu card
سلام مینی کیوب tutorial 5
main
title weight post
شروع کنید 10 <p>آماده هستید که دست به کار بشید؟ بیاید یک کلاستر ساده کوبرنتیز که یک برنامه ساده را اجرا می کند بسازیم</p>
name weight
tutorials 10

این آموزش به شما نشان می دهد که چگونه یک برنامه ساده رو در کوبرنتیز با استفاده از مینی کیوب و کاتاکدا (Katacoda) اجرا کنید. کاتاکدا یک محیط رایگان کوبرنتیز را در مرورگر فراهم می کند.

{{< note >}} می توانید این آموزش را دنبال کنید اگر مینی کیوب را محلی (در ماشین خود) نصب کرده اید. {{< /note >}}

{{% heading "اهداف" %}}

  • یک برنامه کاربردی نمونه را در مینی کیوب مستقر کنید.
  • برنامه را اجرا کنید.
  • لاگ های برنامه را مشاهده کنید.

{{% heading "پیش نیازها" %}}

این آموزش یک کانتینر را ارائه می دهد که با استفاده از NGINX تمام درخواست ها را بازتاب می دهد.

ساخت خوشه مینی کیوب

  1. کلیک کنید ** راه اندازی ترمینال **

    {{< kat-button >}}

{{< note >}} اگر مینی کیوب را به صورت محلی نصب کرده اید ، minikube start اجرا کنید. {{< /note >}}

  1. داشبورد کوبرنتیز را در یک مرورگر باز کنید:

    minikube dashboard
    
  2. فقط برای محیط کاتاکودا: در بالای صفحه ترمینال ، روی علامت مثبت کلیک کنید و سپس Select port to view on Host 1 را انتخاب کنید.

  3. فقط برای محیط کاتاکودا: ‍‍‍30000 را وارد کنید و سپس بر روی Display Port کلیک کنید.

ساختن دپلویمنت (Deployment)

یک Pod کوبرنتیز گروهی از یک یا چند کانتینر است ، که برای اهداف مدیریتی (Administration) و شبکه به هم وصل هستند. Pod در این آموزش فقط یک کانتینر دارد. یک Deployment کوبرنتیز سلامت Pod شما رو بررسی می کند و در صورت خاتمه آنرا دوباره راه اندازی می کند. Deployment ها روش پیشنهادی برای مدیریت و اسکیل (scale) کردن Pod هاست.

  1. برای ایجاد یک Deployment که یک Pod را مدیریت می کند ، از دستور kubectl create استفاده کنید. Pod یک کانتینر را بر اساس ایمیج ارائه شده Docker اجرا می کند.

    kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
    
  2. دیدن Deployment:

    kubectl get deployments
    

    خروجی (مثال):

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    hello-node   1/1     1            1           1m
    
  3. دیدن Pod:

    kubectl get pods
    

    خروجی (مثال):

    NAME                          READY     STATUS    RESTARTS   AGE
    hello-node-5f76cf6ccf-br9b5   1/1       Running   0          1m
    
  4. دیدن رویدادهای یک خوشه:

    kubectl get events
    
  5. دیدن تنظیمات kubectl :

    kubectl config view
    

{{< note >}} برای کسب اطلاعات بیشتر در مورد دستورات kubectl ، به نمای کلی kubectl مراجعه کنید. {{< /note >}}

ساختن یک سرویس (Service)

به طور پیش فرض ، Pod فقط با آدرس IP داخلی خود در خوشه Kubernetes قابل دسترسی است. برای دسترسی hello-node کانتینر خارج از شبکه مجازی کوبرنتیز شما باید Pod را به عنوان یک Service در معرض دید قرار بدهید.

  1. با استفاده از دستور kubectl expose پاد را در معرض دید اینترنت قرار دهید:

    kubectl expose deployment hello-node --type=LoadBalancer --port=8080
    

    سوییچ --type=LoadBalancer نشان می دهد که شما می خواهید سرویس خود را در معرض دید خارج از خوشه قرار دهید.

  2. دیدن سرویس ساخته شده:

    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 قابل دسترسی می کند.

  3. دستور زیر را اجرا کنید:

    minikube service hello-node
    
  4. فقط برای محیط کاتاکودا: روی علامت بعلاوه کلیک کنید ، و سپس روی Select port to view on Host 1 کلیک کنید.

  5. فقط برای محیط کاتاکودا: به شماره پورت 5 رقمی که در مقابل 8080 در خروجی خدمات نمایش داده شده است توجه داشته باشید. این شماره پورت به طور تصادفی تولید می شود و می تواند برای شما متفاوت باشد. شماره خود را در کادر متن شماره پورت تایپ کنید ، سپس روی Display Port کلیک کنید. براساس خروجی مثال قبلی ، پورت 30369 می باشد.

    با این کار یک پنجره مرورگر باز می شود که به برنامه شما سرویس می دهد و پاسخ برنامه را نشان می دهد.

فعال کردن افزونه ها

مینی کیوب دارای مجموعه ای از افزونه های {{< glossary_tooltip text="addons" term_id="addons" >}} داخلی است که می توانند در محیط محلی کوبرنتیز فعال ، غیرفعال و باز شوند.

  1. افزونه های پشتیبانی شده فعلی را لیست کنید:

    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
    
  2. فعال کردن یک افزونه ، به عنوان مثال ، metrics-server:

    minikube addons enable metrics-server
    

    خروجی (مثال):

    metrics-server was successfully enabled
    
  3. مشاهده 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
    
  4. غیر فعال کردن 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 "قدم بعدی" %}}