掌握这 3 个初学者工具和 2 个高级用户工具,领先竞争对手。
译自 From Zero to K8s Hero: 5 Must-Have Tools for Kubernetes,作者 Giuseppe Santoro。
本文将介绍 5 个必备工具,帮助你开启 Kubernetes 之旅。
列表中的前三个工具对于初学者来说绝对不可或缺。后两个工具可以让你从初学者脱颖而出,看起来像高级用户。
我将分享我对哪些工具可以让你在同事中脱颖而出,以及哪些工具不值得学习的观点。
是什么让我有资格给出这样的建议?
在过去的几年里,我花费了无数个小时尝试所有我能接触到的 Kubernetes 工具,无论是工作时间还是业余时间用于我的副项目。
我不得不承认,我是一个工具狂热者。我喜欢玩弄所有闪闪发光的工具,而 Kubernetes 生态系统中有很多这样的工具。
鉴于每天都有像蘑菇一样冒出来的新工具,我一直认为我需要一些建议,告诉我哪些工具值得学习,哪些工具不值得我花时间。
因此,我尝试了尽可能多的工具,经过多年的经验,我现在已经准备好指导其他人。
在本文中,我想要提供我在几年前刚开始使用 Kubernetes 时所缺少的指导。
所以请不要再浪费时间,让我们深入探讨这篇文章。
我最喜欢的 Kubernetes 工具是 K9s,这是一个基于终端的 UI,可以让你与 Kubernetes 集群交互。
如果你像我一样,从小就使用“面包和... Linux”,你会欣赏使用 CLI 工具的美丽,这些工具既是开源的,又高度可定制,可以自定义皮肤、插件、命令别名和自定义键绑定。
使用 K9s 作为浏览集群的主要工具有哪些好处:
有哪些替代方案:
如果你曾经使用过 Kubernetes,你一定已经遇到过 Kubectl,Kubernetes 命令行工具。
为什么我只把它放在我的列表中的第二位?
这个工具可以完成你使用 Kubernetes 所需的一切,但它没有像 K9s 那样提供良好的用户体验。
在使用 Kubernetes 时,尤其是当你是一个 DevOps 并且处于事故处理过程中时,你必须快速行动!
鉴于我记不住 Kubectl 命令的语法,并且每个命令都需要大量输入,K9s 对于我的需求来说是一个更好的工具。
为什么我仍然建议使用 Kubectl?
每当需要编写一些与 Kubernetes 交互的自动化脚本时,Kubectl 都是我的首选工具。
最好的部分是,你不需要在这两者之间做出选择。
你可以使用 K9s 来提高速度和用户体验,使用 Kubectl 来提高可扩展性,并将它们结合起来使用。
看看下面的命令。不使用任何其他工具,我将获取所有带有标签 app=cassandra
的 pod 的版本标签。
kubectl get pods --selector=app=cassandra -o jsonpath='{.items[*].metadata.labels.version}'
我从 Kubernetes 快速参考 中获得了最后一个命令,如果你想 准备你的认证 Kubernetes 管理员考试 ,这是一个很棒的资源,因为你可以在考试中使用它。
有哪些替代方案:
K9s:我们在上一节中已经讨论过这个问题。
Kubernetes 客户端库:如果你需要在代码中自动与你的 Kubernetes 集群交互,并且想要避免在 bash 中使用 Kubectl,你可以在你选择的语言中使用 Kubernetes SDK。
我的列表中的第三个工具是 Krew,它是 Kubectl 的官方包管理器。
我最近才了解到这个工具,但它是我武器库中的一项绝佳补充。
像任何包管理器一样,除了它能很好地完成工作并得到所有操作系统的支持之外,没有太多可说的。
该工具最好的部分是其文档,其中包含 官方插件 的列表,Krew 支持这些插件。
如果你浏览该列表,你可能会发现你不知道存在的插件。
Stern 是此工具列表中第一个面向更高级用户的工具。
如果你查看过 Kubernetes 中的 pod 日志,你可能遇到过这样的用例:你想将来自 pod 中不同 pod 或容器的日志组合到同一个输出中。
[Stern] 允许你 tail
Kubernetes 上的多个 pod 以及 pod 中的多个容器。每个结果都用颜色编码,以便更快地进行调试。
node-shell 允许你启动一个 shell 来访问 Kubernetes 节点的底层操作系统。
这个工具在为 Kubernetes 开发可观察性工具时非常宝贵。
正如我在我的深入文章 Kubernetes:node-shell 中解释的那样,不止一次,我不得不查看 Kubernetes 节点,以便跟踪直接写入节点主机以馈送到 Elasticsearch 的 pod/容器日志。
没有 node-shell,我无法做到这一点。
node-shell,就像此列表中的许多其他工具一样,可以通过 Krew 安装并集成到 K9s 中。
本文中的工具列表绝对不完整。
我本可以提到:
等等。
它们中的大多数都比较高级,值得单独写一篇文章。
我可能会在将来介绍其中的一些。