作者:HaoKe
作者地址: http://github.com/KeHaohaoke
我的同事寫了一篇英文的博客,關(guān)于如何使用 minikube 搭建本地的 k8s 環(huán)境的样屠。
我很喜歡這篇文章吃嘿,鏈接在這里:minikube-k8s。
該文章和本文并不是一對一的翻譯的啡专。有各自不同的角度去講述,建議你去閱讀一下該篇文章,會有不一樣的收獲。
相關(guān)背景: 在日常開發(fā)測試中佣耐,我們驗證和k8s有關(guān)的功能的時候,并不需要生產(chǎn)環(huán)境規(guī)格的k8s集群唧龄。
比如(3 master+3 node)兼砖,這種規(guī)格的集群,我們個人一般不具有這種配置既棺,也沒有必要為了本地測試開發(fā)的驗證而去專門搭建這樣的集群(除非有特殊需要)讽挟。
本文則介紹一種利用 minikube 來搭建 k8s 本地開發(fā)測試環(huán)境的方法。
本文是在 MacOS 并且是 Intel 芯片的機(jī)器上進(jìn)行安裝 minikube 的丸冕。并且在安裝中耽梅,指定了阿里云鏡像,無須進(jìn)行特別的上網(wǎng)方式的設(shè)置胖烛,不會有 gcr.io 下載慢或者無法下載而必須使用一些特殊的上網(wǎng)設(shè)置方法的問題眼姐。且由于鏡像在國內(nèi),下載速度也很快洪己。
概要:本文講述了在 MacOS Intel 機(jī)器上:
使用 minikube 分別以 vmware 作為 driver 和使用 docker 作為 driver 來安裝 one node 的 k8s妥凳。
minikube 安裝準(zhǔn)備
工欲善其事竟贯,必先利其器答捕。我們先來下載 minikube:
shell
brew install minikube
如果你的 Mac 上沒有安裝 brew,請參考:Homebrew官網(wǎng)進(jìn)行安裝屑那。
接下來拱镐,我們還要下載 kubectl:
shell
brew install kubectl
在 MacOS(intel 芯片)上艘款,minikube 支持多種不同的 driver:
- Docker
- VirtualBox
- VMWare Fusion
- HyperKit
接下來,我們會采用兩種安裝方式:一種使用 VM: Vmware Fusion沃琅, 另外還有 Docker 兩種方式來進(jìn)行哗咆。
使用 VMWare Fusion 安裝
在此之前,需要先在 MacOS 上安裝好 VMWare Fusion益眉,安裝的步驟也比較簡單晌柬,遵從 Vmware 的文檔來就可以,請參照:vmware-mac-downloads郭脂。
安裝好 Vmware 之后年碘,需要設(shè)置 path:
根據(jù)你使用的是 zsh 還是 bash,分別在 .zshrc 或者 .bashrc 里加上:(否則展鸡,進(jìn)行下面的 minikube start 的時候屿衅,會報錯,提示找不到 vmware)莹弊。
shell
export PATH=$PATH:"/Applications/Vware Fusion.app/Contents/Library"
當(dāng)你在 Vmware 里安裝了某個虛擬機(jī)涤久,運(yùn)行 vmrun list
命令會看到類似下面這樣的輸出。
其中忍弛,下面的輸出中含有 minikube 是我在 minikube 已經(jīng)運(yùn)行之后使用這條命令的緣故响迂。
shell
vmrun list
這條命令的輸出如下:
shell
Total running VMs: 2
/Users/kehao/.minikube/machines/minikube/minikube.vmx
/System/Volumes/Data/DigitalResources/VirtualMachine/MyCentOS7.vmwarevm/MyCentOS7.vmx
安裝和啟動-vmware driver
shell
minikube start --driver=vmware --memory=2048 --cpus=2 --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
特別說明:在這里,我使用了阿里云的鏡像细疚。如果沒有缺省該參數(shù)栓拜,即不指定 image-repository 參數(shù)的話,會默認(rèn)從gcr.io 去下載鏡像惠昔,該地址由于一些網(wǎng)絡(luò)原因幕与,是會被 ban 掉的。
其實镇防,也是有方法可以去 gcr.io 下載的啦鸣,但這里就交給讀者自己研究了。
但用指定阿里云的鏡像的方法来氧,會在下載速度上快很多诫给,即使讀者研究了方法去從 gcr.io 下載 image,其速度也不是從阿里云下載可比的啦扬。
作為開發(fā)測試環(huán)境中狂,我們希望的是快速完成搭建并使用,倒騰具體的網(wǎng)絡(luò)下載相關(guān)的配置可以放到閑余時間研究扑毡。
很快胃榕,就會看到安裝且啟動完畢:
比較有趣的是,可以看到瞄摊,minikube 使用了很多 emoji 表情表示了每個安裝階段的狀態(tài)勋又。這可能也是程序員可愛的一面苦掘,在其他的技術(shù)產(chǎn)品上,比如 github楔壤,也有很多 emoji 表情在使用鹤啡,讀者有興趣可以自己去找找。
啟動 dashboard
也是很簡單的一條命令:
shell
minikube dashboard &
說明:加上&是為了保持后臺啟動蹲嚣,以免關(guān)掉了執(zhí)行這個命令的 session 導(dǎo)致相關(guān)進(jìn)程被殺掉递瑰,也可以說防止為了保持 dashboard 一直運(yùn)行,不得不長期開著一個 session隙畜。
這條命令會自動拉起瀏覽器打開上圖所示鏈接泣矛,會看到 k8s 的 dashboard。
使用 docker driver 安裝
在更換 driver 之前禾蚕,把原來的 minikube stop 并 delete 掉您朽。
嗯,還是簡單的一條命令换淆。哈哈哗总,其實是兩條啦:
shell
minikube stop
shell
minikube delete
在使用 docker 作為 driver 之前,要確認(rèn) MacOS 上已經(jīng)安裝好了 docker desktop倍试。
安裝也很簡單:
遵循這里的 guide 去做就 OK 了讯屈。macos-docker
在這里也去說明一下安裝方法:
- 去 docker 官網(wǎng)的鏈接,找到你的機(jī)器對應(yīng)的安裝县习,點(diǎn)擊下載涮母。
docker-desktop-install
- 之后,就和安裝其他的 MacOS 軟件一樣躁愿,都是拖拽安裝的叛本。
如果有喜歡命令行安裝的朋友,可以看這個鏈接 install-docker-desktop-from-command-line
安裝完成之后彤钟,就可以啟動 docker desktop来候。
Tips: 如果 Mac 配置不高,比如我的 Mac逸雹,買的比較早一些营搅,可以在啟動 docker desktop 之前,設(shè)置 docker desktop 里的內(nèi)存小一點(diǎn)梆砸。
修改 docker desktop 的內(nèi)存的步驟:在 MAC 右上角的狀態(tài)欄找到 docker desktop->Preferences-> 按需修改內(nèi)存和 CPU 的設(shè)置转质。
- 啟動了 docker desktop 之后,就可以用 docker driver 的方式用 minikube 來安裝 k8s 了帖世。
也很簡單休蟹,就是一條命令:)
shell
minikube start --memory=2048 --cpus=2 --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
同使用 vmware driver 一樣,我們 start 完成之后,需要啟動 dashboard鸡挠。
同樣也會自動拉起瀏覽器打開 dashboard 的 url。
查看k8s
這就和普通的 k8s 沒什么兩樣了, 使用相應(yīng)的命令查看即可搬男。
我在使用下面的命令獲取 k8s 的 nodes 的時拣展,運(yùn)行的環(huán)境上只有 minikube,你運(yùn)行的結(jié)果視你自己的環(huán)境缔逛,可能與下面的運(yùn)行結(jié)果有所不同(可能不止一個 node)
shell
kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 15m v1.23.3
其他的 driver 的安裝支持
在MacOS的darwin amd64(即 intel 芯片)上备埃,還支持 VirtualBox 作為 driver 以及 HyperKit 作為 driver。
稍微需要注意的則是傳參的時候褐奴,應(yīng)該分別指定為--driver=virtualbox
和--driver=hyperkit
按脚,而不是用這兩者的駝峰命名。
至于這兩者對應(yīng)的虛擬機(jī)的安裝敦冬,讀者可以自己嘗試去安裝并完成整個流程辅搬,自己動手去嘗試。