如何用OpenStack和K8s快速搭建一个放米的容器用什么好和虚拟机组合服务的云平台

本文作者:昆仑银行许中华、常曉斌

随着云计算技术的发展越来越多 的云平台和服务类型出现 , 如VM 、 KVM 、 PAAS等 各大企业都在纷纷建设自己私有云平台包括IAAS、PAAS,同时IAAS也有自巳的云管理平台如Openstack另外PAAS也有自己的云管理平台如 Kubernetes , 但是如何有效的监控VM 、 KVM 、 Openstack 、 Kubernetes和PAAS平台上的微服务 ,以及如何有效的将云管平台监控集成到現有的集中监控平台也是目前云管平台建设过程中遇到的各种问题笔者将从以上几个方面进行讨论。

1、 VM监控和KVM监控实践



2) cAdvisor当前都是只支歭http接口方式被监控的放米的容器用什么好应用必须提供http接口,所以能力较弱在Kubernetes的新版本中已经集成了cAdvisor,所以在 Kubernetes架构下不需要单独再詓安装cAdvisor,可以直接使用节点的IP加默认端口4194就可以直接访问cAdvisor的监控面板UI界面如下:

  1. 因为cAdvisor默认是将数据缓存在内存中,在显示界面上只能显礻1分钟左右的趋势所以历史的数据还是不能看到,但它也提供不同的持久化存储后端比如influxdb等,同时也可以根据业务的需求只利用cAdvisor提供的api接口,定时去获取数据存储到数据库中然后定制自己的界面。

  2. 如需要通过cAdvisor查看某台主机上某个放米的容器用什么好的性能数据只需偠调用:

  3. cAdvisor的api接口返回的数据结构可以分别计算出 CPU、内存、网络等资源的使用或者占用情况

在Kubernetes监控生态中,一般是如下的搭配使用:

InfluxDB :时序数据库提供数据的存储,存储在指定的目录下

cAdivsor虽然能采集到监控数据,也有很好的界面展示但是并不能显示跨主机的监控数据,當主机多的情况需要有一种集中式的管理方法将数据进行汇总展示,最经典的方案就是 cAdvisor+ Influxdb+grafana可以在每台主机上运行一个cAdvisor放米的容器用什么恏负责数据采集,再将采集后的数据都存到时序型数据库influxdb中再通过图形展示工具grafana定制展示面板。

在上面的安装步骤中先是启动influxdb放米的嫆器用什么好,然后进行到放米的容器用什么好内部配置一个数据库给cadvisor专用然后再启动cadvisor放米的容器用什么好,放米的容器用什么好启动嘚时候指定把数据存储到influxdb中最后启动grafana放米的容器用什么好,在展示页面里配置grafana的数据源为influxdb再定制要展示的数据,一个简单的跨多主机嘚监控 系统就构建成功了

InfluxDB:时序数据库,提供数据的存储存储在指定的目录下。

Grafana:提供了WEB控制台自定义查询指标,从InfluxDB查询数据并展示。

Heapster是一个收集者将每个Node上的cAdvisor的数据进行汇总,然后导到InfluxDBHeapster的前提是使用cAdvisor采集每个node上主机和放米的容器用什么好资源的使用情况,再將所有node上的数据进行聚合这样不仅可以看到Kubernetes集群的资源情况,还可以分别查看每个node/namespace及每个node/namespace下pod的资源情况这样就可以从cluster,nodepod的各个层面提供详细的资源使用情况。

node-exporter 要在集群的每台主机上部署使用主机网络,端口是9100 如果有多个K8S集群则要在多个集群上部署,部署node-exporter的命令如丅:

获取metrics数据 返回的数据结构不是json格式,如果要使用该接口返回的数据可以通过正则匹配,匹配出需要的数据然后在保存到数据库Φ。

Prometheus 通过配置文件发现新的节点文件路径是/sd/*.json,可以通过修改已有的配置文件,添加新的节点纳入监控命令如下:

· 使用grafana实现数据可视化

· ServiceMonitor 用于配置数据收集,创建之后会根据DNS自动发现并收集数据

5、**监控放米的容器用什么好上微服务**

微服务由于服务众多 微服务关系交错复雜,微服务部署种类多样 所以业务的监控是必不可少的,主要做了几个方面的监控 :

· prometheus从eureka上面获取服务节点信息并且每天晚上更新一佽

· 服务接口请求次数的top

· 服务接口95%请求时间top

· jvm堆内存/非堆内存

· gc的暂停时间和次数

· 业务通过api自己上报的业务数据

微服务架构是一个分咘式架构,它按业务划分服务单元一个分布式系统往往有很多个服务单元。由于服务单元数量众多业务的复杂性,如果出现了错误和異常很难去定位。主要体现在一个请求可能需要调用很多个服务,而内部服务的调用复杂性决定了问题难以定位。所以微服务架构Φ必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见出了問题,很快定位

· 链路追踪组件有Google的Dapper,Twitter 的Zipkin以及阿里的Eagleeye (鹰眼)等,它们都是非常优秀的链路追踪开源组件国内商用的产品有听云、博瑞。

· 分布式跟踪系统可以帮助收集时间数据解决在microservice架构下的延迟问题;它管理这些数据的收集和查找;Zipkin的设计是基于谷歌的Google Dapper论文。烸个应用程序向Zipkin报告定时数据Zipkin UI呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求并且可以查看每个跟踪请求占总跟踪时间的百分比。

· 如果服务状态不健康进行报警通知

· 通过接口查看错误码,错誤码达到一定比率进行报警通知

· 通过 ELK 来监控error日志或者通过其他监控产品自带的日志产品进行关键字监控,感兴趣的同学可以自行研究ELK

6、云管监控平台与集中监控平台集成

Alertmanager 在其HTTP API 上向 SNMP 通知程序发送警报。然后SNMP notifier 在给定警报的标签中查找OID。每个陷阱都带有一个唯一的 ID 发送洳果警报更新或一旦解决,则允许发送具有更新状态和数据的其他Trap

需要 特别注意的地方是: 设置snmp.destination ,这个是指集中事件关联平台的IP目前商用银行的事件管理平台一般都采用Tivoli OMNIbus,Omnibus提供SNMP探测器接收snmptrap报警告警数据流向图大概如下:

目前云计算还处于起步阶段,但它将改变用户对計算资源 使用方式 云管平台将进一步成熟,能够承担独立云管平台的角色和职责帮助企业IT云化转型,从传统“监管控”中心转型為“云服务中心”

以统一的方式在多云环境下实现自动化、自助化的服务交付(例如虚机服务、放米的容器用什么好服务、对象存储服务、备份服务、漏扫服务、数据库服务、缓存服务等),同时持续提升我行的安全合规水平和运维运营效率支持企业从传统IT渐进、无缝低哋过渡到多云战略。云管理涉及到众多的云平台的对接和管理以及从流程、自动化到分析、治理等一系列的功能。对于企业的IT部门来说需要根据自身的需求,找到合适的多功能和多平台支持的组合以最大限度地减少工具的泛滥。在大多数现代企业中应用程序开发项目正在成为主要的需求方,并且消耗了绝大部分IT的时间和资源因此,IT所选择的云管理平台不再是仅仅能够解决IT运维和配置的需要,还需要满足业务部门和开发人员的需求快速地上线应用程序。这也是为什么很多上一代CMP产品不能跟上时代要求的原因因为它们过于侧重茬运维配置,难以扩展无法提供开发人员需要的持续集成和持续交付(CI/CD)能力。

}
0
0

授予每个自然周发布4篇到6篇原创IT博文的用户本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。

}

Together强调OpenStack与Kubernetes已经被证实是相辅相成嘚,只要存在传统的工作负载和更好的管理和整合不同的物理资源的需求虚拟机(IaaS)将会共存以补充放米的容器用什么好。

在今天DevOps驱动嘚环境中通过将应用程序作为微服务交付,企业可以更快地提供功能将单体应用程序拆分为基于放米的容器用什么好的多个可移植片段通常是大多数企业的数字化转型战略的重头。虚拟机在上个世纪90年代末期就已经出现,以IaaS交付它是一种抽象硬件,提供在容错性、鈳编程性和工作负载可扩展性上的增强特性

尽管大大小小的企业IT都在急于将应用重构为微服务,但实际上IaaS已经被证明并且经常用于补充基于放米的容器用什么好的工作负载:

1)我们一直将IaaS层视为基础架构的抽象提供管理和整合不同物理资源的标准方法。资源抽象是当今夶多数放米的容器用什么好在虚拟机内运行的诸多原因之一

2)今天的分布式应用程序包括Cattles和Pets。在不过度泛化的情况下宠物工作负载往往是“手工喂养”的,并且往往对与放米的容器用什么好不兼容的传统操作系统有很大的依赖性因此,对于大多数企业来说宠物工作負载将继续作为虚拟机运行。

3)虽然放米的容器用什么好化NFV工作负载有相当多的好处但目前的放米的容器用什么好实现还不足以满足100%嘚NFV工作负载需求。有关更多详细信息请参阅IETF报告。

4)能够对需要多个环境进行不同测试的开发/测试工作负载的放米的容器用什么好主机進行“适当大小”调整

随着时间的推移,两种技术已经被证明是相辅相成而非相互排斥。只要存在传统的工作负载和更好的管理和整匼不同的物理资源的需求虚拟机(IaaS)将会共存以补充放米的容器用什么好。

这是一个多云世界而OpenStack是这个世界的重要组成部分。从数据Φ心到NFV由于其独立于供应商的API的丰富性,OpenStack云正在部署以满足企业在私有云数据中心中提供公有云(如IaaS消费)的需求

通过提供K8S范围之外嘚以下服务,OpenStack将是K8S的完美补充在大多数情况下,Kubernetes部署可以利用相同的OpenStack组件来简化部署或优化开发体验:

1)多租户:利用 OpenStack 项目创建 K8S 集群開发团队可以完全控制项目中的集群资源,并且对其他开发团队或项目的可视性为零

2)基于 HW 分离的基础设施使用情况:IT部门往往是整个組织的开发团队的核心代理人。如果开发团队A被分配了X台服务器B团队获得了Y台服务器,则OpenStack Scheduler可以确保K8S群集资源准确映射到分配给各个开发團队的硬件上

3)基于配额的基础设施分配:决定分配给哪些用例,每个用例多少基础设施可能会非常棘手。组织也可以利用OpenStack配额系统來控制基础设施的使用

4)集成用户管理:由于大多数K8S开发者也是IaaS消费者,所以利用keystone后端简化了K8S集群和命名空间共享的用户验证

5)放米嘚容器用什么好存储持久性:由于K8S放米的容器用什么好不耐用,存储持久性是大多数有状态工作负载的要求在利用OpenStack Cinder后端时,存储卷将在楿同或不同节点重新启动后自动重新连接

6)安全性:对于大多数企业和 NFV 应用来说,VM和放米的容器用什么好还将继续共存因此提供统一嘚安全监控至关重要。利用Neutron与行业领先的SDN控制器(如VMware NSX-T)进行集成可以简化放米的容器用什么好安全插入和实施。

7)放米的容器用什么好控制平面灵活性:K8S HA要求多主机负载均衡和可伸缩工作节点与OpenStack集成时,就像利用LBaaSv2来实现主节点负载均衡一样简单工作站节点可以使用OpenStack原苼工具进行扩展和缩减。通过VMware Integrated OpenStack(VIO)K8S工作站节点还可以使用VM实时调整大小功能来垂直扩展。

我将利用VMware Integrated OpenStack(VIO)来提供这种在heaven完美匹配的例子這个博客是四部分博客系列的第一部分:

1)OpenStack和放米的容器用什么好更好地合作(本文)

3)将放米的容器用什么好和虚拟机视为网络中的“岼等的公民”

本文作者:Xiao Gao,VMware OpenStack高级技术营销经理Xiao Gao 拥有DevOps、数据中心设计和软件定义网络的工作背景。拥有CCIE认证#3000并已在安全和云领域提出哆项专利。

添加 K8S技术社区小助手获取 Austin峰会现场一手资料+12.12KubeCON峰会热点访谈直播资料!

}

我要回帖

更多关于 放米的容器用什么好 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信