1. 程式人生 > 其它 >打通k8s、kuboard,實現更便捷的服務管理

打通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_ENDPOINTKUBORAD_AGENT_HOST,把下面的value中的ip改成我們wsldocker的地址,具體如何獲取,後面有說明。

KUBOARD_ENDPOINTKUBORAD_AGENT_HOST有兩處,都要修改,否則在建立探針服務的時候會報錯,建立探針服務的命令如下,也就是頁面上的第二行命令:

kubectl apply -f kuboard-agent.yaml

如果不修改上面的地址,回報下面的錯,也就是獲取TOKEN的時候,地址訪問不到:

為什麼要改成docker的地址,因為我們的kuboard部署在dokcer環境下,下面我們看下如何檢視wsl環境下dockerip地址。

檢視wsl的docker內網ip

因為wsl預設是不支援ifconfig命令的,我們可以使用下面的命令看下linux主機的ip:

ip addr

在顯示結果中,找到docker0網絡卡,其中的ip地址就是我們需要的ip,如下圖,我的docker ip172.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的一些基本用法。