打通k8s、kuboard,實現更便捷的服務管理
前言
最近幾天,我們一直都在和k8s
打交道,前天分享了wsl
搭建k8s
叢集的完整過程,昨天我們補充了一些k8s
的基礎命令,今天我們繼續來介紹k8s
,今天分享的就是我們昨天安利的k8s
的管理工具kuboard
。前面說,kuboard
不能通過代理的方式訪問,所以沒法正常登入,但是今天我又看了下kuboard
的官方文件,發現可以通過docker
的方式執行kuboard
,下面我們就看下具體如何操作。
kuboard
安裝kuboard
我們直接開啟wsl
,啟動docker
服務,然後在docker
中安裝kuboard
,開始前建議你先拉取kuboard
的映象,具體命令如下:
# 拉取kuboard映象 docker pull eipwork/kuboard:v3 # 啟動kuboard sudo docker run -d \ --restart=unless-stopped \ --name=kuboard \ -p 80:80/tcp \ -p 10081:10081/tcp \ -e KUBOARD_ENDPOINT="http://內網ip:80" \ -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \ -v /root/kuboard-data:/data \ eipwork/kuboard:v3
大家注意下面啟動命令中的內網ip
,根據官方文件說明,這個ip
不建議使用 127.0.0.1
或者 localhost
,所以我用的ip
地址是127.0.0.2
,你可以和我保持一致
然後執行上面的指令碼,建議將上面的指令碼儲存成sh
指令碼,方便後續啟動使用,這是我的sh
指令碼內容:
測試
啟動成功後,我們可以在wsl
控制檯通過如下命令測試kuboard
啟動是否成功:
curl 127.0.0.2:80
這裡的127.0.0.2
就是我們前面配置的內網ip
,如果啟動正常,應該會返回這樣的內容:
這時候如果你curl 127.0.0.1:80
也是可以正常返回的,而且返回內容和上面的是一樣的:
到這裡kuboard
windows
的瀏覽器中通過127.0.0.1:80
訪問kuboard
:
預設的登入資訊如下:
- 使用者名稱:
admin
- 密 碼:
Kuboard123
第一次訪問因為我們還沒有新增k8s
叢集資訊,控制檯是沒有任何資料展示的,所以我們要先新增k8s
叢集
新增k8s配置
點選新增叢集,然後填入叢集資訊,點選確認:
然後複製下面的命令,先複製第一行:
在k8s
叢集的叢集上執行:
curl -k 'http://127.0.0.2:80/kuboard-api/cluster/wsl-k8s/kind/KubernetesCluster/wsl-k8s/resource/installAgentToKubernetes?token=BpLnfgDsc2WD8F2qNfHK5a84jjJkwzDk' > kuboard-agent.yaml
這裡其實就是生成了一個探針檔案,然後我們需要把這個探針檔案匯入到k8s
中,在匯入之前我們需要先修改下這個yaml
檔案:
vim kuboard-agent.yaml
在檔案中找到KUBOARD_ENDPOINT
和KUBORAD_AGENT_HOST
,把下面的value
中的ip
改成我們wsl
中docker
的地址,具體如何獲取,後面有說明。
KUBOARD_ENDPOINT
和KUBORAD_AGENT_HOST
有兩處,都要修改,否則在建立探針服務的時候會報錯,建立探針服務的命令如下,也就是頁面上的第二行命令:
kubectl apply -f kuboard-agent.yaml
如果不修改上面的地址,回報下面的錯,也就是獲取TOKEN
的時候,地址訪問不到:
為什麼要改成docker
的地址,因為我們的kuboard
部署在dokcer
環境下,下面我們看下如何檢視wsl
環境下docker
的ip
地址。
檢視wsl的docker內網ip
因為wsl
預設是不支援ifconfig
命令的,我們可以使用下面的命令看下linux
主機的ip
:
ip addr
在顯示結果中,找到docker0
網絡卡,其中的ip
地址就是我們需要的ip
,如下圖,我的docker ip
是172.18.0.1
然後把kuboard-agent.yaml
修改後,重新執行建立命令:
kubectl apply -f kuboard-agent.yaml
再次訪問kuboard
,你會發現我們的叢集已經匯入成功:
這時候,我們在面板的右側選擇管理角色後,就可以進入我們的k8s
叢集管理中心了:
到這裡我們今天的內容就結束了,關於kuboard
的使用,我們下次再說。
總結
今天,我們主要分享瞭如何通過kuboard
來管理我們wsl
環境下的k8s
叢集,過程還算順利,之前無法訪問是因為windows
的網路與k8s
叢集無法通訊,所以我們無法通過瀏覽器直接訪問k8s
中的應用,現在我們把kuboard
部署在docker
中,這個問題自然而然就解決了。至於網路無法互通的問題,我打算通過nginx
來解決,這塊的問題一定要解決,否則我們只能通過代理的方式來訪問,但問題是有些服務還不支援代理訪問,比如kuboard
,這兩天有時間先試下,如果搞定了,到時候再來分享。
kuboard
作為一款k8s
管理工具,單從UI
層面來說,已經比官方提供的board
優秀了很多,當然主要是kuboard
本身就很優秀,截至到目前,這個專案github
已經有10K+
的start
,有興趣的小夥伴可以自己先去了解下,我們後面再將kuboard
的一些基本用法。