本文主要介紹在 Centos7 環境下基於 Minikube 來快速部署 Kubernetes 單節點叢集環境,並在瀏覽器上存取部署在 k8s 上的 dashboard 服務。
Minikube
是一個基於go語言開發,易於在本地執行 Kubernetes 的工具,可在你的筆記型電腦上的虛擬機器器內輕鬆建立單機版 Kubernetes 叢集,對硬體資源沒有太高的要求,非常適合 測試 和 本地開發。
架構圖:
運作原理:
從 Minikube 的架構中可以看出 master 節點與其它節點合為一體,而整體則通過宿主機上的 kubectl 進行管理,這樣可以更加 節省資源。
簡單來說就是,使用者使用 Minikube CLI 管理虛擬機器器上的 Kubernetes 環境,比如:啟動,停止,刪除,獲取狀態等。一旦 Minikube 虛擬機器器啟動,使用者就可以使用熟悉的 Kubectl CLI 在 Kubernetes 叢集上執行操作。
安裝步驟參考:https://www.runoob.com/docker/centos-docker-install.html
docker 的最低建議版本為 20.10.0 以上
設定阿里雲加速器:https://cr.console.aliyun.com/cn-shenzhen
啟動 docker:
systemctl start docker
systemctl enable docker.service
操作 minikube 需要一個具有 root 許可權的使用者(非root)
需要將該使用者新增進入 docker 使用者組
sudo gpasswd -a 使用者名稱 docker
newgrp docker
切換新建立的使用者來操作 minikube,我這裡建立的使用者為 zlt
su zlt
安裝步驟參考:https://minikube.sigs.k8s.io/docs/start/
執行以下2個命令,下載並安裝 minikube 命令:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
執行命令 minikube version
檢視版本號:
執行以下命令:
minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.8
image-mirror-country 為指定使用國內源
kubernetes-version 指定部署的版本(最新版相容性坑比較多,所以選擇低版本)
執行成功如下圖所示:
執行命令 minikube status
檢視狀態,結果如下:
[zlt@zlt opt]$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
可直接使用 minikube 自帶的 kubectl 命令。
獲取叢集所有節點(機器):
minikube kubectl get nodes
獲取叢集所有名稱空間:
minikube kubectl get namespaces
檢視叢集所有 Pod:
minikube kubectl -- get pods -A
進入節點伺服器:
minikube ssh
執行節點伺服器命令,例如檢視節點 docker info:
minikube ssh -- docker info
刪除叢集, 刪除 ~/.minikube 目錄快取的檔案:
minikube delete
關閉叢集:
minikube stop
銷燬叢集:
minikube stop && minikube delete
由於 minikube 內建的 kubectl 命令功能不全,所以最好獨立安裝一個 kubectl
用以下命令下載最新發行版:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
安裝 kubectl:
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
檢視版本的詳細資訊:
kubectl version --client --output=yaml
執行以下命令,啟動 dashboard 外掛:
minikube dashboard
叢集外部想要直接存取 dashboard 還需要設定代理才能存取,執行以下命令:
kubectl proxy --port=8001 --address='192.168.28.138' --accept-hosts='^.*'
--port 需要暴露的埠號
--address 伺服器外網IP(宿主機IP)
--accept-hosts 外部存取伺服器的IP(白名單)
這樣就可以在瀏覽器上通過以下地址存取 Kubernetes Dashboard:
http://192.168.28.138:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
掃碼關注有驚喜!