20 个最实用的 k8s 工具

2025-06-07

20 个最实用的 k8s 工具

监控

K9S

图像

K9s 是一个基于终端的 UI,用于与 Kubernetes 集群交互。该项目旨在简化导航、观察和管理已部署应用程序的流程。K9s 会持续监测 Kubernetes 的变化,并提供后续命令来与观察到的资源进行交互。

链接:https://github.com/derailed/k9s

大力水手

图像

Popeye 是一款实用程序,可扫描实时 Kubernetes 集群并报告已部署资源和配置的潜在问题。它会根据已部署的内容(而非磁盘上的内容)来清理集群。

链接:https://github.com/derailed/popeye

包管理器

克鲁

图像

Krew 是一款简化 kubectl 插件使用的工具。它可以帮助您发现、安装和管理插件。它类似于 apt、dnf 或 brew 等工具。目前,Krew 上提供了超过 100 个 kubectl 插件。

链接: https: //github.com/kubernetes-sigs/krew

插件

kubectx + kubens

kubectx 帮助你在集群之间来回切换:

图像

kubens 帮助您顺利地在 Kubernetes 命名空间之间切换:

图像

链接:https://github.com/ahmetb/kubectx

kubespy

kubespy 是一款小巧的工具,可以轻松实时观察 Kubernetes 资源的变化情况。它源于我们为使 Pulumi 的 CLI 能够预测 Kubernetes 部署所做的工作。您可以随时运行 kubespy,它会持续监视并报告 Kubernetes 资源的相关信息,直到您终止该资源为止。

图像

链接:https://github.com/pulumi/kubespy

kube 分数

kube-score 是一种对 Kubernetes 对象定义执行静态代码分析的工具。

图像

链接:https://github.com/zegl/kube-score

kubectl-医生

这个插件的灵感来自于 brew doctor :) 它将扫描您当前的目标 k8s 集群,查看是否存在异常或有用的操作点并可以向您报告。

该插件不会改变任何状态或配置,它仅仅扫描和收集信息,然后以 yaml 格式报告异常。

图像

链接: https: //github.com/emirozer/kubectl-doctor

隧道

Ktunnel 是一个 CLI 工具,用于在 Kubernetes 集群和本地计算机之间建立反向隧道。它允许您将计算机公开为集群中的服务,或将其公开给特定的部署。

图像

链接:https://github.com/omrikiei/ktunnel

kubectl-tree

一个 kubectl 插件,用于通过 Kubernetes 对象上的 ownersReferences 探索它们之间的所有权关系。

图像

链接:https://github.com/ahmetb/kubectl-tree

调试/日志

kubetail

一个 Bash 脚本,用于将多个 Pod 的日志聚合(tail/follow)到一个流中。这与运行“kubectl logs -f”相同,但针对的是多个 Pod。

图像

链接:https://github.com/johanhaleby/kubetail

kubectl-调试

kubectl-debug 是一个用于排除正在运行的 pod 故障的树外解决方案,它允许您在正在运行的 pod 中运行一个新容器以进行调试。

图像

链接: https: //github.com/aylei/kubectl-debug

斯特恩

Stern 允许您在 Kubernetes 上跟踪多个 Pod 以及 Pod 内的多个容器。每个结果都以颜色编码,以便更快地进行调试。

链接:https://github.com/stern/stern

警报

Botkube

BotKube 与 Slack、Mattermost 或 Microsoft Teams 集成,可帮助您监控 Kubernetes 集群、调试关键部署,并通过对 Kubernetes 资源进行检查来提供标准实践建议。您还可以让 BotKube 在 Kubernetes 集群上执行 kubectl 命令,这有助于调试应用程序或集群。

图像

链接:https://github.com/infracloudio/botkube

验证

北极星

Fairwinds 的 Polaris 可确保您的集群平稳运行。它会运行各种检查,以确保 Kubernetes Pod 和控制器采用最佳实践进行配置,从而帮助您避免未来出现问题。

图像

链接:https://github.com/FairwindsOps/polaris

金发姑娘

Goldilocks 是一个实用程序,可以帮助您确定资源请求和限制的起点。

图像

链接:https://github.com/FairwindsOps/goldilocks

计算者

Helm 的命令行助手。此实用程序通过多种方式增强了 Helm 的功能:

  • 创建声明性语法来在一个地方管理多个版本
  • 允许从 git commit/branch/release 安装图表

例子 :



# course.yml
charts:
  nginx-ingress:
    namespace: ingress-controllers
    version: 1.15.1
    values:
      controller.ingressClass: "my-ingress-class-name"


Enter fullscreen mode Exit fullscreen mode

链接:https://github.com/FairwindsOps/reckoner

helm文件

使用 helmfile 部署 Kubernetes Helm Charts



releases:
- name: prom-norbac-ubuntu
  namespace: prometheus
  chart: stable/prometheus
  set:
  - name: rbac.create
    value: false


Enter fullscreen mode Exit fullscreen mode


helmfile apply


Enter fullscreen mode Exit fullscreen mode

链接:https://github.com/roboll/helmfile

库贝韦拉

KubeVela 是一个平台引擎,可以以最小的努力设计和运送应用程序。



$ vela up -f https://raw.githubusercontent.com/oam-dev/kubevela/master/docs/examples/vela.yaml
Parsing vela.yaml ...
Loading templates ...

Rendering configs for service (testsvc)...
Writing deploy config to (.vela/deploy.yaml)

Applying deploy configs ...
Checking if app has been deployed...
App has not been deployed, creating a new deployment...
✅ App has been deployed 🚀🚀🚀
    Port forward: vela port-forward first-vela-app
             SSH: vela exec first-vela-app
         Logging: vela logs first-vela-app
      App status: vela status first-vela-app
  Service status: vela status first-vela-app --svc testsvc



Enter fullscreen mode Exit fullscreen mode

链接:https://github.com/oam-dev/kubevela

Helm 机密

密封的秘密

为了将机密安全地存储在公共或私有 Git 存储库中,您可以使用 Bitnami 的密封机密控制器,并将您的 Kubernetes 机密加密为 SealedSecrets。密封的机密只能由集群中运行的控制器解密,其他人即使有权访问 Git 存储库,也无法获取原始机密。

图像



# Create a json/yaml-encoded Secret somehow:
# (note use of `--dry-run` - this is just a local file!)
$ echo -n bar | kubectl create secret generic mysecret --dry-run=client --from-file=foo=/dev/stdin -o json >mysecret.json

# This is the important bit:
# (note default format is json!)
$ kubeseal <mysecret.json >mysealedsecret.json

# mysealedsecret.json is safe to upload to github, post to twitter,
# etc.  Eventually:
$ kubectl create -f mysealedsecret.json

# Profit!
$ kubectl get secret mysecret


Enter fullscreen mode Exit fullscreen mode

链接:https ://github.com/bitnami-labs/sealed-secrets

kubernetes-外部机密

外部机密 Kubernetes 操作员从 AWS Secrets Manager 等第三方服务读取信息,并自动将值作为 Kubernetes Secrets 注入。

图像

链接:https ://github.com/external-secrets/external-secrets

文章来源:https://dev.to/javidjms/top-20-useful-k8s-tools-53g3
PREV
用这些插件把 Vim 变成一个舒适又现代的编辑器!🛋 🏖 生活品质插件 💬 语言插件 ✨Bling✨
NEXT
停止使用 virtualenv、pyenv、nvm、goenv,使用 Docker 镜像