一、說明
本文主要介紹在 Centos7 環境下基於 Minikube 來快速部署 Kubernetes 單節點叢集環境,並在瀏覽器上訪問部署在 k8s 上的 dashboard 服務。
二、Minikube 介紹
Minikube
是一個基於go語言開發,易於在本地執行 Kubernetes 的工具,可在你的膝上型電腦上的虛擬機器內輕鬆建立單機版 Kubernetes 叢集,對硬體資源沒有太高的要求,非常適合 測試 和 本地開發。
官方文件:https://minikube.sigs.k8s.io/...
架構圖:
運作原理:
從 Minikube 的架構中可以看出 master 節點與其它節點合為一體,而整體則透過宿主機上的 kubectl 進行管理,這樣可以更加 節省資源。
簡單來說就是,使用者使用 Minikube CLI 管理虛擬機器上的 Kubernetes 環境,比如:啟動,停止,刪除,獲取狀態等。一旦 Minikube 虛擬機器啟動,使用者就可以使用熟悉的 Kubectl CLI 在 Kubernetes 叢集上執行操作。
三、Minikube安裝
3.1. 系統要求
- CUP:2核以上
- 記憶體:2GB以上
- 硬碟:需要20G
- 網路:能連因特網(需要下載安裝包),
- 容器:需要先安裝Docker或其他容器。
3.2. 安裝前準備
3.2.1. 安裝 Docker
安裝步驟參考:https://www.runoob.com/docker...
docker 的最低建議版本為 20.10.0 以上
配置阿里雲加速器:https://cr.console.aliyun.com...
啟動 docker:
systemctl start docker
systemctl enable docker.service
3.2.2. 建立新使用者
- 操作 minikube 需要一個具有 root 許可權的使用者(非root)
需要將該使用者新增進入 docker 使用者組
新增該使用者至 docker 使用者組:
sudo gpasswd -a 使用者名稱 docker
更新 docker 使用者組:
newgrp docker
3.3. 部署
切換新建立的使用者來操作 minikube,我這裡建立的使用者為 zlt
su zlt
安裝步驟參考:https://minikube.sigs.k8s.io/...
3.3.1. 安裝命令
執行以下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
檢視版本號:
3.3.2. 啟動叢集
執行以下命令:
minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.8
- image-mirror-country 為指定使用國內源
- kubernetes-version 指定部署的版本(最新版相容性坑比較多,所以選擇低版本)
執行成功如下圖所示:
3.3.3. 驗證
執行命令 minikube status
檢視狀態,結果如下:
[zlt@zlt opt]$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
3.3.4. 檢視叢集狀態
可直接使用 minikube 自帶的 kubectl 命令。
獲取叢集所有節點(機器):
minikube kubectl get nodes
獲取叢集所有名稱空間:
minikube kubectl get namespaces
檢視叢集所有 Pod:
minikube kubectl -- get pods -A
3.3.5. Minikube 常用命令
進入節點伺服器:
minikube ssh
執行節點伺服器命令,例如檢視節點 docker info:
minikube ssh -- docker info
刪除叢集, 刪除 ~/.minikube 目錄快取的檔案:
minikube delete
關閉叢集:
minikube stop
銷燬叢集:
minikube stop && minikube delete
四、安裝 kubectl
由於 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
執行以下命令,啟動 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/
掃碼關注有驚喜!