查看原文
其他

5 个必备的命令行工具,效率飞起

小碗汤 进击云原生 2022-11-10


随着 Kubernetes 的普及,其复杂性也在增加,强大的开源社区和云原生生态圈,围绕集群管理、开发、测试、安全等提供大量工具和服务。

在本文中,我们将重点介绍基于命令行的工具和插件,以帮助您进行集群管理、可观察性、常规日常运维。

这些工具和插件必须:

  • 开源
  • 基于命令行
  • 易于安装
  • 为 Kubernetes 工作流程带来切实的好处

Kubectl krew 插件管理器[1]

Krew 是 kubectl 命令行工具的插件管理器,可以使用 git/curl 安装在Win、Linux、MacOS上安装使用,具体Krew安装步骤[2]

Krew 与 kubectl CLI 集成并提供了机制,来安装额外命令行工具作为插件。目前,已有174 个插件[3]可用。

为了充分利用 krew 插件管理器,您需要查看插件说明文档[4],知道哪些插件对您是有用的。

这是我经常使用的插件列表,以供参考:

Krew 提供了一个用于发现和管理插件的一站式商店,使得添加新插件,来改进 Kubernetes 工作流程变得更加方便。

Kubectx和Kubens[5]

这实际上是两个独立的工具,但它们经常在一个工作流程中使用。

kubectx仓库

Kubens

安装:

kubectl krew install ctx
kubectl krew install ns

这两个插件都是用 Go 编写的,并修改kubeconfig切换到新的上下文或命名空间。

为了获得最佳体验,请在交互模式下[6]使用这两个插件。此模式需要安装 fzf[7]并启用使用光标而不是复制、粘贴来选择上下文。

以下是配合使用示例



这些工具的最大好处是不必输入命令。提高效率,必不可少!

Kube-ps1仓库[8]

这个插件与 kubectx 和 kubens 结合使用效果很好。一旦你切换到不同的上下文/命名空间,你怎么知道你在哪里?kube-ps1可以做到这一点,此插件在 Windows 上不可用。

这个脚本允许你将Kubernetes上下文和kubectl上配置的命名空间添加到你的Bash/Zsh提示字符串中。Kube-ps1 可以通过kubeoff命令关闭、使用kubeon开启。

使用 kube-ps1,可以避免混淆导致的错误,因为我们始终知道我们所处的上下文和命名空间。

使用kail流式传输日志[9]

流式传输所有日志或基于查询条件流式传输日志比较困难,Kali解决了这个问题。

安装:

# mac
$ brew tap boz/repo
$ brew install boz/repo/kail
# linux
$ bash <( curl -sfL https://raw.githubusercontent.com/boz/kail/master/godownloader.sh) -b "$GOPATH/bin"

Kail 可以根据不同的匹配条件流式传输 Pod 的日志,例如,Service选择的所有 Pod 或匹配任意标签的 Pod 集合。

最好打开两个Tab,下面是示例:

使用 kail,根据您的要求,流式传输日志和查看实时日志容易得多。

K9s[10]

K9s 提供了一个终端UI来与Kubernetes集群交互。这个项目的目的是让您的应用程序更容易观察和管理。K9s不断地监视Kubernetes的变化,并提供后续命令来与观察到的资源交互。

K9s 可以运行在所有主流操作系统之上。它还支持其他更高级的功能,如端口转发、查看 Kubernetes 对象的 YAML 等等。




以下是涉及到上面提到的所有工具和插件的工作流程。我在 Windows 10 上使用 WSL2(Windows Subsystem for Linux 2),使用键盘快捷键将我的终端窗口拆分为3个窗格。我使用 kail 在右下窗格中显示我创建的 nginx pod 的日志。一段时间后,我使用 k9s 将本地端口 8080 转发到 nginx 容器端口 80,并使用左下面板中的 curl 与其交互,同时 kail 显示日志。

结论

我们通过仅使用 5 个插件和工具明显改进原生 Kubernetes 工作流程。您可以在本地机器上轻松安装这些工具,也可以使用 Docker 将这些工具打包成镜像,随用随拉。


大家工作中使用到哪些好用的效率工具,欢迎在评论区中讨论~


京东购书限时优惠

活动时间是12月28~30日  

优惠力度是每满100-50 

再叠加200减30的优惠券

👇️👇️👇️扫码参与购买👇️👇️👇️

参考资料

[1]

Kubectl krew 插件管理器: https://krew.sigs.k8s.io/

[2]

Krew安装步骤: https://krew.sigs.k8s.io/docs/user-guide/quickstart/

[3]

174 个插件: https://krew.sigs.k8s.io/plugins/

[4]

插件说明文档: https://krew.sigs.k8s.io/plugins/

[5]

Kubectx和Kubens: https://github.com/ahmetb/kubectx

[6]

交互模式下: https://github.com/ahmetb/kubectx#interactive-mode

[7]

安装 fzf: https://github.com/junegunn/fzf

[8]

Kube-ps1仓库: https://github.com/jonmosco/kube-ps1

[9]

使用kail流式传输日志: https://github.com/boz/kail

[10]

K9s: https://github.com/derailed/k9s



推荐阅读

极简工具 | MacOS上运行容器和k8s | 支持M1

目前MacOS上,管理容器和k8s可选择的产品有哪些?

一款k8s实时错误监控工具,值得用起来

Docker容器如何优雅使用NVIDIA GPU

顶级工具 | Popeye帮你发现k8s集群潜在问题

Web自动化神器,批量下载小姐姐美图,可直接导入使用



点赞👍   星标✨  在看 👁 让我看见你们!!

本公众号主要分享linux、Golang、网络、云原生相关技术,实用工具,欢迎扫码关注!

点个在看你最好看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存