`
m635674608
  • 浏览: 5052454 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用Netsil监控Kubernetes上的微服务

 
阅读更多

Kubernetes 是容器编排和调度领域的王者,它击败了竞争对手Docker Swarm和Apache Mesos,开启了闪耀的未来,微服务可以 自修复 ,可以 自动扩展 ,可以跨zone,region甚至跨云供应商进行federate。在这样的云原生应用程序的新纪元里,能够以简单的方式洞察服务之间是如何交互的变得日益重要——这可和大海捞针般大范围寻找导致性能问题的某个特定的原因是不一样的。

我们花了些时间研究Netsil并且 将其解决方案打包成 原生的Kubernetes Deployment。Netsil的应用程序,Application Operations Center (AOC,应用运维中心),帮助用户观察并且收集跨Kubernetes集群运行的微服务应用程序的分析数据。服务本身是不可知的,因为它在网络上才能决定其实际上如何运行。随着时间的推移,并且实时地,它学习并且发现用户的环境,帮助用户逐渐搭建出SLA指标器,警报器等等。

开始吧

首先你需要一个Kubernetes集群。我使用 Stackpoint.io 快速创建一个集群。在任意主流供应商,比如AWS,GCE或者Azure上创建一个集群。需要确保为你的主节点选择足够大的配置——这是所有收集器会将数据发送这里,在网络,处理器和内存上都可能消耗比较大。worker节点可以是任何配置,只要能够满足微服务应用程序的需求。在我的示例里,使用了较大的实例配置,因为我会将多种服务都推送到这个环境里。

在我们的示例里,使用3个N1标准4的实例构建了一个集群,这些实例通过HAProxy Ingress Controller暴露出去,它是自发现的,并且在部署它们时注册了AOC服务。我们能够使用集群的公开VIP访问AOC仪表盘。

开始前

在仅仅运行了Kubernetes服务的空空的集群上再安装一些服务,这里使用 Sock Shop ,这是由 Weaveworks 开发的微服务参考程序。这样有助于模拟一个真实的环境。Sock Shop使用了14个不同的服务,这是很多企业的应用程序会达到的复杂度。现在将AOC添加到我们的环境里。

这里 有关于Sock Shop的详细信息。将其推送到环境里很简单,仅仅需要在克隆了repo后运行如下命令即可:

kubectl apply -f deploy/kubernetes/manifests

然后检查Pod是否已经在线了:

$ kubectl get pods --namespace=default



NAME READY STATUS RESTARTS AGE

cart-3694116665-eccpp 1/1 Running 0 55m

cart-db-2305146297-u30g8 1/1 Running 0 55m

catalogue-11453786-lkslj 1/1 Running 0 55m

catalogue-db-393939662-bn7uc 1/1 Running 0 55m

front-end-382083024001e6t 1/1 Running 0 55m

orders-3498886496-z8jun 1/1 Running 0 55m

orders-db-1775353731-u7dmf 1/1 Running 0 55m

payment-3012088042-vbfhw 1/1 Running 0 55m

queue-master-936560853-ocmxi 1/1 Running 0 55m

rabbitmq-18974476212ij04 1/1 Running 0 55m

shipping-1232389217-b278a 1/1 Running 0 55m

spc-balancer-biilo 1/1 Running 0 1h

user-3090014237196pv 1/1 Running 0 55m

user-db-1338754314-exyou 1/1 Running 0 55m

开始观察吧

我们已经有了运行着的Kubernetes 1.4集群,并且安装了Sock Shop应用程序,那么开始学习环境里是什么吧。当股票购买者遇到问题时我们是否能知道呢?

在部署AOC之前需要在所有主机上运行如下命令。该命令帮助避免一个已知的Flannel和kube-proxy的 竞争问题

iptables -t nat -I POSTROUTING -o flannel.1 -s host-private-ip -j MASQUERADE

使用每台主机的私有IP替换 host-private-ip 。完成后,从GitHub克隆AOC Kubernetes repo:

git clone https://github.com/netsil/netsil-kube.git

并且使用如下单个命令将其推送到Kubernetes里:

kubectl apply -f netsil.yml

确保Pod和Service已经在线了。AOC容器可能需要一些时间,但是收集器会被启动并且队列里的数据会被推送进来,因为它们已经开始发现你的环境了。

$ kubectl get po,svc — namespace=netsil



NAME READY STATUS RESTARTS AGE

collector-7wpaa 1/1 Running 0 1h

collector-9o6k4 1/1 Running 0 1h

collector-rzekv 1/1 Running 0 4m

netsil-vjf5f 1/1 Running 0 1h

NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE

netsil 10.200.126.143 <nodes> 443/TCP,2001/TCP,2003/TCP,2003/UDP 1h

AOC拓扑有两个主要组件。第一个是作为带有单个副本的Replication Controller的一部分运行的Pod。它运行AOC仪表盘和数据收集的平台。第二个组件是AOC收集器的 DaemonSet 。它告诉Kubernetes在环境的所有节点上运行一个带有收集器容器的Pod。这些收集器配置为向AOC Pod发送信息。

生成流量

我们将使用Sock Shop的更多工具来模拟网站上的购物行为。这让我们能看到AOC是如何学习流量模式以及我们的通用拓扑的。

你需要知道Sock Shop监听以及运行的前端IP地址和端口:

docker run weaveworksdemos/load-test -h $frontend-ip[:$port] -r 100 -c 2

随着load-test的运行,可以开始看到AOC随着数据的获得被点亮了:

因为AOC作为DaemonSet部署,如果任意Pod销毁了并且在其他地方重新调度,AOC能够继续观测到拓扑,随着Kubernetes的变化而变化。

我很喜欢AOC的一个原因是部署通过服务来组织,并且我能够实时地观察到环境,并且开始深入不同的度量,为了那些可能影响到客户的事情搭建服务级别的警报。因此,当环境像下图一样变红时,我能够获得警报,知道某个服务处在紧急状态,比如Sock Shop里的信用卡和地址端点。

我甚至还可以深入仪表盘,知道承受最大压力的Pod和容器是什么。在本示例里,网络压力最大的容器是flannel Pod。这让我们能够了解最繁忙的服务是哪个,能够帮助我们重新思考配置或者Kubernetes里分发部署的方式。

总结

Netsil的AOC是非常棒的工具,可以帮助用户实时观察环境,随着使用模式的变化而更新。用户可以挖掘历史数据并且添加警报。应用程序随着添加更多的节点会自动扩展,新节点上线后就会在上面启动一个收集器,这样用户能够得到节点从上线到销毁的所有数据。

如果想在自己的Kubernetes环境里使用Application Operations Center,只需要下载这里的manifests就可以了。可以在 http://netsil.com 学习Netsil和Application Operations Center。

原文链接: Microservice Monitoring in Kubernetes with Netsil (翻译:崔婧雯 校对:)

===========================

译者介绍

崔婧雯,现就职于IBM,高级软件工程师,负责IBM WebSphere业务流程管理软件的系统测试工作。曾就职于VMware从事桌面虚拟化产品的质量保证工作。对虚拟化,中间件技术,业务流程管理有浓厚的兴趣。

 

http://www.tuicool.com/articles/J3iYjqI

分享到:
评论

相关推荐

    qt-opensource-mac-x64-5.12.12.zip.003

    qt-opensource-mac-x64-5.12.12.zip.003

    gnome-getting-started-docs-es-3.28.2-1.el7.x64-86.rpm.tar.gz

    1、文件内容:gnome-getting-started-docs-es-3.28.2-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gnome-getting-started-docs-es-3.28.2-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    西门子200smart PLC与触摸屏飞剪程序:专业设计与图纸集成,飞锯追剪程序,PLC和触摸屏采用西门子200smart,包含图纸,触摸屏程序和PLC程序 ,核心关键词:飞锯追剪程序; 西门子2

    西门子200smart PLC与触摸屏飞剪程序:专业设计与图纸集成,飞锯追剪程序,PLC和触摸屏采用西门子200smart,包含图纸,触摸屏程序和PLC程序。 ,核心关键词:飞锯追剪程序; 西门子200smart; PLC程序; 触摸屏程序; 图纸; 追剪控制。,"西门子200smart驱动的飞锯追剪程序:全图、触摸屏与PLC集成方案"

    tomcat-9.0.56

    该工具主要实现jar包目录共享

    S7700智能路由交换机 产品文档

    S7700智能路由交换机(以下简称S7700)是华为公司面向下一代企业网络架构而推出的新一代高端智能路由交换机。该产品基于华为公司智能多层交换的技术理念,在提供稳定、可靠、安全的高性能L2/L3层交换服务基础上,进一步提供MPLS VPN、业务流分析、完善的QoS策略、可控组播、资源负载均衡、一体化安全等智能业务优化手段,同时具备超强扩展性和可靠性。 S7700广泛适用于园区网络和数据中心网络,可对无线、话音、视频和数据融合网络进行先进的控制,帮助企业构建交换路由一体化的端到端融合网络。 S7700产品为满足不同用户的需求,同时提供S7703、S7703 PoE、S7706、S7706 PoE、S7710和S7712六款产品类型,用户可以根据不同的网络需求进行灵活的选择。

    gimp-help-ca-2.8.2-1.el7.x64-86.rpm.tar.gz

    1、文件内容:gimp-help-ca-2.8.2-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gimp-help-ca-2.8.2-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    OMRON PLC CJ2M项目案例:昆仑通泰触摸屏下的模拟量称重与SCU串行通信,巧妙控制三菱变频器之MODBUS RTU协议转换实现纪实,OMRON大型PLC CJ2M项目案例,配套昆仑通泰触摸屏

    OMRON PLC CJ2M项目案例:昆仑通泰触摸屏下的模拟量称重与SCU串行通信,巧妙控制三菱变频器之MODBUS RTU协议转换实现纪实,OMRON大型PLC CJ2M项目案例,配套昆仑通泰触摸屏程序 包含模拟量称重模块,SCU串行通讯模块,通过CMND指令把Fins协议转为MODBUS RTU 控制32台三菱 D720S变频器,画面复杂,程序设计巧妙,功能块结构,完整项目程序,有喜欢OMRON程序的朋友值得学习借鉴 ,OMRON PLC; CJ2M项目; 配套昆仑通泰触摸屏程序; 模拟量称重模块; SCU串行通讯模块; Fins协议转换MODBUS RTU; 三菱D720S变频器控制; 画面复杂程序设计; 功能块结构; 完整项目程序。,OMRON CJ2M PLC项目案例:多模块协同控制32台变频器程序解析

    gjs-tests-1.52.5-1.el7-6.x64-86.rpm.tar.gz

    1、文件内容:gjs-tests-1.52.5-1.el7_6.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gjs-tests-1.52.5-1.el7_6.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    gnome-keyring-3.28.2-1.el7.x64-86.rpm.tar.gz

    1、文件内容:gnome-keyring-3.28.2-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gnome-keyring-3.28.2-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    高斯光驱动下的双线银表面等离激元(SPP)效应研究,高斯光激发双线银SPP ,关键词:高斯光激发; 双线银; SPP; 信号处理; 物理性质; 电磁响应 ,高斯光激发双线银表面等离激元(SPP)研究

    高斯光驱动下的双线银表面等离激元(SPP)效应研究,高斯光激发双线银SPP。 ,关键词:高斯光激发; 双线银; SPP; 信号处理; 物理性质; 电磁响应。,高斯光激发双线银表面等离激元(SPP)研究

    医学统计学期末考题详解-涵盖多类统计分析方法及其应用

    内容概要:本文档为医学统计学期末试题,旨在测试学生对统计分析方法的理解及运用能力。主要内容涵盖从描述性统计分析、概率分布、参数估计、假设检验、非参数检验、方差分析到回归分析等多个方面的统计技术和应用场景。通过具体问题设定指导考生如何正确选择检验方法、计算相关参数、绘制图形、解释统计结果的实际含义,并强调使用R、Matlab或Python进行数据分析和编程解决问题的能力。同时,试题还特别关注对统计推理的应用价值,例如,要求考生提供关于统计决策背后生物学或者医疗实践中合理的解释。 适合人群:医学院校的学生尤其是即将修完《医学统计学》课程的大二或大三学生,同时也适用于从事医学研究领域的工作者。 使用场景及目标:此试题用于期末考试评估目的,帮助老师了解学生对理论知识掌握情况及应用技能;对于学生而言,它不仅是一次复习工具也是一种练习平台,在备考过程中能深化理解医学背景下的统计思维方式。 其他说明:试卷结构严谨,题目类型多样,覆盖广泛但深度适中,既考察基础知识又训练复杂问题解决技巧,为未来从事科研工作奠定坚实基础。另外,附上了详细的评分标准以便公平评判每一位考生的表现。

    gnome-common-3.18.0-1.el7.x64-86.rpm.tar.gz

    1、文件内容:gnome-common-3.18.0-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gnome-common-3.18.0-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    Java毕业设计-springboot-vue-书籍学习平台(源码+sql脚本+29页零基础部署图文详解+36页论文+10页答辩+环境工具+教程+视频+模板).zip

    资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:29页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借Spring Boot框架搭建后台。前台采用支持HTML5的VUE框架。用MySQL存储数据,可靠性强。 能学到什么: 使用Spring Boot搭建后台。VUE框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。

    基于Python实现的机器人按摩控制系统代码解析与应用

    内容概要:本文档展示了一个用Python编程语言编写的简单按摩机器人的控制器代码,它能够模拟不同类型的按摩手法并对其进行管理,其中包括四种标准按摩模式——推拿、揉捏、拍打和震动,同时也允许对强度级别和持续时间进行个性化设定。该系统是通过控制台上的人机交互界面来进行参数配置的,并通过一个简易的命令行日志系统提供反馈。此外,文档指出,在真实的物理设备里,还需要加入对于底层机电设备的具体控制指令。 适合人群:对于有兴趣学习智能家庭健康设备开发或是对机器人动作控制感兴趣的开发者来说非常有用,尤其适用于希望快速入门按摩机械人控制领域的初学者或有一定经验的程序员。 使用场景及目标:此教程主要用于教育目的,目的是让用户了解如何构建简单的机器人按摩控制系统;它也可作为研究原型或概念验证工具,用于指导实际产品的早期设计阶段。除此之外,还可以作为编程教学案例,用来教授面向对象的概念和条件判断语句的应用。 其他说明:尽管这里提供的例子比较简单,但它已经涵盖了完整的机器人控制流程的关键要素,并为进一步的发展留下了足够的空间,比如集成温度控制特性或支持更多样化的按摩技术。如果读者希望深入探索这个领域,则可以根据自身需要添加新的特性和功能模块。

    网页HTML掷色子小游戏

    愿意赌上一切吗?来吧!

    pycharm跑yolov遇到的问题

    pycharm跑yolov遇到的问题记录

    江苏省公共数据授权运营管理暂行办法.docx

    江苏省公共数据授权运营管理暂行办法.docx

    google-noto-sans-kannada-ui-fonts-20141117-5.el7.x64-86.rpm.tar.gz

    1、文件内容:google-noto-sans-kannada-ui-fonts-20141117-5.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/google-noto-sans-kannada-ui-fonts-20141117-5.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    无感FOC电机三相控制高速吹风筒方案详解:高效率、低噪音、低成本,AC220V 80W功率输出,最高转速达20万RPM,支持按键调试,原理图及PCB软件代码齐全 ,无感FOC电机三相控制高速吹风筒方案

    无感FOC电机三相控制高速吹风筒方案详解:高效率、低噪音、低成本,AC220V 80W功率输出,最高转速达20万RPM,支持按键调试,原理图及PCB软件代码齐全。,无感FOC电机三相控制高速吹风筒方案 FU6812L+FD2504S 电压AC220V 功率80W 最高转速20万RPM 方案优势:响应快、效率高、噪声低、成本低 控制方式:三相电机无感FOC 闭环方式:功率闭环,速度闭环 调速接口:按键调试 提供原理图 PCB软件代码 ,关键词: 无感FOC电机; 三相控制; 高速吹风筒; 方案优势; 响应快; 效率高; 噪声低; 成本低; 电压AC220V; 功率80W; 最高转速20万RPM; 控制方式; 功率闭环; 速度闭环; 调速接口; 按键调试; 原理图; PCB软件代码; FU6812L+FD2504S。,基于无感FOC控制的高速吹风筒方案:FU6812L+FD2504S 20万RPM高效低噪风机

    gnome-backgrounds-3.28.0-1.el7.x64-86.rpm.tar.gz

    1、文件内容:gnome-backgrounds-3.28.0-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gnome-backgrounds-3.28.0-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

Global site tag (gtag.js) - Google Analytics