سلام Minikube


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

Objectives

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

Before you begin

این آموزش فرض می‌کند که شما قبلا minikube را راه‌اندازی کرده‌اید. برای دستورالعمل نصب، مرحله ۱ در صفحه minikube start را ببینید.

همچنین باید kubectl را نصب کنید. برای دستورالعمل نصب، صفحه Install tools را ببینید.

ساخت یک کلاستر minikube

minikube start

باز کردن داشبورد

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

یک ترمینال جدید باز کنید و دستور زیر را اجرا کنید:

# Start a new terminal, and leave this running.
minikube dashboard

اکنون به ترمینالی که minikube start را اجرا کرده بودید برگردید.

اگر نمی‌خواهید minikube مرورگر را باز کند، زیر دستور dashboard از فلگ --url استفاده کنید. minikube یک آدرس URL نمایش می‌دهد که شما می‌توانید در مرورگر دلخواه باز کنید.

یک ترمینال جدید باز کنید و اجرا کنید:

# Start a new terminal, and leave this running.
minikube dashboard --url

حالا می‌توانید از این URL استفاده کنید و به ترمینالی که minikube start را اجرا کرده بودید برگردید.

ساخت Deployment

یک Pod گروهی از یک یا چند کانتینر است که برای مدیریت و شبکه‌سازی به هم مرتبط هستند. پاد این آموزش فقط یک کانتینر دارد. Deployment وضعیت سلامت پاد را بررسی کرده و اگر خراب شود، آن را مجدداً اجرا می‌کند. Deployment روش پیشنهادی برای ساخت و مقیاس‌دهی پادهاست.

  1. ایجاد Deployment:

    # Run a test container image that includes a webserver
    kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
    
  2. مشاهده Deployment:

    kubectl get deployments
    

    خروجی مشابه موارد زیر است:

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    hello-node   1/1     1            1           1m
    

    (ممکن است کمی زمان ببرد تا پاد آماده شود. اگر 0/1 دیدید، چند ثانیه بعد دوباره امتحان کنید.)

  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
    
  6. مشاهده لاگ کانتینر داخل پاد (نام پاد را جایگزین کنید):

    kubectl logs hello-node-5f76cf6ccf-br9b5
    

    خروجی مشابه موارد زیر است:

    I0911 09:19:26.677397       1 log.go:195] Started HTTP server on port 8080
    I0911 09:19:26.677586       1 log.go:195] Started UDP server on port  8081
    

ساخت Service

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

  1. اکسپوز کردن پاد:

    kubectl expose deployment hello-node --type=LoadBalancer --port=8080
    
  2. مشاهده Service:

    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
    
  3. اجرای سرویس:

    minikube service hello-node
    

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

فعال‌سازی افزونه‌ها

minikube شامل مجموعه‌ای از 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
    

    خروجی مشابه موارد زیر است:

    The 'metrics-server' addon is enabled
    
  3. مشاهده پادها و سرویس‌ها:

    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:

    kubectl top pods
    

    اگر دیدید:

    error: Metrics API not available
    

    اگر پیام بالا را مشاهده کردید، صبر کنید و دوباره امتحان کنید:

  5. غیرفعال کردن افزونه:

    minikube addons disable metrics-server
    

پاکسازی

اکنون می‌توانید منابعی را که در کلاستر خود ایجاد کرده‌اید، پاک کنید:

kubectl delete service hello-node
kubectl delete deployment hello-node

توقف کلاستر minikube:

minikube stop

در صورت تمایل، ماشین مجازی Minikube را حذف کنید:

# Optional
minikube delete

اگر می‌خواهید دوباره از minikube برای کسب اطلاعات بیشتر در مورد کوبرنتیز استفاده کنید، نیازی به حذف آن ندارید.

نتیجه‌گیری

در این صفحه یاد گرفتید چگونه یک کلاستر minikube راه‌اندازی کنید و برنامه اجرا کنید.

What's next

  • آموزش استقرار اولین برنامه روی کوبرنتیز با kubectl
  • یادگیری بیشتر درباره Deployment
  • یادگیری بیشتر درباره اجرای برنامه‌ها
  • یادگیری بیشتر درباره Service
آخرین تغییرات November 06, 2025 at 4:01 PM PST: hello-minikube.md file renamed without changes. (f042b23c9a)