Kubernetes – Minikube 部屬程式

創建示例部署並將其暴露在端口8080上:

kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
  1. kubectl create deployment
    • 創建一個 Kubernetes Deployment 資源,用於管理 Pod 的生命週期(例如滾動更新、擴縮容等)。
  2. hello-minikube
    • 自定義的 Deployment 名稱(這裡命名為 hello-minikube,可隨意修改)。
  3. --image=kicbase/echo-server:1.0
    • 指定 Pod 中運行的容器鏡像(這裡使用 kicbase/echo-server:1.0,這是一個簡單的 HTTP 回顯測試服務器)。
    • 這邊 是 docker image

Kubernetes 會自動創建以下資源:

  1. 一個 Deployment 資源
    • 管理 Pod 的聲明式配置
    • 確保指定數量的 Pod 副本(replicas)始終運行(默認是 1 個)
  2. 一個 ReplicaSet(由 Deployment 自動管理)
    • 負責維護 Pod 的副本數量
  3. 一個 Pod
    • 實際運行 kicbase/echo-server:1.0 容器
    • Pod 名稱會是自動生成的(格式如 hello-minikube-5c6d4f9b7f-abcde
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl expose deployment hello-minikube --type=NodePort --port=8080 --node_port=8000
  1. kubectl expose deployment
    • 為指定的 Deployment(這裡是 hello-minikube)創建一個 Service 資源。
  2. hello-minikube
    • 目標 Deployment 的名稱(需與先前 kubectl create deployment 時的名稱一致)。
  3. --type=NodePort
    • 指定 Service 類型為 NodePort,這會:
      • 在集群每個節點的固定端口(NodePort,範圍默認 30000-32767)上公開服務。
      • 允許從集群外部通過 <節點IP>:<NodePort> 訪問服務。
  4. --port=8080
    • 定義 Service 的「端口號」(即服務本身對外開放的端口,這裡是 8080)。
    • 注意:這不是節點對外開放的端口(NodePort),而是 Service 的虛擬端口。

查詢k8s 集群中 Service 狀態

kubectl get services hello-minikube
  1. kubectl: Kubernetes 的命令行工具,用於與 Kubernetes 集群交互
  2. get: 查詢資源的指令
  3. services: 指定要查詢的資源類型(可以縮寫為 svc
  4. hello-minikube: 要查詢的具體 Service 名稱

訪問此服務的最簡單方法是讓minikube為您啟動Web瀏覽器:

minikube service hello-minikube

指定對應 port 號

您的應用程序現在可以在 http://localhost:7080/ 看到

kubectl port-forward service/hello-minikube 7080:8080

刪除現有 Service

kubectl delete svc hello-minikube

查看 Dashboard

minikube dashboard

參考連結: 連結

2 則留言

留言功能已關閉。