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"
链接: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
helmfile apply
链接: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
链接: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
链接: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