基於minikube快速搭建單節點環境

語言: CN / TW / HK

一、説明

本文主要介紹在 Centos7 環境下基於 Minikube 來快速部署 Kubernetes 單節點集羣環境,並在外部訪問部署在 k8s 上的 dashboard 服務。

二、Minikube 介紹

Minikube 是一個基於go語言開發,易於在本地運行 Kubernetes 的工具,可在你的筆記本電腦上的虛擬機內輕鬆創建單機版 Kubernetes 集羣,對硬件資源沒有太高的要求,非常適合 測試本地開發

官方文檔:https://minikube.sigs.k8s.io/docs/

架構圖:

運作原理:

從 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/

 

掃碼關注有驚喜!

file