1

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

 1 year ago
source link: https://liruilongs.github.io/2023/01/21/%E5%BE%85%E5%8F%91%E5%B8%83/%E4%BA%8C%E6%9C%9F/%E5%85%B3%E4%BA%8EKubernetes-%E7%BB%88%E7%AB%AF-Web-%E6%8E%A7%E5%88%B6%E5%8F%B0-kubebox-%E7%9A%84%E4%B8%80%E4%BA%9B%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%86/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Kubernetes:基于命名行终端/ 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 可以查看 日志信息。

在这里插入图片描述

在这里插入图片描述

资源没有展示,需要安装 cadvisorDS 的方式

$ 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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK