Kubernetes (K8s) 是一個 「幫你管理一大堆 Docker 容器的總管系統」
可以負責 : 啟動, 停止, 擴容, 重啟, 網路, 負載平衡, 滾動更新
K8s 實際例子
可以要求 K8s 這個服務永遠維持 3 個實例, 當系統掛掉一個, 會自動補一個, 流量變大, 可以擴充到 10 個, 更新版本, 可以零停機 rolling update, 節點掛掉, 可以搬走
核心概念
- Pod (最小單位) : 一個或多個 container, 通常一個 Pod = 1App container
- Deployment : 定義用哪個 image, 跑幾個 Pod, 更新策略
- Service (對外入口) : Pod IP 若會變, 會很不可靠, Service 可以做穩定入口 + Load Balance
- Node (實體/VM) : 一台機器可以跑很多 Pod
- Cluster (整個 K8s) : 多台 Node, 一個管理中心 (Control Plane)
Minikube 跑 K8s 教學
前置作業 : 確認有 docker 和 kubectl
docker --version
kubectl version --client
安裝 Minikube
choco install minikube啟動 K8s
minikube start --driver=docker
成功後的結果, 代表有一個 K8s 的 Cluster
Done! kubectl is now configured to use "minikube"
確認 Cluster 狀態
kubectl get nodes
跑第一個 Pod (Nginx)
kubectl get pods
對外開放 Service
kubectl expose deployment nginx --type=NodePort --port=80
取得網址
minikube service nginxReplicas
kubectl scale deployment nginx --replicas=3
kubectl get pods
可以啟動 3 個 Pod
若是刪除, 回自動回補
kubectl delete pod nginx-xxx
停止/刪除
minikube stop
minikube delete
總結
下一步驟推薦可以實作以下功能



















