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

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

开篇

📜 引言

  • 磨刀不误砍柴工
  • 工欲善其事必先利其器

像我这种,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 页面下载对应版本解压到 /usr/local/bin 即可。

⌨️ 命令

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

k9s 首页

👽️ 快捷键

操作 命令 备注
显示活跃的键盘助记符和帮助 ?
显示集群上所有可用的别名和资源 ctrl-a or :alias
退出 K9s :q, ctrl-c
使用单数 / 复数或短名称查看 Kubernetes 资源 :po⏎ 接受单数,复数,短名或别名如 podpods
查看给定名称空间中的 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,操作如下:

1
2
ctrl-a
/traefik
BASH

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 这些功能一定要试一试,体验飞升!

一起使用吧~ 🤓🤓🤓

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
8天前
|
Linux 测试技术
Linux基础项目开发1:量产工具——UI系统(五)
Linux基础项目开发1:量产工具——UI系统(五)
34 0
Linux基础项目开发1:量产工具——UI系统(五)
|
8天前
|
Kubernetes 开发者 Docker
K8S 实用工具之五 -kompose
K8S 实用工具之五 -kompose
|
8天前
|
消息中间件 Kafka Linux
Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
【2月更文挑战第21天】Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
282 2
|
8天前
|
存储 监控 测试技术
【Docker管理工具】安装Oxker容器管理工具
【2月更文挑战第4天】安装Oxker容器管理工具
85 2
|
8天前
|
机器学习/深度学习 Kubernetes Shell
K8S 实用工具之六 -kubectl-aliases
K8S 实用工具之六 -kubectl-aliases
|
8天前
|
Kubernetes 安全 API
K8S 实用工具之四 - kubectl 实用插件
K8S 实用工具之四 - kubectl 实用插件
|
8天前
|
Kubernetes 监控 IDE
K8S 实用工具之三 - 图形化 UI Lens
K8S 实用工具之三 - 图形化 UI Lens
|
8天前
|
Kubernetes 应用服务中间件 Docker
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
|
1天前
|
存储 Kubernetes 监控
Kubernetes 集群的持续性能优化策略
【5月更文挑战第22天】 在微服务架构日益普及的背景下,容器编排成为关键性技术之一。其中,Kubernetes 凭借其强大的功能、灵活的扩展性和便捷的管理特性,成为业界广泛采用的解决方案。然而,随着集群规模的扩大和业务复杂度的增加,性能问题逐渐凸显,影响系统稳定性和响应效率。本文聚焦于 Kubernetes 集群的性能优化,提出一系列持续优化的策略,旨在帮助运维人员系统性地分析和解决性能瓶颈,提升集群运行效率。通过实际案例分析与经验总结,为读者呈现一套实用的性能调优方法论。
|
4天前
|
运维 监控 Kubernetes
Kubernetes 集群的监控与日志管理最佳实践
【5月更文挑战第19天】 在现代微服务架构中,容器编排平台如Kubernetes已成为部署、管理和扩展应用程序的关键工具。随着其应用范围不断扩大,集群的稳定性和性能监控变得至关重要。本文将探讨针对Kubernetes集群的监控策略,并深入分析日志管理的实现方法。通过介绍先进的技术堆栈和实用工具,旨在为运维专家提供一套完整的解决方案,以确保集群运行的透明度和可靠性。
36 3