一、說明
本文主要介紹在 Centos7 環境下基於 Minikube 來快速部署 Kubernetes 單節點集羣環境,並在外部訪問部署在 k8s 上的 dashboard 服務。
二、Minikube 介紹
Minikube
是一個基於go語言開發,易於在本地運行 Kubernetes 的工具,可在你的筆記本電腦上的虛擬機內輕鬆創建單機版 Kubernetes 集羣,對硬件資源沒有太高的要求,非常適合 測試 和 本地開發。
架構圖:
運作原理:
從 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/centos-docker-install.html
docker 的最低建議版本爲 20.10.0 以上
配置阿里雲加速器:https://cr.console.aliyun.com/cn-shenzhen
啓動 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/docs/start/
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/
掃碼關注有驚喜!