K8s 可视化监控之 -Weave Scope
一 背景
在生成环境中k8s应用部署众多,需要一款可视化工具方便日常获知集群的实时状态,并为故障排查提供及时和准确的数据支持。在此背景下,Weaveworks的项目Weave Scope 应运而生,其是一款 Docker 和 Kubernetes 可视化监控工具。Scope 提供了至上而下的集群基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时监控和问题诊断,以确保容器应用程序的稳定性和性能,通过查看容器上下文的度量/标记,以及原数据,在容器内部的进程之间可以轻松的确定运行服务消耗最多CPU/内存资源的容器,
二 组件详解
2.1 功能
Weave Scope可以监控kubernetes集群中的一系列资源的状态、资源使用情况、应用拓扑、scale、还可以直接通过浏览器进入容器内部调试等,其提供的功能包括:
- 交互式拓扑界面
- 图形模式和表格模式
- 过滤功能
- 搜索功能
- 实时度量
- 容器排错
- 插件扩展
2.2 组成
Weave Scope由App和Probe
两部分组成:
Probe Agent负责收集容器和宿主的信息,并发送给 App
App 负责处理这些信息,并生成相应的报告,并以交互界面的形式展示
2.3 部署模式
weave-scope-agent
,集群每个节点上都会运行的 scope agent 程序,负责收集数据,其部署为DaemonSet模式。weave-scope-app
,scope 应用,从 agent 获取数据,通过 Web UI 展示并与用户交互,其部署为Deployment模式。weave-scope-app
,默认是 ClusterIP 类型,为了方便已通过kubectl edit
修改为NodePort
。
三 安装部署
3.1 Node节点部署
最初Weave Scope可以在运行Docker容器的宿主机进行安装部署
之后访问http://宿主机IP:4040进行访问
3.2 K8s 资源文件部署
3.2 helm 部署
目前helm 仓库提供了weave-scope编写好的charts,可以fetch到本地,进行简单的修改即可安装,非常方便快捷
四 使用
4.1 资源对象查看
在此以POD资源对象为例,Weave Scope监控对象有进程、容器、pods、主机等,监控项有cpu、内存、平均负载等。
4.1.1 图表方式
4.1.2 表格方式
4.2 对象资源使用情况
点击某个pod,会展示状态、资源使用、进程等详细信息
4.3 日志信息
点击具体POD的get logs弹出Terminal窗口查看日志
4.4 描述信息
点击具体POD上的describe通过Terminal来查看POD资源信息
4.5 资源伸缩
点击deployment类型的Controllers,可以来web界面来扩展或缩小以及查看POD的数量及详细信息。
4.6 容器操作
可以对容器进行attach、exec shell、restart、paus和stop操作以及容器日志查看
4.7 条件查询
左下角可按条件展示,有容器类型(系统或者应用)、容器状态(停止或者运行)、命名空间等。
4.8 搜索功能
4.8.1 名称
4.8.2 资源使用率
五 反思
weave scope可以以其简洁的可视化为我们更生动形象的展现出service/controller/pod等资源对象的管理及简单的web ui操作,方便故障排除及时定位
weave scope作为web ui目前缺少登录验证,可以利用其他方式里面web服务器的验证做安全管控。
参考链接
https://cloud.weave.works/signup
https://www.weave.works/docs/
https://github.com/weaveworks/scope
版权声明: 本文为 InfoQ 作者【雪雷】的原创文章。
原文链接:【http://xie.infoq.cn/article/3e29a41b65a35263e7fe7beb9】。文章转载请联系作者。
评论