说明:标题中的K8s 1.28在本文写作时(2023年5月)尚未发布(K8s 1.28于2023年8月发布)。

本文基于我使用Kubernetes的经验,推荐一些提升效率的工具,包括命令行工具、可视化工具、监控工具、调试工具,以及我的使用经验。

一、为什么需要工具

1. kubectl不够用

第一个原因:kubectl不够用。

  • kubectl是基础工具
  • 但功能有限
  • 操作繁琐
  • 效率不高
  • 需要更好的工具

kubectl,是起点不是终点。

2. K8s很复杂

第二个原因:K8s很复杂。

  • 资源类型多
  • 关系复杂
  • 排错困难
  • 需要工具辅助
  • 可视化很重要

复杂度,需要工具来降低。

3. 效率很重要

第三个原因:效率很重要。

  • 运维工作多
  • 时间有限
  • 工具能提升效率
  • 减少重复劳动
  • 把时间花在更有价值的事上

效率,是工具的核心价值。

二、命令行工具

1. kubectx + kubens

第一个工具:kubectx + kubens。

  • kubectx:切换集群
  • kubens:切换命名空间
  • 快速切换
  • 不用记长命令
  • 非常实用

安装:

brew install kubectx

这是我用得最多的工具。

2. k9s

第二个工具:k9s。

  • 终端UI工具
  • 可视化管理K8s
  • 查看资源
  • 查看日志
  • 进入容器
  • 非常强大

安装:

brew install k9s

k9s,是终端中的K8s Dashboard。

3. kubectl-tree

第三个工具:kubectl-tree。

  • 查看资源的归属关系
  • 树形展示
  • 一目了然
  • 排错很有用
  • 推荐

安装:

kubectl krew install tree

kubectl-tree,让资源关系清晰可见。

4. kubectl-neat

第四个工具:kubectl-neat。

  • 清理YAML输出
  • 去掉默认值
  • 去掉状态
  • 只看核心配置
  • 很清爽

安装:

kubectl krew install neat

kubectl-neat,让YAML更干净。

5. stern

第五个工具:stern。

  • 多容器日志查看
  • 同时看多个Pod的日志
  • 颜色区分
  • 实时跟踪
  • 比kubectl logs好用

安装:

brew install stern

stern,是日志查看的利器。

三、可视化工具

1. Lens

第一个可视化工具:Lens。

  • 桌面端K8s IDE
  • 功能强大
  • 多集群管理
  • 资源可视化
  • 终端集成
  • 免费好用

Lens,是最流行的K8s桌面工具。

2. Kubernetes Dashboard

第二个可视化工具:Kubernetes Dashboard。

  • 官方Dashboard
  • Web界面
  • 基础功能
  • 适合简单查看
  • 部署简单

Dashboard,是官方的选择。

3. Octant

第三个可视化工具:Octant。

  • VMware开源的工具
  • 本地运行
  • 资源可视化
  • 插件系统
  • 很有潜力

Octant,是后起之秀。

4. Kubevious

第四个可视化工具:Kubevious。

  • 规则引擎
  • 风险检测
  • 配置验证
  • 依赖分析
  • 很有特色

Kubevious,是智能的K8s工具。

四、监控工具

1. Prometheus + Grafana

第一个监控工具:Prometheus + Grafana。

  • 事实标准
  • Prometheus采集指标
  • Grafana可视化
  • 丰富的仪表盘
  • 强大的告警

Prometheus + Grafana,是监控的标配。

2. kubebox

第二个监控工具:kubebox。

  • 终端监控工具
  • 实时查看资源使用
  • 内存、CPU
  • 网络
  • 很直观

kubebox,是终端中的top。

3. Weave Scope

第三个监控工具:Weave Scope。

  • 拓扑图
  • 实时监控
  • 容器关系
  • 交互性强
  • 很直观

Weave Scope,是可视化的监控。

4. Goldpinger

第四个监控工具:Goldpinger。

  • 集群健康检查
  • 节点间连通性
  • 可视化
  • 简单好用

Goldpinger,是集群健康的检查器。

五、调试工具

1. kubectl-debug

第一个调试工具:kubectl-debug。

  • 调试运行中的Pod
  • 不修改原Pod
  • 注入调试容器
  • 很安全
  • 很方便

kubectl-debug,是排错的利器。

2. ephemeral-containers

第二个调试工具:ephemeral-containers。

  • K8s原生功能
  • 临时容器
  • 调试Pod
  • 不需要重启
  • 1.23+稳定

临时容器,是K8s的原生调试方式。

3. kubectl-trace

第三个调试工具:kubectl-trace。

  • 基于bpftrace
  • 内核级追踪
  • 性能分析
  • 很强大
  • 适合高级用户

kubectl-trace,是高级调试工具。

4. tcpdump

第四个调试工具:tcpdump。

  • 网络抓包
  • 分析网络问题
  • 经典工具
  • 在容器中用
  • 很实用

tcpdump,是网络调试的经典。

六、安全工具

1. kubescape

第一个安全工具:kubescape。

  • K8s安全扫描
  • 配置检测
  • 漏洞扫描
  • 合规检查
  • 开源免费

kubescape,是安全的守护者。

2. trivy

第二个安全工具:trivy。

  • 镜像漏洞扫描
  • 配置扫描
  • 简单易用
  • 集成CI/CD
  • 很流行

trivy,是漏洞扫描的利器。

3. kube-bench

第三个安全工具:kube-bench。

  • CIS基准检查
  • 安全配置审计
  • 自动化
  • 报告详细
  • 官方推荐

kube-bench,是安全审计的工具。

4. falco

第四个安全工具:falco。

  • 运行时安全
  • 系统调用监控
  • 异常检测
  • 实时告警
  • 很强大

falco,是运行时安全的守护者。

七、CI/CD工具

1. Argo CD

第一个CI/CD工具:Argo CD。

  • GitOps工具
  • 声明式部署
  • 自动同步
  • 可视化
  • 很流行

Argo CD,是GitOps的代表。

2. Flux

第二个CI/CD工具:Flux。

  • 另一个GitOps工具
  • CNCF毕业项目
  • 轻量级
  • 模块化
  • 也很好用

Flux,是GitOps的另一个选择。

3. Helm

第三个CI/CD工具:Helm。

  • K8s包管理器
  • Chart管理
  • 模板化
  • 版本管理
  • 事实标准

Helm,是K8s的包管理。

4. Kustomize

第四个CI/CD工具:Kustomize。

  • 无模板配置管理
  • overlay机制
  • 原生支持
  • 简单灵活
  • 和Helm互补

Kustomize,是配置管理的另一种方式。

八、我的工具组合

1. 日常使用

我的日常工具组合:

  • kubectx + kubens:切换集群和命名空间
  • k9s:日常操作
  • stern:查看日志
  • kubectl-tree:查看资源关系
  • Lens:复杂操作

这些工具,每天都在用。

2. 排错时

排错时的工具:

  • k9s:查看状态
  • stern:查看日志
  • kubectl-debug:调试Pod
  • tcpdump:网络分析
  • kubectl-tree:资源关系

排错,工具很重要。

3. 监控时

监控时的工具:

  • Prometheus + Grafana:长期监控
  • kubebox:实时监控
  • 告警系统:及时通知

监控,是稳定的保障。

4. 安全审计时

安全审计时的工具:

  • kubescape:安全扫描
  • trivy:漏洞扫描
  • kube-bench:基准检查
  • falco:运行时监控

安全,不能忽视。

九、工具选择建议

1. 从基础开始

第一个建议:从基础开始。

  • 先学好kubectl
  • 再用辅助工具
  • 不要一开始就用复杂工具
  • 基础扎实最重要

基础,是根本。

2. 按需选择

第二个建议:按需选择。

  • 不要什么工具都装
  • 根据需要选择
  • 解决实际问题
  • 工具是手段不是目的

按需,是理性的选择。

3. 保持更新

第三个建议:保持更新。

  • K8s在更新
  • 工具也在更新
  • 关注新工具
  • 淘汰旧工具
  • 保持学习

更新,是保持效率的关键。

4. 团队统一

第四个建议:团队统一。

  • 团队用统一的工具
  • 方便协作
  • 方便分享
  • 方便培训
  • 提高整体效率

统一,是团队效率的基础。

十、写在最后

K8s工具推荐,提升效率的利器。

命令行工具:kubectx + kubens、k9s、kubectl-tree、kubectl-neat、stern。可视化工具:Lens、Dashboard、Octant、Kubevious。监控工具:Prometheus + Grafana、kubebox、Weave Scope、Goldpinger。调试工具:kubectl-debug、ephemeral-containers、kubectl-trace、tcpdump。安全工具:kubescape、trivy、kube-bench、falco。CI/CD工具:Argo CD、Flux、Helm、Kustomize。

2023年了,Kubernetes已经成为容器编排的事实标准,生态越来越完善,工具越来越丰富。选择合适的工具,能大幅提升效率。但工具只是手段,理解原理才是根本。

最后,用一句话总结:"K8s工具很多,选择合适的,能大幅提升效率。但工具只是辅助,理解原理才是根本。"

愿这些工具,能让你的K8s工作更轻松。