k9s:在终端里管理 Kubernetes 集群
k9s 是一款在终端中运行的 Kubernetes 集群管理工具,目前在 GitHub 上已获得 34,030 Star。


k9s 用终端 UI 替代复杂的 kubectl 命令,帮助用户浏览、观察和管理集群中的资源。它持续监听 Kubernetes 的变化,并提供交互式命令来操作这些资源。对于需要在多个命名空间和上下文之间频繁切换的人来说,这种方式比反复输入命令更直接。
k9s 支持查看 Pod、Deployment、Service、Node 等常见资源,也支持日志查看、容器进入、端口转发、资源编辑等操作。通过快捷键可以快速切换视图、过滤资源和排序列。选中资源后,按 l 查看日志,按 s 进入容器 shell,按 d 查看详情,按 e 编辑 YAML。
安装方式很多,常见平台都有对应包。macOS 和 Linux 可以用 Homebrew:
brew install derailed/k9s/k9s
也支持 snap、pacman、dnf、winget、scoop、choco 等包管理器,可以直接下载二进制,也能用 Docker 运行,还能通过 go install 从源码安装。
启动后,k9s 会读取本地的 kubeconfig,默认展示当前上下文的资源。一些常用启动方式如下:
# 指定命名空间
k9s -n mycoolns
# 指定上下文
k9s --context coolCtx
# 只读模式,禁止修改资源
k9s --readonly
在界面中,: 进入命令模式,输入资源名即可切换视图;/ 用于过滤资源;? 查看当前可用的快捷键;ctrl-a 列出所有资源别名。这些快捷键覆盖了日常操作的大部分场景。
插件系统是 k9s 的扩展方式。用户可以在 plugins.yaml 中定义自己的命令,绑定快捷键,在执行前弹出输入框获取动态参数。环境变量如 N A M E S P A C E 、 NAMESPACE、 NAMESPACE、NAME、 C O N T E X T 、 CONTEXT、 CONTEXT、CONTAINER 等可以在插件参数中直接使用,方便与现有脚本和工具链集成。
k9s 还集成了 Popeye 做集群健康检查,可以扫描配置和资源中的潜在问题;集成了 Hey 做 HTTP 基准测试,用于测试端口转发后的服务性能;支持自定义主题皮肤,可以根据不同上下文切换不同配色;也支持节点 shell 功能,启用后可以直接在节点上执行命令。
配置文件放在 XDG 目录下,可以用 YAML 调整刷新频率、只读模式、默认视图、UI 开关等。多集群场景下,k9s 会为每个 cluster/context 单独保存配置,方便隔离不同环境的使用习惯。日志和 screen dump 也按目录组织,便于排查问题。在启用 RBAC 的集群中,k9s 需要至少具备读取资源和指标的权限,编辑或删除资源则需要更高权限。
对于日常需要频繁操作 Kubernetes 的人来说,k9s 是一个轻量、集中的终端管理方案。
要频繁操作 Kubernetes 的人来说,k9s 是一个轻量、集中的终端管理方案。

143

被折叠的 条评论
为什么被折叠?



