山河已无恙
作者山河已无恙·2023-01-28 10:03
开发工程师·浩鲸科技

K8s:基于命名行终端 & Web 控制台的k8s管理工具 kubebox

字数 4536阅读 1466评论 0赞 1

简单介绍

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 的资源数据依赖于它

┌──[root@vms81.liruilongs.github.io]-[~/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  
┌──[root@vms81.liruilongs.github.io]-[~/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  
┌──[root@vms81.liruilongs.github.io]-[~/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                     38s

安装之后可以正常展示计算资源信息

可以查看CPU,网络,内存,文件系统相关的数据统计。

查看集群事件

集群 web 端安装

在当前的 k8s 集群安装

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

yaml 文件还需要处理下,这里我们把 Ingress 的部分删掉, svc 修改为 type:NodePort ,如果小伙伴的 Ingress 控制器可以用可以忽略

┌──[root@vms81.liruilongs.github.io]-[~/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

创建的资源信息

┌──[root@vms81.liruilongs.github.io]-[~/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           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  
┌──[root@vms81.liruilongs.github.io]-[~/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退出
登录
←,→导航 Kube 配置
pod
Enter选择吊舱/循环容器
r远程shell进入容器
m内存使用情况
cCPU使用率
t网络使用
f文件系统使用
ePod 事件
Shift+e命名空间事件
Ctrl+e集群事件

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广