Kubernetes - minikube (輕鬆建立本地端的 K8S 集群工具) 安裝教學
minikube 是一個輕量級的工具,可以讓開發者在本機上輕易架設一個 Kubernetes Cluster,透過單一 Cluster 讓我們可以在本機上學習各種指令操作。minikube 運作原理就是會在本機上建立一個 virtual machine,並且在這 VM 建立一個 signle-node Kubernetes Cluster,但通常不會把 minikube 用在實際生產環境上,不過如果是開發環境測試就很方便了!
Windows 安裝教學
先來講最麻煩的 Windows 的安裝教學,我真的覺得這種工具對於 Windows 安裝真的很麻煩,本身支援度可能不是很好,再來常常會遇到潛在地 Bug,所以我是建議如果可以的話,可以另外有一台 Linux 的主機來練習。
此外,由於前面說過 minikube 會需要建立一個 VM,因此這涉及兩種方法:
- 需要額外下載 Virtualbox
- 本身是 Windows 專業版,有支援 Hyper-V 的功能
也就是說如果你的 Windows10 並非是專業版,因此就不支援 Hyper-V 的功能,因此就需要下載 minikube 前要先去下載 Virtualbox,而 minikube 開啟後就會自動在你的 Virtualbox 建立好 VM。
而如果有 Windows10 專業版,就會支援原生地 Hyper-V 的功能,就不需要額外安裝 Virtualbox。只要開啟 Hyper-V 功能即可~這道理就跟安裝 Docker 在 Windows 是一定的道理。
可以參考我安裝 Docker 的教學文章:Docker 介紹及安裝教學,裡面有教到如何開啟 Hyper-V 功能。同時我也是建議如果沒有先學會 Docker 就來學 K8S 是不好的,因為要知道 K8S 出來的原因就是能夠有效地幫我們管理 Docker 的 Container。
此外,minikube 的 VM 預設佔的 Ram 容量是 4096,因此先確保電腦是否有足夠的 Ram,因為如果設過低速度會很慢。
下載 minikube 官方提供的 Windows exe 檔案
GitHub Release 網址:https://github.com/kubernetes/minikube/releases
還好至少有提供 exe 檔案來做圖象化的安裝:
選擇最新版的 minikube-windows-amd64.exe 下載即可。
安裝步驟
安裝過程很簡單,所以就不多加講解。
啟動 minikube
在啟動之前,請一定要用管理員權限開啟 cmd!!
不然會有錯誤,而這個錯誤會讓你看不出來是沒有管理員權限的問題,所以會繞了很多圈!!
1 | minikube start --driver=hyperv |
之所以要加 **–driver-hyperv**,是因為 Windows 的 minikube 預設是採用 Virtualbox 來啟動,因此這邊需要指定是採用 hyperv。
如果沒有加的話,會出現錯誤。
如果每次啟動不想要指定 driver,可以添加以下指令:
1 | minikube config set driver hyperv |
執行指令後,由於會需要先載 iso 檔案,畢竟需要建立一個 VM,跑完後會出現以下訊息代表成功:
1 | ![p7](/p7.jpg)* minikube v1.8.1 on Microsoft Windows 10 Pro 10.0.18362 Build 18362 |
這時候如果你開啟 Hyper-V 管理員會發現,多了一個 VM:
一些基本指令介紹
列出 minikube 的狀態
1 | minikube status |
停止 minikube 的運行
1 | minikube stop |
刪除 minikube
1 | minikube delete |
假設執行後,出現以下問題:
X Unable to remove machine directory: %v: remove C:\Users\kenny.minikube\machines\minikube\minikube\Snapshots\9EDA8289-F9ED-4799-BFAC-3D6BD6B38E88.vmcx: The process cannot access the file because it is being used by another process.
可以先透過 Hyper-V 管理員,手動將 minikube 的虛擬機刪除即可,接著再去他上面所說的路徑將 \.minikube 資料夾整個刪掉即可。
ssh 進入 minikube 中
1 | minikube ssh |
查詢 minikube 對外的 IP
事實上這個就是 VM 的 IP,因此最簡單的 K8S 的應用是,在 minikube 佈署 Pod,Pod 的 port 與 minikube VM 的 port 互相對應,最後再透過訪問 minikube 對外的 ip 來取得 pod 裡面的 container 服務。
1 | minikube ip |
透過 minikube 提供的瀏覽器 GUI 查看 Cluster 狀況
這個可以讓你知道目前 Cluster 的所有狀況,包括自己練習佈署上去的 pod、service、deployment 等等元件都可以看的到。
1 | minikube dashboard |
由於我之前開啟 minikube 遇到了許多坑,但是之前錯誤紀錄的文章沒有存到 QQ,所以忘記錯誤訊息,但如果有按照我上面的步驟應該是沒問題。另外建議,如果採用網路上的方法修正後,在 start minikube 還是出錯的話,建議先刪除 minikube VM,在重新 start。
Ubuntu 安裝教學
Linux 安裝的話就是簡單快速又方便!沒遇到 bug~
安裝 minikube
1 | curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ |
這樣預設會安裝最新版本的 minikube。
檢查系統是否支持 virtualization
1 | egrep -q 'vmx|svm' /proc/cpuinfo && echo yes || echo no |
如果秀出 yes,那就恭喜你不需要做其他設定。
如果 No,則有許多方式去解決,就比較麻煩了,可參考官方教學:
https://minikube.sigs.k8s.io/docs/start/linux/
修改 minikube 的預設 Ram
1 | minikube config set memory 4096 |
因為預設的只有 2GB,因此建議給到 4GB。
而開啟的 minikube 跟其他的指令就如同在 Windows 一樣。
總結
minikube 安裝好,以及 kubectl 也安裝好,就可以透過 kubectl 對 minikube 進行操作。之後再出文章好好介紹整個 K8S 的架構,以及如何用 minikube 示範應用。
最後最後!請聽我一言!
如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!