Kubernetes 集群可视化监控之Weave Scope

一、背景

在生产环境中 kubernetes 应用部署众多,需要一款可视化工具方便日常获知集群的实时状态,并为故障排查提供及时和准确的数据支持。在此背景下,Weaveworks 的项目 Weave Scope 应运而生,其是一款 Docker 和 Kubernetes 可视化监控工具。Scope 提供了至上而下的集群基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时监控和问题诊断,以确保容器应用程序的稳定性和性能,通过查看容器上下文的度量/标记,以及原数据,在容器内部的进程之间可以轻松的确定运行服务消耗最多CPU/内存资源的容器。

官网地址:https://www.weave.works/docs/scope/latest/installing/

二、组件详解

1、功能

Weave Scope 可以监控 kubernetes 集群中的一系列资源的状态、资源使用情况、应用拓扑、scale、还可以直接通过浏览器进入容器内部调试等,其提供的功能包括:

  • 交互式拓扑界面
  • 图形模式和表格模式
  • 过滤功能
  • 搜索功能
  • 实时度量
  • 容器排错
  • 插件扩展

2、组成

Weave Scope 由App和Probe 两部分组成:

  • Probe Agent负责收集容器和宿主的信息,并发送给 App
  • App 负责处理这些信息,并生成相应的报告,并以交互界面的形式展示

3、部署模式

  • weave-scope-agent,集群每个节点上都会运行的 scope agent 程序,负责收集数据,其部署为DaemonSet模式。
  • weave-scope-app,scope 应用,从 agent 获取数据,通过 Web UI 展示并与用户交互,其部署为Deployment模式。
  • weave-scope-app,默认是 ClusterIP 类型,为了方便已通过kubectl edit修改为NodePort

三、安装部署

$ kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"


# 修改svc 为NodePort 
$ kubectl patch svc $(kubectl get svc -n weave |grep weave-scope-app |awk '{print $1}') -p '{"spec":{"type": "NodePort"}}' -n weave

$ kubectl get svc -n weave |grep weave-scope-app 
weave-scope-app   NodePort   10.96.49.99   <none>        80:32709/TCP   27d

# 查看weave 的pod 
$ kubectl get pod -n weave -o wide
NAME                                        READY   STATUS    RESTARTS   AGE     IP               NODE                   NOMINATED NODE   READINESS GATES
weave-scope-agent-8qng5                     1/1     Running   0          11m     172.16.106.200   k8s-master.novalocal   <none>           <none>
weave-scope-agent-gq292                     1/1     Running   0          11m     172.16.106.203   k8s-node-3.novalocal   <none>           <none>
weave-scope-agent-kvcv5                     1/1     Running   0          11m     172.16.106.226   k8s-node-2.novalocal   <none>           <none>
weave-scope-agent-tzpwm                     1/1     Running   0          11m     172.16.106.227   k8s-node-1.novalocal   <none>           <none>
weave-scope-app-d54d4f97f-9mj7h             1/1     Running   0          7m35s   10.100.156.165   k8s-node-3.novalocal   <none>           <none>
weave-scope-cluster-agent-5c5dcc8cb-csjvs   1/1     Running   0          11m     10.100.156.167   k8s-node-3.novalocal   <none>           <none>

访问地址:http://node_ip:32709/

四、使用

1、资源对象查看

在此以 POD 资源对象为例,Weave Scope监控对象有进程、容器、pods、主机等,监控项有 cpu、内存、平均负载等。

1.1、图表方式

Kubernetes 集群可视化监控之Weave Scope

1.2、表格方式

Kubernetes 集群可视化监控之Weave Scope

2、对象资源使用情况

点击某个 pod,会展示状态、资源使用、进程等详细信息

Kubernetes 集群可视化监控之Weave Scope

3、日志信息

点击具体 POD 的 get logs 弹出 Terminal 窗口查看日志

Kubernetes 集群可视化监控之Weave Scope

4、描述信息

点击具体 POD上的 describe 通过 Terminal 来查看 POD 资源信息

Kubernetes 集群可视化监控之Weave Scope

5、资源伸缩

点击 deployment 类型的 Controllers,可以来 web 界面来扩展或缩小以及查看 POD 的数量及详细信息。

Kubernetes 集群可视化监控之Weave Scope

6、容器操作

可以对容器进行 attach、exec shell、restart、paus 和 stop 操作以及容器日志查看

Kubernetes 集群可视化监控之Weave Scope

7、条件查询

左下角可按条件展示,有容器类型(系统或者应用)、容器状态(停止或者运行)、命名空间等。

Kubernetes 集群可视化监控之Weave Scope

8、搜索功能

8.1、名称

Kubernetes 集群可视化监控之Weave Scope

8.2、资源使用率

Kubernetes 集群可视化监控之Weave Scope

五、小结

weave scope 可以以其简洁的可视化为我们更生动形象的展现出service/controller/pod等资源对象的管理及简单的 Web UI 操作,方便故障排除及时定位。

上一篇:你需要知道的JVM参数都在这里


下一篇:Kubernetes工作实用命令集结号