寫在前面
- 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 可以檢視 日志資訊。
資源沒有展示,需要安裝 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
安裝之後可以正常展示計算資源資訊
可以檢視CPU,網絡,記憶體,檔案系統相關的資料統計。
檢視叢集事件
叢集 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/
指令空間選擇
可以檢視日志資訊
可以直接到 pod 内部執行遠端 shell
快捷按鍵
按鍵綁定 | 描述 |
一般的 | |
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