前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >K8S 实用工具之二 - 终端 UI K9S

K8S 实用工具之二 - 终端 UI K9S

作者头像
东风微鸣
发布2022-04-22 12:59:15
发布2022-04-22 12:59:15
2.1K00
代码可运行
举报
运行总次数:0
代码可运行

开篇

•第一篇:《K8S 实用工具之一 - 如何合并多个 kubeconfig?[1]》

像我这种,kubectl 用的不是非常溜,经常会碰到以下情况:

•忘记命令,先敲 --help,再敲命令,效率低

•忘记加 -n 指定 namespace

•太长的命令经常记错或敲错,比如 kubectl exec -it...

•无法快速将日志、yaml 复制出来

•对于 CRD 类资源,记不住 CRD type,查不到相关信息

•无法掌握集群的健康及监控状态•…

如果你的工作机(前置机、跳板机、操作机、堡垒机…)只是 Linux Shell,而没有桌面环境。那么我强烈推荐你使用这个 K8S 实用工具:终端 UI K9S

🐾 K9S 简介

K9S:K9s 是一个基于终端的 UI,用于与 Kubernetes 集群进行交互。这个项目的目的是使导航、观察和管理已部署的应用程序变得更容易。K9s 持续监视 Kubernetes 的变化,并提供后续命令与观察到的资源进行交互。

k9s

🖌️ K9S 功能

•信息触手可及!

•跟踪 Kubernetes 集群中运行的资源的实时活动。

•标准资源或 CRD?

•处理 Kubernetes 标准资源和自定义资源定义(即:CRD)。

•集群指标

•跟踪与 pod、容器和节点(node)等资源相关的实时指标。

•受到高级用户欢迎!

•提供标准的集群管理命令,如日志、伸缩、端口转发、重启等

定义您自己的命令快捷键,通过命令别名和热键快速导航。

•k9s 支持插件扩展,以创建您自己的集群命令。

•强大的过滤模式,允许用户深入和查看与工作负载相关的资源。

•错误钻取

•直接钻取群集资源的错误。

•皮肤和可定制性

•通过 K9s 皮肤定义您自己的外观和感觉。

•自定义/排列要在每个资源基础上显示的列。

•窄或宽?

•提供查看最小或完整资源定义的切换

•多资源视图

•通过 PulsesXRay 视图提供集群资源的概述。

•我们拿到你的 RBAC 了!

•支持查看 RBAC 规则,如集群/角色及其关联绑定。

•反向查找断言用户/组或 ServiceAccount 在集群上可以做什么。

•内置基准测试(Benchmarking)

•您可以直接从K9s对HTTP服务/pod进行基准测试,以查看应用程序的运行情况,并相应地调整资源请求/限制。

•资源图遍历

•K9s 提供了 Kubernetes 资源及其关联资源的简单遍历。

🛠️ 安装

直接从 release[2] 页面下载对应版本解压到 /usr/local/bin 即可。

⌨️ 命令

安装后直接运行 k9s,就会进入 UI 界面,如下图:

k9s 首页

👽️ 快捷键

操作

命令

备注

显示活跃的键盘助记符和帮助

?

显示集群上所有可用的别名和资源

ctrl-a or :alias

退出 K9s

:q, ctrl-c

使用单数/复数或短名称查看Kubernetes 资源

:po⏎

接受单数,复数,短名或别名如 pod 或 pods

查看给定名称空间中的Kubernetes 资源

:alias namespace⏎

过滤出给定过滤器的资源视图

/filter⏎

支持 Regex2,如` fred

反向正则表达式过滤器

/! filter⏎

保留所有不匹配的东西。日志未实现。

按标签过滤资源视图

/-l label-selector⏎

模糊查找给定的资源

/-f filter⏎

退出视图/命令/过滤模式

<esc>

键映射来描述(describe),查看(view),编辑(edit),查看日志(logs),...

d,v, e, l,…

查看并切换到另一个Kubernetes上下文

:ctx⏎

查看并切换到另一个Kubernetes上下文

:ctx context-name⏎

查看并切换到另一个 Kubernetes 名称空间

:ns⏎

查看所有已保存的资源

:screendump or sd⏎

要删除资源(按TAB键并输入Enter)

ctrl-d

杀死一个资源(没有确认对话框!)

ctrl-k

切换宽列

ctrl-w

等同于 kubectl ... -o wide

切换错误状态

ctrl-z

查看有错误的资源

运行 pulses(脉冲)视图

:pulses or pu⏎

运行 XRay(X 光)视图

:xray RESOURCE [NAMESPACE]⏎

资源可以是以下之一:po, svc, dp, rs, sts, ds, NAMESPACE 参数可选

运行 Popeye(评估跑分) 视图

:popeye or pop⏎

参阅 https://popeyecli.io

深度使用

快捷键

花个 10 - 30 分钟熟悉快捷键,然后 —— 超级爽,各种快速进入、查找、切换、看 yaml、看日志、滚动日志、进 shell、编辑、复制 …

强烈推荐花时间熟悉,你会感觉效率飞升。🤓🤓🤓

过滤

它的过滤功能非常强大,使得你可以非常快速的定位资源,比如我想要看 traefik 的所有 CRD,操作如下:

代码语言:javascript
代码运行次数:0
复制
ctrl-a
/traefik

traefik crd

更多过滤功能,可以自己试一试,进一步研究。

Pulses - 监控 Dashboard

:pulse 就进入这个模式,这个就是一个监控 Dashboard,如下图:

Pulses

可以非常直观看到集群现在的健康情况 —— 明显现在我的 Events 有异常,直接按 5⏎, 再按 ctrl-z查看异常事件:

Events

XRay

XRay 会提供以某个 Kubernetes 资源为维度的关联关系,像 X 光一样,透射到资源的内部。如下图:

XRay

以 traefik deployment 为例,位于 kube-system ns,启动了一个 traefik-97b44b794-7qvzk pod,pod 只有一个 traefik container,并通过 ServiceAccount traefik 挂载了 secret traefik-token-r7vd2

Popeye

Popeye(大力水手)就是为集群、以及集群内的每隔资源打分,分数从 0 - 100,最后根据得分评出你的集群的情况:得分是 A 还是 C,并给出具体原因。

如下:

popeye

DaemonSet 得 0 分原因是都没指定 requests 和 limits:

DaemonSet 0 分原因

Service 得 20 分原因就多了,甚至还贴心考虑到了开销贵不贵的问题:

Service 20分 原因

🔐 直观的 RBAC

RBAC 的 yaml 看起来很不方便的,如果对权限比较要求比较多,那 K9S 绝对好用直观,如下,traefik role 有哪些权限一目了然:who、what、how。

RBAC 视图

✍ 总结

K9S 是一个基于终端的 K8S UI,在没有桌面、只有 终端的情况下使用它,可以大幅提升你的效率以及你对 K8S 的认知。

它有很多强大的功能,其中:快捷键、过滤、Pulses、XRay、Popeye、RBAC 这些功能一定要试一试,体验飞升!

一起使用吧~ 🤓🤓🤓

References

[1] K8S 实用工具之一 - 如何合并多个 kubeconfig?: https://ewhisper.cn/posts/46789/ [2] release: https://github.com/derailed/k9s/releases

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 东风微鸣技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开篇
  • 🐾 K9S 简介
  • 🖌️ K9S 功能
  • 🛠️ 安装
  • ⌨️ 命令
    • 👽️ 快捷键
  • 深度使用
    • 快捷键
    • 过滤
    • Pulses - 监控 Dashboard
    • XRay
    • Popeye
    • 🔐 直观的 RBAC
  • ✍ 总结
    • References
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档