Weave Scope 的运用 电脑版发表于:2020/6/29 14:52  >#Weave Scope 的运用 [TOC] Weave Scope 的介绍 ------------ <br/> >###简介 <br/> >Weave Scope 用于监控、可视化和管理 Docker 以及 Kubernetes。 Weave Scope 这个项目会自动生成容器之间的关系图,方便理解容器之间的关系,也方便监控容器化和微服务化的应用。 <br/> >###Weave Scope 的功能特性 <br/> - 拓扑映射 - Scope 中的视图 - 图形或表格模式 - 灵活的过滤 - 强大的搜索 - 实时的应用和容器指标 - 使用插件 API 生成自定义指标 <br/> Weave Scope 对 Docker 的运用 ------------ >###环境配置  <br/> >开通安全组端口 **4040**  <br/> >###本地安装 Weave Scope <br/> >安装与下载 ```bash sudo curl -L git.io/scope -o /usr/local/bin/scope sudo chmod a+x /usr/local/bin/scope ```  >Weave Scope作为容器运行,可通过HTTP访问。要启动Scope,请执行`scope launch`命令的主机上。  >启动成功(但我们发现我们这里没有其他容器) 启动Scope容器后,可以在端口4040上访问UI 。使用下面的链接可视化Docker主机。  >###部署应用程序 <br/> >首先,启动两个链接的容器以演示网站/数据库架构。(这里使用的 Katacode 提供的包) ```bash docker run -d --name redis redis docker run -d --link redis:redis katacoda/redis-node-docker-example ``` >查看链路情况  >在用户界面中,您可以查看链接并浏览每个容器节点的详细信息。其中包括CPU使用率,TCP连接和内存负载。 该UI还允许您在容器内附加并启动Shell提示符。 通过单击节点(作用域中的六边形),您可以找到有关容器的更多信息。  Weave Scope 对 k8s 的运用 ------------ >###环境配置 - Centos 7.x 单master集群节点 >Weave Scope部署为在Kubernetes集群上运行的Pod。从这里可以直观地看到容器的运行情况以及不同容器之间的流量。 您可以通过以下方式查看用于部署Weave的配置 ```bash curl -L https://cloud.weave.works/launch/k8s/weavescope.yaml ``` >配置将启动复制控制器和服务。它还部署了一个DaemonSet。DaemonSet会自动将Pod部署到新主机上,然后将新主机部署到群集中。结果是您可以可视化整个网络,而无需更改它,而无需管理Scope部署或将其部署到这些新主机上。 <br/> >###在K8S上安装 <br/> >要部署Weave Scope,请将yaml与kubectl结合使用。当前,它需要将validate设置为false;这将在Kubernetes的未来版本中修复。 ```bash kubectl create -f 'https://cloud.weave.works/launch/k8s/weavescope.yaml' ``` >由于部署后命名空间为weave,我们可以通过使用以下命令检查Pod的状态,等待其部署 `kubectl get pods -n weave` 默认情况下,部署后,只能从群集内部对其进行访问。您需要创建一个公开端口的服务。在下面的命令中,我们还通过external-ip参数将服务公开给外界。不建议将服务公开到公共IP上。相反,它应该需要VPN连接才能访问。 ```bash pod=$(kubectl get pod -n weave --selector=name=weave-scope-app -o jsonpath={.items..metadata.name}) kubectl expose pod $pod -n weave --external-ip="your_server_ip" --port=4040 --target-port=4040 ``` <br/> >###通过Weave查看可视化集群 <br/> >查看服务情况 ```bash kubectl get service -n weave ```  <br/> >借助Scope和示例应用程序,我们可以可视化集群。 ```bash kubectl proxy ``` >访问我们拼接后的链接 `http://localhost:8001/api/v1/namespaces/weave/services/weave-scope-app-65df878cb5-m9xc5/proxy` 如何拼接大家可以参考这篇文章: <a href="https://www.tnblog.net/hb/article/details/4681" target="_blank">点击这里</a> <br/> >展示成果   关于细节部分 ------------ >###关于UI部分 <br/> >PROCESS | 点击scope-probe后会显示该进程的详细信息 | | ------------ | | 状态(CPU,内存,打开文件) | | INFO(PID、COMMAND、PARENTPID、THREADS) | | INBOUND | | OUTBOUND | >CONTAINERS | 点击后显示cadvisor容器的详细信息 | | ------------ | | 状态(CPU,内存) | | 信息(图像,命令,状态,网络,正常运行时间,重启,IPS,端口,创建,ID) | | INBOUND | | OUTBOUND | | 状态 | | 环境变量(路径) | | DOCKER标签(维护者,作品编织角色) | | 图像(ID,名称,尺寸,虚拟尺寸) | 更多细节请参考:https://www.jianshu.com/p/1155b97bfdd8 结束 ------------ > 随着应用程序变得越来越复杂,Scope使您能够查看和管理它们的结构和性能。