K9s 是一个用于 Kubernetes(K8s)集群的开源 CLI 工具,它提供了一个终端用户友好的界面,可以方便地监控和管理 Kubernetes 集群的资源。K9s 通过一个简单的终端界面让你可以快速浏览、监控、管理 Pods、Deployments、Services、Logs 等 Kubernetes 资源,尤其适合运维人员和开发人员用来调试和操作 Kubernetes 集群。

1. K9s 的特点

  • 终端用户界面:K9s 提供了一个富交互的命令行界面,用户可以在终端中快速浏览集群的资源。
  • 实时监控:实时显示集群中各种资源的状态,包括 Pods、Nodes、Deployments、Namespaces 等。
  • 支持集群管理:通过 K9s,可以直接在终端中创建、修改、删除资源,管理 Kubernetes 集群的资源。
  • 日志查看:方便查看 Pod 和容器的日志,并且可以对日志进行过滤。
  • 命令别名:支持自定义命令和快捷键,使得操作更加便捷。
  • 集成 Kubernetes API:K9s 直接与 Kubernetes API 交互,因此它始终反映出集群的最新状态。
  • 支持多集群:可以连接和管理多个 Kubernetes 集群。

2. K9s 安装与配置

2.1 安装 K9s

K9s 可以通过多种方式安装,支持 Linux、macOS 和 Windows 系统。

macOS 安装(使用 Homebrew)
brew install k9s

Linux 安装

在 Linux 上,你可以下载预编译的二进制文件,或者通过 brew 安装。

  1. 通过 brew 安装:brew install k9s
  2. 或者,手动下载并解压:访问 K9s Releases 页面,下载适合你系统的版本,并解压到本地路径。wget https://github.com/derailed/k9s/releases/download/v0.24.0/k9s_Linux_x86_64.tar.gz tar -xvzf k9s_Linux_x86_64.tar.gz sudo mv k9s /usr/local/bin/
Windows 安装
  1. 使用 choco 安装:choco install k9s
  2. 或者,下载 K9s Windows 版本 解压并添加到环境变量。

2.2 配置 K9s

K9s 使用 Kubernetes 配置文件(~/.kube/config)来获取集群连接信息。通常,如果你已经设置好了 kubectl和 kubeconfig,K9s 会自动使用相同的配置文件。

确保你可以通过 kubectl 访问集群:

kubectl config use-context your-cluster-context

一旦 kubectl 配置好,K9s 就能够自动找到你的 Kubernetes 集群。


3. 使用 K9s

K9s 启动后,界面提供了多个命令和选项来管理集群。以下是一些常用的操作和快捷键。

3.1 启动 K9s

在终端中运行:

k9s

K9s 会启动并连接到 Kubernetes 集群,展示集群中所有命名空间的资源。

3.2 资源视图

  • Pods:默认显示集群中所有命名空间的 Pods。你可以通过选择不同的命名空间来过滤显示的资源。
  • Nodes:显示集群的节点信息。
  • Namespaces:查看集群中所有命名空间的资源。
  • Deployments:查看集群中的 Deployments。
  • Services:查看服务和对应的端口。
  • Logs:查看 Pod 的日志输出。

3.3 导航和快捷键

K9s 提供了一些便捷的键盘快捷键,可以加速操作:

  • : 切换到命令模式(执行命令)。
  • esc 退出当前视图或返回上一级菜单。
  • ? 显示所有快捷键帮助。
  • Ctrl+C 退出 K9s。
  • f 查找资源或执行过滤操作。
  • d 查看资源的详细信息。
  • l 查看和过滤 Pod 日志。

3.4 过滤和查找

你可以使用过滤器快速查找资源:

  • f 快捷键激活过滤功能,输入查询条件后,可以快速过滤资源列表。例如,输入 nginx 只会显示与 nginx相关的资源。
  • 你还可以使用 : 命令来进行更精确的过滤,例如,查看特定命名空间的资源::ns <namespace-name>

3.5 查看和查看 Pod 日志

通过选择 Pod 并按 l 键,你可以查看该 Pod 的日志。日志会动态实时刷新,并且支持滚动查看。

  • l 查看日志。
  • Shift + l 查看多个容器的日志。

3.6 交互式管理资源

K9s 允许你直接管理 Kubernetes 资源。比如,你可以直接从 K9s 界面创建、删除、编辑资源:

  • d 删除资源
  • e 编辑资源(进入编辑模式)

3.7 切换集群

如果你有多个 Kubernetes 集群配置,使用以下命令切换集群:

:kube

然后选择所需的集群。

3.8 集群上下文切换

如果你有多个集群上下文,使用以下命令切换集群上下文:

:kube-context

然后选择你要切换到的上下文。


4. 高级功能

4.1 集群资源监控

K9s 提供了实时的资源使用情况监控,包括 CPU 和内存的使用情况。你可以直接在 K9s 中看到每个 Pod 或节点的资源占用。

  • :top 显示集群资源使用情况(CPU、内存等)。
  • :top pod 查看 Pod 的资源使用情况。

4.2 自定义视图和别名

K9s 允许用户自定义视图和命令别名。你可以为常用的操作创建快捷方式或视图。例如,定义常用的 Kubernetes 资源监控视图或创建常用命令的别名,减少重复操作。


5. 总结

K9s 是一个非常实用的 Kubernetes 集群管理工具,它将 Kubernetes 资源的管理从复杂的命令行操作中抽象出来,提供了一个直观且功能强大的终端界面。通过 K9s,用户可以实时查看集群的状态、管理资源、调试和查看日志,极大提高了运维人员和开发人员管理 Kubernetes 集群的效率。它支持多集群、丰富的资源操作、实时日志查看、以及交互式资源管理等功能,适用于各种规模的 Kubernetes 集群。