1️⃣ 定位
| 工具 | 主要用途 | 角色定位 |
|---|---|---|
| minikube | 在本機啟動一個單節點的 Kubernetes cluster | Kubernetes 模擬器 / 本地環境 |
| kubectl | 與 Kubernetes API server 溝通、下指令操作資源 | Kubernetes 客戶端 CLI |
2️⃣ 關係
minikube 是一個「建立環境」的工具,會在本機(VM、Docker、Hyper-V…)啟動一個小型 Kubernetes cluster。
kubectl 是一個「操作環境」的工具,無論這個環境是 minikube、GKE、EKS、AKS… 都能用同一套命令操作。
當你安裝 minikube 時,它會幫你設定好 kubectl config(~/.kube/config),讓 kubectl 預設連到 minikube 的 cluster。
3️⃣ 使用場景
| 需求 | 選擇 |
|---|---|
| 我想在本地測試 Kubernetes,不用雲端資源 | minikube |
| 我已經有 Kubernetes cluster(不管本地或雲端),要建立 Pod/Service、查詢狀態 | kubectl |
| 我想在本地啟動 cluster,然後操作裡面的 Pod/Service | minikube + kubectl 一起用 |
4️⃣ 簡單圖示
[ minikube ] → 啟動本地 Kubernetes 環境
↓
[ kubectl ] → 操作這個環境裡的資源
簡單講:
- minikube = 幫你生一個「本地測試用的 Kubernetes」
- kubectl = 你的「遙控器」,不管 cluster 在哪裡,都用它來操作
┌─────────────────────────┐
│ 你的電腦 / 開發機 │
└──────────┬───────────────┘
│
▼
[ minikube ]
┌─────────────────────────┐
│ 啟動本地 Kubernetes 環境 │
│ (VM / Docker) │
│ 建立單節點 Cluster │
└──────────┬───────────────┘
│ (設定 kubeconfig)
▼
[ kubectl ]
┌─────────────────────────┐
│ CLI 操作 Kubernetes API │
│ - 建立/刪除資源 │
│ - 查詢狀態 │
│ - Port Forward / Logs │
└──────────┬───────────────┘
│
▼
[ Kubernetes Cluster ]
┌─────────────────────────┐
│ API Server ←→ etcd │
│ Controller Manager │
│ Scheduler │
│ (minikube 建的本地版) │
└──────────┬───────────────┘
│
▼
[ 資源對象 ]
┌─────────────────────────┐
│ Pod / Deployment / Svc │
│ ConfigMap / Secret ... │
└─────────────────────────┘