之前一直在寻找一个 k8s 监控的工具,因为一直使用的是本地的 lens 的客户端,虽然使用上已经非常方便了,但是其实对于资源消耗的监控少了一点,有些资源消耗并不是能容易看到,并且服务间依赖是没有办法表现出来的,后来发现了 Weave Scope 满足了我的需求。

链接

https://github.com/weaveworks/scope

特点

  • 资源监控:能实时反映整个集群中的资源状况 cpu 内存 使用情况 并且支持各种角度
  • 服务间依赖:能通过图形展现出服务之间访问的依赖关系
  • 容器交互:实时查看日志和描述信息
  • 支持插件:可以通过插件扩展
  • 部署方便:一个命令即可部署完成

监控页面

资源监控

weavescope-hosts-memory-stat

可以清楚的看到每个 node 的资源使用情况

服务间依赖

weavescope-service-dependcy

因为内部服务与服务之间通过 rpc 进行交互,从这里可以很容易看出,某个服务被别的五个服务所依赖调用

容器交互

weacescope-pod-interaction

可以看到占用的 cpu 和内存的情况,然后占用的端口等,还有日志信息

部署

支持直接部署在 k8s 集群中,不需要额外的任何配置

https://www.weave.works/docs/scope/latest/installing/#k8s

1
2
3
4
5
# 下面一个命令就能部署完成了
kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"

# 通过下面的命令临时暴露端口转发到本地进行访问
kubectl port-forward -n weave "$(kubectl get -n weave pod --selector=weave-scope-component=app -o jsonpath='{.items..metadata.name}')" 4040

访问本地: http://localhost:4040

插件

https://github.com/weaveworks-plugins/

比如有一个 http 流量统计的插件:https://github.com/weaveworks-plugins/scope-http-statistics

不过现在还并不是很多,但是基本功能其实已经足够了

鉴权

https://www.weave.works/docs/scope/latest/faq/

支持最简单的一个 http 鉴权,如果有需要可以设置对应参数

总结

如果你需要一个资源监控的工具,并且觉得上面的信息就是你需要的,可以尝试使用下,目前是我比较推荐的一个集群监控。

当然它也有个我认为的小不足:其实服务复杂的时候,服务间的依赖也会非常复杂,而且页面不支持拖动,就有的时候有点“难看”,如果拓扑中的节点支持拖动其实就蛮不错的,个人想法。

相关链接:https://www.cnblogs.com/linuxk/p/10560022.html