- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
📜 引言 :
- 磨刀不误砍柴工
- 工欲善其事必先利其器
像我这种, kubectl 用的不是非常溜,经常会碰到以下情况:
--help
,再敲命令,效率低 -n
指定 namespace kubectl exec -it...
如果你的工作机(前置机、跳板机、操作机、堡垒机…)只是 Linux Shell,而没有桌面环境。那么我强烈推荐你使用这个 K8S 实用工具:终端 UI K9S .
K9S:K9s 是一个 基于终端的 UI ,用于与 Kubernetes 集群进行交互。这个项目的目的是使导航、观察和管理已部署的应用程序变得更容易。K9s 持续监视 Kubernetes 的变化,并提供后续命令与观察到的资源进行交互.
直接从 release 页面下载对应版本解压到 /usr/local/bin 即可.
安装后直接运行 k9s ,就会进入 UI 界面,如下图:
操作 | 命令 | 备注 |
---|---|---|
显示活跃的键盘助记符和帮助 | ? |
|
显示集群上所有可用的别名和资源 | 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,操作如下:
ctrl-a
/traefik
更多过滤功能,可以自己试一试,进一步研究.
:pulse 就进入这个模式,这个就是一个监控 Dashboard,如下图:
可以非常直观看到集群现在的健康情况 —— 明显现在我的 Events 有异常,直接按 5⏎ , 再按 ctrl-z 查看异常事件:
XRay 会提供以某个 Kubernetes 资源为维度的关联关系,像 X 光一样,透射到资源的内部。如下图:
以 traefik deployment 为例,位于 kube-system ns,启动了一个 traefik-97b44b794-7qvzk pod,pod 只有一个 traefik container,并通过 ServiceAccount traefik 挂载了 secret traefik-token-r7vd2 .
Popeye(大力水手)就是为集群、以及集群内的每隔资源打分,分数从 0 - 100,最后根据得分评出你的集群的情况:得分是 A 还是 C,并给出具体原因.
如下:
DaemonSet 得 0 分原因是都没指定 requests 和 limits:
Service 得 20 分原因就多了,甚至还贴心考虑到了开销贵不贵的问题:
RBAC 的 yaml 看起来很不方便的,如果对权限比较要求比较多,那 K9S 绝对好用直观,如下,traefik role 有哪些权限一目了然:who、what、how.
K9S 是一个 基于终端的 K8S UI ,在没有桌面、只有 终端的情况下使用它,可以大幅提升你的效率以及你对 K8S 的认知.
它有很多强大的功能,其中:快捷键、过滤、Pulses、XRay、Popeye、RBAC 这些功能一定要试一试,体验飞升! 。
一起使用吧~ 🤓🤓🤓 。
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写. 。
最后此篇关于K8S实用工具之二-终端UIK9S的文章就讲到这里了,如果你想了解更多关于K8S实用工具之二-终端UIK9S的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我们可以说 O(K + (N-K)logK)相当于O(K + N logK)对于 1 < = K <= N ? 最佳答案 简短的回答是它们不等价,这取决于k 的值。如果k等于N,那么第一个复杂度是O(
我有以下解决方案,但我从其他评论者那里听说它是 O(N * K * K),而不是 O(N * K)其中 N 是 K 列表的(最大)长度,K 是列表的数量。例如,给定列表 [1, 2, 3] 和 [4,
我试图理解这些语法结构之间的语义差异。 if ((i% k) == (l % k) == 0) 和 if ((i % k) == 0 && (l % k) == 0) 最佳答案 您的特定表达式((i
我有时会使用一维数组: A = np.array([1, 2, 3, 4]) 或 2D 阵列(使用 scipy.io.wavfile 读取单声道或立体声信号): A = np.array([[1, 2
在文档聚类过程中,作为数据预处理步骤,我首先应用奇异向量分解得到U、S和Vt 然后通过选择适当数量的特征值,我截断了 Vt,这让我从阅读的内容中得到了很好的文档-文档相关性 here .现在我正在对矩
我问的是关于 Top K 算法的问题。我认为 O(n + k log n) 应该更快,因为……例如,如果您尝试插入 k = 300 和 n = 100000000,我们可以看到 O(n + k log
这个问题与另一个问题R:sample()密切相关。 。我想在 R 中找到一种方法来列出 k 个数字的所有排列,总和为 k,其中每个数字都是从 0:k 中选择的。如果k=7,我可以从0,1,...,7中
我目前正在评估基于隐式反馈的推荐系统。我对排名任务的评估指标有点困惑。具体来说,我希望通过精确度和召回率来进行评估。 Precision@k has the advantage of not requ
我在 Python 中工作,需要找到一种算法来生成所有可能的 n 维 k,k,...,k 数组,每个数组都沿轴有一行 1。因此,该函数接受两个数字 - n 和 k,并且应该返回一个数组列表,其中包含沿
我们有 N 对。每对包含两个数字。我们必须找到最大数 K,这样如果我们从给定的 N 对中取 J (1 2,如果我们选择三对 (1,2),我们只有两个不同的数字,即 1 和 2。 从一个开始检查每个可能
鉴于以下问题,我不能完全确定我当前的解决方案: 问题: 给定一个包含 n 元素的最大堆,它存储在数组 A 中,是否可以打印所有最大的 K 元素在 O(K*log(K)) 中? 我的回答: 是的,是的,
我明白了: val vector: RDD[(String, Array[String])] = [("a", {v1,v2,..}),("b", {u1,u2,..})] 想转换成: RDD[(St
我有 X 个正数,索引为 x_i。每个 x_i 需要进入 K 组之一(其中 K 是预先确定的)。令 S_j 为 K_j 中所有 x_i 的总和。我需要分配所有 x_i 以使所有 S_j 的方差最小化。
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我正在研究寻找原始数的算法,看到下面的语句,我不明白为什么。 while (k*k <= n) 优于 while (k <= Math.sqrt(n)) 是因为函数调用吗?该调用函数使用更多资源。 更
我想找到一种尽可能快的方法来将两个小 bool 矩阵相乘,其中小意味着 8x8、9x9 ... 16x16。这个例程会被大量使用,所以需要非常高效,所以请不要建议直截了当的解决方案应该足够快。 对于
有没有一种惯用的方法来获取 Set和 Function ,并获得 Map实时取景? (即 Map 由 Set 和 Function 组合支持,例如,如果将元素添加到 Set ,则相应的条目也存在于 M
这个问题在这里已经有了答案: Can a local variable's memory be accessed outside its scope? (20 个答案) returning addr
给定一个矩阵:- k = [1 2 3 ; 4 5 6 ; 7 8 NaN]; 如果我想用 0 替换一个数字,比如 2,我可以使用这个:k(k==2) =
我是一名优秀的程序员,十分优秀!