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

2023-02-20 12:01:59

一、說明

本文主要介紹在 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/

 

掃碼關注有驚喜!