Kubernetes 预先打包了一个出色的 CLI。对于基本操作,它的效果非常好。唉,当一个人需要快速做某事时,复杂性就会增加。
Kubernetes 社区已经构建了各种基于 Web 的工具来监控您的集群*——kube ops view*、grafana等。然而,拥有一个完整的终端将迅速加快找到问题根源所需的时间。它构成了您的瑞士军刀的基本组成部分。
以下是我应用于 OSX 终端的非常简短的开源工具列表。当一起使用时,它们允许我跳过我的 kubernetes 集群,快速解决问题并监控行为。我已经删掉了很多小的实用程序,并坚持使用我发现自己每天都在使用的工具。
在任何工具之前...
在您使用这些工具之前,我强烈建议您安装zsh。它是围绕标准 OSX 终端的出色的开源包装器。它功能更丰富、更直观,您可以安装的插件非常棒。列出的其中一些工具假设您已安装 ZSH。
k9s
哦是的
我开始坚强。K9s 是 kubernetes 集群的 CLI 工具的妈妈。您只需按一下键即可通过 SSH 直接进入 Pod、查看日志、删除资源等。它为您将要执行的最常见操作提供出色的访问权限。这是任何使用 kubernetes 的工程师的主要内容。
kubectx
我们只有一个集群是非常罕见的。在这些之间切换很简单
kubectl 配置使用上下文我的上下文
但是有了这个,有一些先决条件:
- 在运行之前,您需要知道集群的名称。
- 还有另一个类似的
set-context命令可能会绊倒你。
kubectx提出了一个更简单的替代方案。如果你kubectx自己运行,它会列出你文件中的所有上下文.kube/config。然后,您可以提供您感兴趣的上下文的名称:
kubectx 我的上下文
不需要记住所有的上下文,不需要手动检查文件,也没有得到错误命令的可能性。好看又简单。与 相结合k9s,这提供了大量的 CLI 导航性,只需最少的按键操作。
**编辑:**我最初声明k9s不能支持上下文之间的切换。来自的精彩回应
指出,使用该:ctx命令,这是可能的。
库本斯
在浏览上下文后,您可能想要深入研究特定的命名空间。再一次,在您的集群中拥有多个命名空间是很常见的。嗯,ahmetb(带你来的那位先生kubectx)也凑齐了kubens。它与 相同kubectx,仅适用于命名空间。
kubens kube-system
现在kube-system,默认情况下,您的所有命令都针对命名空间运行。您还可以在没有任何其他内容的情况下运行kubens以查看名称空间列表。
kube-ps1
因此,您可以在上下文和命名空间之间切换。但是你怎么知道你目前的目标是哪一个?继续检查很痛苦。目前,要找出你需要运行:
库本斯
kubectx
kubectl <我的命令>
要删除它,ps1是一个 zsh 插件,它会自动显示您当前的上下文和命名空间:
我指的是我的 minikube 上下文和默认命名空间
现在,您无需运行单个命令即可查看您指出的命名空间和上下文。它也是高度可配置的——你可以关闭命名空间或上下文,如果你只对其中之一感兴趣,或者你可以使用kubeoff完全禁用整个事情。
大力水手
现在,来点不同的东西。popeye将对存储库中的资源运行自动扫描,并突出显示清晰、明显的问题。这是一个非常新的工具,我发现它非常有用。如果您正在寻找要在集群中进行的春季大扫除,从开始popeye会给您一些需要修复的明确指示。
这是一份很长很详细的报告的前几行。
斯特恩
用过kubectl logs吗?注意到您一次只能跟踪一个 pod 中的日志吗?好了,不用再担心了!Stern 是一种工具,允许您基于非常灵活的查询从多个 pod 中提取日志。