環境
- macOS
- Docker (with HyperKit)
名詞解釋
Cluster
叢集,是指由 Kubernetes 使用一系列的物理機、虛擬機和其他基礎資源來運行應用程式,或計算、存儲網路資源的集合。
Master
主控,是 Cluster 的大腦,負責調度 Node,決定應用程式應該放在哪裡運行。Master 運行Linux 作業系統,可以是物理機或虛擬機。
Node
節點,負責監控並匯報容器的狀態,同時根據 Master 的要求管理容器的生命周期。
Pod
豆莢,是 Kubernetes 的最小調度單位,每個 Pod 包含一或多個容器。Pod 中的容器會作為一個整體被 Master 調度到一個 Node 上運行。
環境設定
首先安裝 minikube,minikube 可以將 Kubernetes 運行在本地端,方便學習與開發。
1 | brew install minikube |
查看 minikube 的版本。
1 | minikube version |
使用管理員權限啟動一個 cluster。
1 | minikube start |
- 使用
--driver
參數可以指定虛擬機器。
查看 cluster 資訊。
1 | kubectl cluster-info |
查看 minikube 狀態。
1 | minikube status |
啟動 Kubernetes 圖形化介面。
1 | minikube dashboard |
部署應用程式
部署一個 hello-minikube 範例。
1 | kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4 |
--image
參數代表 Docker image 的位址和版本。
將其暴露在 8080 埠,並將服務類型設為 NodePort
,使服務可以從叢集的外部被訪問。
1 | kubectl expose deployment hello-minikube --type=NodePort --port=8080 |
--type
參數用來指定服務的類型。--port
參數代表 container 對外的埠號。
查看 pod 列表。
1 | kubectl get pods |
查看 cluster 的 IP。
1 | minikube ip |
查看服務列表。
1 | kubectl get services |
開啟 hello-minikube 服務。
1 | minikube service hello-minikube |
管理叢集
暫停 Kubernetes。
1 | minikube pause |
停止 cluster。
1 | minikube stop |
增加預設記憶體限制(需要重新啟動)。
1 | minikube config set memory 16384 |
查看附加元件列表。
1 | minikube addons list |
刪除所有 cluster。
1 | minikube delete --all |
擴充應用
查看副本數。
1 | kubectl get deployments |
將 hello-minikube 的副本數設定成 3。
1 | kubectl scale deployments/hello-minikube --replicas=3 |
基礎指令
用 minikube 啟動一個 cluster。
1 | minikube start |
用 minikube 開啟 Kubernetes 圖形化介面。
1 | minikube dashboard |
建立一個服務。
1 | kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4 |
暴露一個 NodePort 服務。
1 | kubectl expose deployment hello-minikube --type=NodePort --port=8080 |
在瀏覽器打開一個服務。
1 | minikube service hello-minikube |
更新 cluster。
1 | minikube start --kubernetes-version=latest |
啟動第二個 cluster。
1 | minikube start -p cluster2 |
停止 cluster。
1 | minikube stop |
刪除 cluster。
1 | minikube delete |
刪除所有 cluster。
1 | minikube delete --all |