
概述Kubernetes
已然是當(dāng)下容器編排領(lǐng)域事實上的標(biāo)準(zhǔn),各大云服務(wù)商都急于推出 Kubernetes 服務(wù),互聯(lián)網(wǎng)公司也紛紛跟進,將自己的應(yīng)用容器化,并使用 Kubernetes 編排,在 Kubernetes 圖形化工具方面,我們已經(jīng)獲得了極大的可選擇空間:
- 各云服務(wù)商自己推出的 Kubernetes 服務(wù)所搭載的管理控制臺,例如 阿里云的 Kubernetes 服務(wù),青云推出的 KubeSphere,其他云服務(wù)商的 CaaS 類服務(wù)
- Kubernetes 官方的圖形管理界面 Kubernetes Dashboard
- 面向企業(yè)私有化部署的 Rancher
什么是 Kuboard
Kuboard 類似于 Kubernetes Dashboard,是一款輕量級產(chǎn)品,按照 Kuboard 的文檔,您可以很快地搭建一套學(xué)習(xí) Kubernetes 用的集群環(huán)境,您也可以在自己已經(jīng)有的集群上輕易地完成 Kuboard 的安裝
安裝 Kuboard
如果您已經(jīng)有了 Kubernetes 集群,只需要一行命令即可安裝 Kuboard:
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
然后訪問您集群中任意節(jié)點的 32567 端口(http://any-of-your-node-ip:32567) ,即可打開 Kuboard 界面,比如我的 Node 節(jié)點 IP 為:http://192.168.113.130:32567
獲取 Token
此 Token 擁有 ClusterAdmin 的權(quán)限,可以執(zhí)行所有操作
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}')
# 輸出如下
Name: kuboard-user-token-dsccx
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: kuboard-user
kubernetes.io/service-account.uid: 08aad1b1-3d1b-4b6f-a379-3e320620a09f
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tZHNjY3giLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMDhhYWQxYjEtM2QxYi00YjZmLWEzNzktM2UzMjA2MjBhMDlmIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.rndy-u-CxDF_yfaubq2HmIb7o04uLI3z7soqTf581VPLFo31dLmQvDPBJXWmFXHAfy0f-msCZjXWU35Cvwvlg3A5LZXgmfsJJi-kwYgpjnsOpFqquezAR6mDDnyXC1NLb8HD4PXgb4wbqnz6-jXlj7T0EXaDK0U5JvNtnkVy8y66mucz6tGnANqLYsHIYPT86P2VTOAWPrnz3pJHtoo_2AMI_y5Pc9RiVH1cro5I5D8Qf8_XDBE4oTsNXaqvWItnjg1O-nhxwsRpe-Szbe9wtFLbqjsO0_ZF5jPT1SdNrkuzoRJ4FpJsjBpbSpLB_DXtc0Y15oJVNZwpmJXKywCXRw
登錄 Kuboard
使用剛才生成的 Token 直接登錄即可
為什么使用 Kuboard
非侵入式
Rancher 為了支持多云管理(MeSos,Docker Swarm,Kubernetes 等),引入了一系列復(fù)雜的概念,又需要新增安裝 Rancher Server、Rancher Agent 等,本來學(xué)習(xí) Kubernetes 已然不堪重負,Rancher 再把多云整合到一起來,無疑又增加了學(xué)習(xí)和使用的復(fù)雜性。如果您只是打算使用 Kubernetes 的話,也許并不需要選擇 Rancher 這樣重量級的產(chǎn)品。Kuboard 僅僅依賴于原生 Kubernetes,可以運行在各種公有云、私有云上,您也可以自己基于物理機、vsphere、vmware 等已經(jīng)有的基礎(chǔ)設(shè)施搭建 Kubernetes,輕松實現(xiàn)現(xiàn)有 Infrastructure 的容器化改造
名稱空間
在 Kuboard 中,名稱空間的展示形式以微服務(wù)參考分層架構(gòu)的形式,將所有的微服務(wù)分為如下幾層:
- 展現(xiàn)層
- 終端用戶訪問的 Web 應(yīng)用
- API 網(wǎng)關(guān)層
- Spring Cloud Gateway / Zuul / Kong 等接口網(wǎng)關(guān)
- 微服務(wù)層
- Spring Boot 微服務(wù),或 PHP / Python / Go 實現(xiàn)的微服務(wù)
- 持久層
- MySQL 數(shù)據(jù)庫等(開發(fā)及測試環(huán)境里,將 MySQL 部署于 Kubernetes 可以極大地降低環(huán)境維護的任務(wù)量)
- 中間件層
- 消息隊列
- 服務(wù)注冊 Eureka / Zookeeper / Consul 等
- 監(jiān)控層
- Prometheus + Grafana
- Pinpooint 等
更為貼心的,當(dāng)某一個工作負載存在部署方面的問題時, Kuboard 將以紅色高亮出該工作負載,并配有合適的方式輔助用戶定位錯誤信息
無需手寫 Yaml
學(xué)習(xí) Kubernetes 時,需要花費許多的時間,在理解一個概念之后,模仿著寫一個 yaml 文件,再使用 kubectl 應(yīng)用該文件,使用 Kuboard 提供的工作負載編輯器,可以直觀的完成應(yīng)用的部署
應(yīng)用升級
Kuboard 提供批量修改容器鏡像版本的功能,輕松升級應(yīng)用程序的版本