8 个稳定版本
1.5.3 | 2024 年 7 月 23 日 |
---|---|
1.5.2 | 2024 年 5 月 16 日 |
1.5.1 | 2024 年 4 月 23 日 |
1.5.0 | 2024 年 1 月 14 日 |
1.3.0 | 2023 年 6 月 10 日 |
#65 in 命令行界面
每月 150 次下载
1MB
26K SLoC
kubetui
库贝图是一个为监控 Kubernetes 资源而设计的终端用户界面 (TUI) 工具。
它提供了一个易于使用的界面,让开发人员和运维人员可以访问有关其应用程序和基础设施的重要信息。
目录
演示慢速版本
功能
库贝图提供了以下功能,以帮助您监控和管理您的 Kubernetes 资源
- Pod 列表和容器日志:轻松查看 pod 列表及其容器日志。
- ConfigMap 和 Secret 监控:监控 ConfigMap 和 secret,并解码其数据。
- 网络相关资源:探索与网络相关的资源及其描述。
- 事件监控:实时查看 Kubernetes 事件。
- 特定资源监控(列表 / YAML):以列表或 YAML 格式查看特定资源。
- 命名空间多选:同时选择和查看多个命名空间。
- 上下文选择:更改您要操作的平台 Kubernetes 上下文。
- 剪贴板支持(文本复制):使用鼠标操作方便地复制文本。
- 鼠标事件支持:利用鼠标事件以获得更流畅的用户体验。
- 搜索功能:轻松在界面内搜索特定关键词。
- 项目过滤:基于多个用空格分隔的关键词进行项目过滤。
总之,库贝图是一个强大的工具,旨在以安全有效的方式访问和监控您的 Kubernetes 资源。凭借其用户友好的界面和全面的功能,它简化了管理应用程序和基础设施的过程。
安装
要安装kubetui,您可以采用以下方法
Homebrew在macOS和Linux上
Kubetui在Homebrew上可用,它是macOS和Linux的包管理器。通过运行以下命令进行安装
brew install kubetui
Scoop在Windows上
如果您使用的是Windows Scoop,您可以添加必要的存储桶,并使用以下命令安装kubetui
# Add the 'extras' bucket for vcredist2022
scoop bucket add extras
scoop bucket add <bucket> https://github.com/sarub0b0/scoop-bucket
scoop install <bucket>/kubetui
WinGet在Windows上
如果您更喜欢使用WinGet,即Windows包管理器,可以使用以下命令安装kubetui
winget install kubetui
Chocolatey在Windows上
Kubetui在Chocolatey上可用,它是Windows的包管理器。通过运行以下命令进行安装
choco install kubetui
openSUSE Tumbleweed
对于openSUSE Tumbleweed,您可以使用zypper
包管理器安装kubetui。运行以下命令进行安装
zypper install kubetui
使用 cargo install
Kubetui在crates.io上可用,这是官方的Rust包注册处。运行以下命令进行安装
cargo install kubetui
下载二进制文件
或者,您可以从GitHub发行版页面下载与您的操作系统匹配的预编译二进制文件。下载后,您可以直接运行二进制文件,无需任何额外的安装步骤。
选择适合您需求和偏好的方法。
用法
kubetui
$ kubetui -h
kubernetes terminal user interface
Usage: kubetui [OPTIONS]
Options:
-h, --help Print help information
-V, --version Print version information
-A, --all-namespaces[=<true|false>] Select all namespaces [default: false]
-c, --context <CONTEXT> Context
-C, --kubeconfig <KUBECONFIG> kubeconfig path
-l, --logging Logging
-n, --namespaces <NAMESPACES> Namespaces (e.g. -n val1,val2,val3 | -n val1 -n val2 -n val3)
-s, --split-mode <v|h> Window split mode [possible values: v, h, vertical, horizontal]
日志查询
日志查询功能使您能够从多个Pod及其容器中检索日志。使用正则表达式、选择器和指定的资源,您可以精确定义日志检索的目标。此功能还允许您使用正则表达式过滤日志,提供强大且灵活的日志查询体验。
用法示例
pod:app container:nginx log:401
在日志查询表单中输入?
或help
时,将显示帮助弹出窗口。
支持的查询
查询 | 别名 | 描述 |
---|---|---|
pod:<regex> | pods, po, p | 在日志检索目标中包含与正则表达式匹配的Pod。 |
!pod:<regex> | !pods, !po, !p | 从日志检索目标中排除与正则表达式匹配的Pod。可以定义多次。 |
container:<regex> | containers, co, c | 在日志检索目标中包含与正则表达式匹配的容器。 |
!container:<regex> | !containers, !co, !c | 从日志检索目标中排除与正则表达式匹配的容器。可以定义多次。 |
log:<regex> | logs, lo, l | 检索与正则表达式匹配的日志。可以定义多次。 |
!log:<regex> | !logs, !lo, !l | 从日志检索目标中排除与正则表达式匹配的日志。可以定义多次。 |
label:<selector> | labels | 在日志检索目标中包含标签与选择器匹配的Pod。不能与资源一起指定。 |
field:<selector> | fields | 在日志检索目标中包含字段与选择器匹配的Pod。 |
<resource>/<name> | 在日志检索目标中包含属于指定资源的Pod。 |
支持的资源
资源 | 别名 |
---|---|
pod | po, pods |
replicaset | rs, replicasets |
deployment | deploy, deployments |
statefulset | sts, statefulsets |
daemonset | ds, daemonsets |
job | jobs |
service | svc, services |
查询字符串转义
当查询中包含空格,如 <regex>
或 <selector>
时,请用 "
或 '
将字符串括起来。例如
pod:"a b"
label:"environment in (production, qa)"
如果在引号字符串中使用 "
、'
或 \
,请用 \
转义。例如
pod:"a\\b"
查询语法
**Lexer and Parser**
LOG_QUERIES = QUERY ( " "+ QUERY )*
QUERY = POD
| EXCLUDE_POD
| CONTAINER
| EXCLUDE_CONTAINER
| LOG
| EXCLUDE_LOG
| LABEL
| FIELD
| SPECIFIED_RESOURCE
POD = ( "pods" | "pod" | "po" | "p" ) ":" REGEX
EXCLUDE_POD = "!" POD
CONTAINER = ( "containers" | "container" | "co" | "c" ) ":" REGEX
EXCLUDE_CONTAINER = "!" CONTAINER
LOG = ( "logs" | "log" | "lo" | "l" ) ":" REGEX
EXCLUDE_LOG = "!" LOG
REGEX = QUOTED_STRING | UNQUOTED_STRING
LABEL = ( "labels" | "label" ) ":" SELECTOR
FIELD = ( "fields" | "field" ) ":" SELECTOR
SELECTOR = QUOTED_STRING | UNQUOTED_STRING
SPECIFIED_RESOURCE = RESOURCE "/" NAME
RESOURCE = ( "pods" | "pod" | "po" )
| ( "replicasets" | "replicaset" | "rs" )
| ( "deployments" | "deployment" | "deploy" )
| ( "statefulsets" | "statefulset" | "sts" )
| ( "daemonsets" | "daemonset" | "ds" )
| ( "services" | "service" | "svc" )
| ( "jobs" | "job" )
NAME = ALPHANUMERIC ( ALPHANUMERIC | "-" | "." )* ALPHANUMERIC
UNQUOTED_STRING = ~['" \t\r\n] ( ~[ \t\r\n] )* // without spaces
QUOTED_STRING = "\"" ESCAPED_STRING "\"" | "'" ESCAPED_STRING "'"
ESCAPED_STRING = ( ESCAPED_CHAR | ~[\"'] )\*
ESCAPED_CHAR = "\\" | "\"" | "\'"
键绑定
通用
键 | 描述 |
---|---|
h、? | 打开帮助弹出窗口 |
输入 | 选择一个项目并触发事件 |
n | 打开选择命名空间的弹出窗口 |
N | 打开选择多个命名空间的弹出窗口 |
c | 打开选择上下文的弹出窗口 |
y | 打开yaml弹出窗口 |
Tab、Shift+Tab | 在活动选项卡内改变视图的焦点 |
数字 | 切换到指定选项卡(数字:1~6) |
ESC | 关闭窗口或终止应用(当弹出窗口未打开时) |
q | 终止应用 |
f | 打开选择多个API资源的弹出窗口 |
Shift+s | 在垂直和水平之间切换分割方向 |
键映射
源 | 目标 |
---|---|
Ctrl+p | 向上 |
Ctrl+n | 向下 |
Ctrl+f | 向右 |
Ctrl+b | 向左 |
Ctrl+u | 向上翻页 |
Ctrl+d | 向下翻页 |
Ctrl+h、退格键 | 删除 |
Ctrl+a | Home |
Ctrl+e | End |
Ctrl+[ | Esc |
视图控制
键 | 描述 |
---|---|
j、k、下箭头、上箭头、翻页下、翻页上 | 改变选定的项 / 滚动视图 |
左箭头、右箭头 | 在视图中水平滚动 |
g | 转到第一个项目 / 转到视图顶部 |
G | 转到最后一个项目 / 转到视图底部 |
文本视图
键 | 描述 |
---|---|
/ | 激活搜索模式并打开搜索表单 |
输入 | 确认输入 |
q、Esc | 禁用搜索模式并关闭搜索表单(当搜索模式激活时) |
搜索模式
键 | 描述 |
---|---|
n、N | 转到下一个/上一个匹配项 |
q、Esc | 禁用搜索模式 |
表格视图
键 | 描述 |
---|---|
/ | 打开筛选表单 |
Enter、Esc | 关闭筛选表单 |
弹出窗口
键 | 描述 |
---|---|
下箭头、上箭头、翻页下、翻页上 | 改变选定的项 / 滚动视图 |
Tab、Shift+Tab | 在活动选项卡内改变视图的焦点 |
输入 | 选择一个项目并触发事件 |
ESC | 关闭窗口或终止应用(当弹出窗口未打开时) |
输入表单
键 | 描述 |
---|---|
Home | 移动光标到开始位置 |
End | 移动光标到结束位置 |
Ctrl+w | 从光标位置删除到开始位置的内容 |
Ctrl+k | 从光标位置删除到结束位置的内容 |
左箭头、右箭头 | 移动光标到前一个/下一个字符 |
贡献
欢迎提交错误报告和拉取请求。
许可证
本软件作为开源软件,根据 MIT 许可证 提供。
依赖关系
~78MB
~1M SLoC