Kubernetes 集群可视化监控之Weave Scope

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

一、背景

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

二、组件详解

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、图表方式

在这里插入图片描述

1.2、表格方式

在这里插入图片描述

2、对象资源使用情况

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

在这里插入图片描述

3、日志信息

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

在这里插入图片描述

4、描述信息

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

在这里插入图片描述

5、资源伸缩

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

在这里插入图片描述

6、容器操作

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

在这里插入图片描述

7、条件查询

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

在这里插入图片描述

8、搜索功能

8.1、名称

图片

8.2、资源使用率

在这里插入图片描述

五、小结

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
13天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
11天前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
51 12
|
16天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
30 2
|
28天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
2月前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
83 1
|
3月前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
3月前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。
|
3月前
|
Kubernetes Cloud Native 云计算
云原生之旅:Kubernetes 集群的搭建与实践
【8月更文挑战第67天】在云原生技术日益成为IT行业焦点的今天,掌握Kubernetes已成为每个软件工程师必备的技能。本文将通过浅显易懂的语言和实际代码示例,引导你从零开始搭建一个Kubernetes集群,并探索其核心概念。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
152 17
|
3月前
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
238 4
|
3月前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
1103 1

热门文章

最新文章