天天看點

K8s:基于命名行終端/ Web 控制台的管理工具 kubebox

寫在前面

  • kubebox 是一個輕量的 k8s 管理工具,可以基于指令行終端或 Web 端
  • 博文内容涉及:kubebox 不同方式的安裝下載下傳,簡單使用。
  • 如果希望輕量一點,個人很推薦這個工具,輕量,而且使用簡單。
  • 了解不足小夥伴幫忙指正

我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ------赫爾曼·黑塞《德米安》

簡單介紹

Kubebox 是一個類似 k9s 的基于指令行終端的 k8s 管理工具,可以直接下載下傳可執行檔案到 windows 或者 Linux 上通過指令行運作,也可以部署為 Web 端,通過 Kubernetes 叢集中托管的服務提供服務。通過浏覽器通路,終端仿真由 Xterm.js 提供,與 Kubernetes 主 API 的通信由伺服器代理。

kubebox 的特性:

  • 互動式切換上下文
  • 身份驗證支援(承載令牌、基本身份驗證、私鑰/證書、OAuth、OpenID Connect、Amazon EKS、Google Kubernetes Engine、Digital Ocean)
  • 命名空間選擇和 pod 清單觀察
  • 容器日志滾動/觀看
  • 容器資源使用情況(記憶體、CPU、網絡、檔案系統圖表)[ 1 ]
  • 容器遠端執行終端
  • 叢集、命名空間、pod 事件
  • 對象配置編輯器和 CRUD 操作
  • 叢集和節點視圖/監控

用戶端部署需要提供 kubeconfig 檔案的配置(KUBECONFIG環境變量或$HOME/.kube)

下載下傳安裝

桌面終端用戶端安裝

這裡在 Windows 下安裝

PS C:\Program Files>  curl -o kubebox.exe https://github.com/astefanutti/kubebox/releases/download/v0.10.0/kubebox-windows.exe
PS C:\Program Files> .\kubebox.exe
           

需要準備好 kubeconfig 文佳

PS C:\Users\山河已無恙\.kube> ls


    目錄: C:\Users\山河已無恙\.kube


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2023/1/14      7:48                cache
-a----         2023/1/14     10:19           5682 config
PS C:\Users\山河已無恙\.kube> cat .\config
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data:
    .......................
           

下載下傳好可以通過指令行,或者輕按兩下啟動,選擇 Pod 可以檢視 日志資訊。

K8s:基于命名行終端/ Web 控制台的管理工具 kubebox

資源沒有展示,需要安裝 cadvisor 以 DS 的方式

$ kubectl apply -f https://raw.githubusercontent.com/astefanutti/kubebox/master/cadvisor.yaml
           

如果沒有科學上網,需要替換鏡像

- image: docker.io/google/cadvisor:v0.33.0     
           

安裝 cadvisor , kubebox 的資源資料依賴于它

┌──[[email protected]]-[~/ansible/skooner]
└─$kubectl apply  -f cadvisor.yaml
namespace/cadvisor created
serviceaccount/cadvisor created
Warning: policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
podsecuritypolicy.policy/cadvisor created
clusterrole.rbac.authorization.k8s.io/cadvisor created
clusterrolebinding.rbac.authorization.k8s.io/cadvisor created
daemonset.apps/cadvisor created
┌──[[email protected]]-[~/ansible/skooner]
└─$kubectl get pods -n cadvisor
NAME             READY   STATUS    RESTARTS   AGE
cadvisor-256sp   1/1     Running   0          29s
cadvisor-5d42t   1/1     Running   0          29s
cadvisor-6sx5r   1/1     Running   0          29s
cadvisor-k2tv4   1/1     Running   0          29s
cadvisor-szxlj   1/1     Running   0          29s
┌──[[email protected]]-[~/ansible/skooner]
└─$kubectl get all -n cadvisor
NAME                 READY   STATUS    RESTARTS   AGE
pod/cadvisor-256sp   1/1     Running   0          38s
pod/cadvisor-5d42t   1/1     Running   0          38s
pod/cadvisor-6sx5r   1/1     Running   0          38s
pod/cadvisor-k2tv4   1/1     Running   0          38s
pod/cadvisor-szxlj   1/1     Running   0          38s

NAME                      DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/cadvisor   5         5         5       5            5           <none>          38s
           

安裝之後可以正常展示計算資源資訊

K8s:基于命名行終端/ Web 控制台的管理工具 kubebox

可以檢視CPU,網絡,記憶體,檔案系統相關的資料統計。

K8s:基于命名行終端/ Web 控制台的管理工具 kubebox

檢視叢集事件

K8s:基于命名行終端/ Web 控制台的管理工具 kubebox

叢集 web 端安裝

在目前的 k8s 叢集安裝

kubectl apply -f https://raw.github.com/astefanutti/kubebox/master/kubernetes.yaml
           

yaml 檔案還需要處理下,這裡我們把 Ingress 的部分删掉, svc 修改為 type: NodePort ,如果小夥伴的 Ingress 控制器可以用可以忽略

┌──[[email protected]]-[~/ansible/kubebox]
└─$kubectl apply  -f kubernetes-kubebox.yaml
namespace/kubebox created
service/kubebox created
deployment.apps/kubebox created
serviceaccount/kubebox created
clusterrolebinding.rbac.authorization.k8s.io/kubebox created
clusterrole.rbac.authorization.k8s.io/kubebox created
           

建立的資源資訊

┌──[[email protected]]-[~/ansible/kubebox]
└─$kubectl get all -n kubebox
NAME                           READY   STATUS    RESTARTS   AGE
pod/kubebox-6bc5fbdb49-tpn5d   1/1     Running   0          3m28s

NAME              TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/kubebox   NodePort   10.102.154.145   <none>        8080:32138/TCP   3m29s

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kubebox   1/1     1            1           3m28s

NAME                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/kubebox-6bc5fbdb49   1         1         1       3m28s
┌──[[email protected]]-[~/ansible/kubebox]
└─$
           

浏覽器範圍 http://192.168.26.81:32138/

指令空間選擇

K8s:基于命名行終端/ Web 控制台的管理工具 kubebox

可以檢視日志資訊

K8s:基于命名行終端/ Web 控制台的管理工具 kubebox

可以直接到 pod 内部執行遠端 shell

K8s:基于命名行終端/ Web 控制台的管理工具 kubebox

快捷按鍵

按鍵綁定 描述
一般的
l, Ctrl+l 登入
n 更改目前命名空間

[ Shift+] ←, →

[ Alt+] 1, … ,9

導航螢幕

(使用Shift或Alt在 exec 終端内)

Tab, Shift+Tab 在活動螢幕内更改焦點
↑,↓ 導航清單/表單/日志
PgUp,PgDn 向上/向下移動一頁
Enter 選擇項目/送出表格
Esc 關閉模态視窗/取消表單
Ctrl+z 關閉目前螢幕
q, Ctrl+q 退出[ 3 ]
登入
←,→ 導航 Kube 配置
豆莢
Enter 選擇吊艙/循環容器
r 遠端shell進入容器
m 記憶體使用情況
c CPU使用率
t 網絡使用
f 檔案系統使用
e Pod 事件
Shift+e 命名空間事件
Ctrl+e 叢集事件

博文參考

https://github.com/astefanutti/kubebox

繼續閱讀