簡單三分鐘,本地搭建k8s

使用 minikube 在本地搭建 k8s 已經比以前要簡單很多了。本文,我們通過簡短的三分鐘來重現一下在本地搭建 k8s 實驗環境的步驟。

下載 Minikube

首先,你可能會考慮從官網下載 minikube 然後進行安裝,但是這樣實際上可以預知的是,在後續的使用中你可能會到由於網絡的特殊性,無法正常地啓動。

因此,需要使用一些特殊的辦法來解決這個問題。

這裏,我們直接使用由阿里雲團隊針對中國大陸網絡環境進行優化的版本。

Mac OSX

curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Linux

curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Windows

https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-windows-amd64.exe

下載 minikube-windows-amd64.exe 文件,並重命名爲 minikube.exe

下面我們都將圍繞 windows 版本進行說明和演示。

雖然官方版本已經支持中國區的鏡像加速,但是截至筆者自己發文的時候,還是存在各種問題。本着人的生命是有限的基本原則,我們可以先跳過這些惱人的問題。

安裝 Minikube

windows 版本只要下載到特定文件夾,然後將這個文件夾,加入到 PATH 當中即可。這樣以後無論在那個路徑下都可以正常運行 minikube 命令。

啓動 Hyper-v

雖然最新的 minikube 對於 Docker 和 Hyper-v 都是首選驅動,但是 Docker 無法使用 ingress 插件,因此考慮使用 Hyper-v。

使用管理員權限運行以下腳本來啓用 Hyper-v:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

啓用後需要重新啓動操作系統才能生效。

配置 Minikube

使用管理員權限打開一個控制檯,並運行以下命令,來設置驅動、CPU 和內存:

minikube config set driver hyperv
minikube config set cpus 8
minikube config set memory 12288

CPU 和內存可以按照你的實際情況進行設置。其中內存的單位爲 MB,12288 即表示 12G。

在 Hyper-v 中,這實際上就是虛擬機的 CPU 和內存。

啓動 k8s

使用管理員權限打開一個控制檯,並運行以下命令,來啓動一個 k8s 節點:

minikube start

運行這段命令後,經過一段時間的等待,你應該會得到如下所示的輸出內容,這就表示你已經正確啓動了一個 k8s 節點:

PS C:/Users/Administrator> minikube start
😄  Microsoft Windows 10 Enterprise 10.0.19042 Build 19042 上的 minikube v1.20.0
✨  根據用戶配置使用 hyperv 驅動程序
👍  Starting control plane node minikube in cluster minikube
🔥  Creating hyperv VM (CPUs=8, Memory=12288MB, Disk=20000MB) ...
🐳  正在 Docker 20.10.6 中準備 Kubernetes v1.20.2…
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  Verifying Kubernetes components...
    ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5 (global image repository)
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

啓用 dashboard 看看集羣

運行以下命令:

minikube dashboard

稍等片刻,瀏覽器便會打開 dashboard,你就可以看到集羣的基本情況。

dashboard

使用 lens 查看集羣

除了使用原生的 dashboard,你也可以使用 lens 來查看這個集羣的情況。

通過 https://k8slens.dev/ 下載和安裝最新的 lens 版本。

然後打開之後,便可以通過 lens 來查看集羣的基本情況。

lens1
lens2
lens3

安裝 helm

爲了驗證這個集羣的基礎功能,我們嘗試使用 helm 來安裝一個簡單的應用

首先,需要安裝 helm。helm 和 minikube 一樣,是一個單文件的命令行程序。可以直接從 Github 上下載。

或者也可以通過以下地址加速下載:

https://www.newbe.pro/Mirrors/Mirrors-Helm/

下載,設置好 PATH 之後,我們就可以在控制檯中調用 helm:

PS C:/Users/Administrator> helm version
version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"clean", GoVersion:"go1.16.5"}

添加 bitnami 爲 helm 包源

helm 實際上是一個包安裝器,這個包被稱爲 charts,每個 chart 實質上就是一組 k8s 資源的定義。

因此,和軟件安裝一樣,想要安裝一個軟件,首先需要選擇一個軟件包源來下載這個軟件包。

bitnami 是 VMware 提供的一個包源,其中包含了一些已經被用於產線的常用中間件包,比如 mysql,elasticsearch,mongodb,wordpress 等等。

通過以下命令,便可以添加這個包源。

helm repo add bitnami https://charts.bitnami.com/bitnami

添加好之後,可以使用以下命令來查看已經添加的所有包源:

PS C:/Users/Administrator> helm repo list
NAME    URL
bitnami https://charts.bitnami.com/bitnami
dapr    https://dapr.github.io/helm-charts/

使用 helm 安裝一個 nginx

這裏我們以安裝一個簡單的 nginx 爲例,演示一下如何安裝 helm chart 包。

通過運行以下命令,便可以從 bitnami 上安裝一個 nginx 到集羣中:

helm install my-release bitnami/nginx

同時,如果你前面安裝了 lens, 那麼也可以通過左側的 APP/Charts 來安裝:

nginx

安裝好之後,便可以使用 k8s 的 port-forward 功能來查看安裝結果。當然,在 lens 上,只需要一次鼠標點擊可以:

nginx-port-forward
view nginx

移除安裝的 helm chart

通過 lens app/release 菜單,你可以非常簡單的移除剛剛安裝的 chart。

remove release

停止和移除 minikube 節點

如果你想停止當前 minikube 節點以節約資源,可以運行以下命令:

minikube stop

如果你想移除安裝的 minikube 節點(hyper-v 虛擬機),可以運行以下命令:

minikube delete --all

本篇小結

通過簡單的 minikube 、 helm 和 lens, 你便可以擁有一個非常簡單的 k8s 測試環境。

一切就是這樣的輕鬆愉快。

相關鏈接

af 開頭的鏈接爲 af code,你可以通過 https://af.newbe.pro/ 來了解如何使用此鏈接進行快速收藏。

阿里雲版本 minikub

https://github.com/AliyunContainerService/minikube

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL0FsaXl1bkNvbnRhaW5lclNlcnZpY2UvbWluaWt1YmUiLCJ0IjoiQWxpeXVuQ29udGFpbmVyU2VydmljZS9taW5pa3ViZSIsInRzIjpbIms4cyIsIm1pbmlrdWJlIiwiXHU5NjNGXHU5MUNDXHU0RTkxIl19

Github minikub

https://github.com/kubernetes/minikube

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvbWluaWt1YmUiLCJ0Ijoia3ViZXJuZXRlcy9taW5pa3ViZTogUnVuIEt1YmVybmV0ZXMgbG9jYWxseSIsInRzIjpbImdpdGh1YiIsIm1pbmlrdWJlIl19

Github minikub

https://github.com/kubernetes/minikube

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvbWluaWt1YmUiLCJ0Ijoia3ViZXJuZXRlcy9taW5pa3ViZTogUnVuIEt1YmVybmV0ZXMgbG9jYWxseSIsInRzIjpbImdpdGh1YiIsIm1pbmlrdWJlIl19

Github helm

https://github.com/helm/helm

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2hlbG0vaGVsbSIsInQiOiJoZWxtL2hlbG06IFRoZSBLdWJlcm5ldGVzIFBhY2thZ2UgTWFuYWdlciIsInRzIjpbImdpdGh1YiIsImhlbG0iXX0=

Github helm 加速下載

https://www.newbe.pro/Mirrors/Mirrors-Helm/

af://1eyJ1IjoiaHR0cHM6Ly93d3cubmV3YmUucHJvL01pcnJvcnMvTWlycm9ycy1IZWxtLyIsInQiOiJIZWxtIFx1NTZGRFx1NTE4NVx1NTJBMFx1OTAxRlx1NEUwQlx1OEY3RCB8IG5ld2JlIiwidHMiOlsiaGVsbSIsIm1pcnJvciJdfQ==

Github bitnami charts

https://github.com/bitnami/charts

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2JpdG5hbWkvY2hhcnRzIiwidCI6ImJpdG5hbWkvY2hhcnRzOiBIZWxtIENoYXJ0cyIsInRzIjpbImJpdG5hbWkiLCJjaGFydHMiLCJoZWxtIl19



本文分享自微信公衆號 - newbe技術專欄(newbe36524)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章