首页 | 财经 | 资源 | 理财 | 考研 | 职场 | 论文 | 资格 | 股票学院 |

股票学院: 股票入门 - 股票知识 - 股票术语 - 炒股技巧 - 选股技巧 - 跟庄技巧 - 炒股经验 - 投资策略 - K线图 - 均线 - 分时图 - 成交量 - 波浪理论 - 基本面分析 - 心理分析 - 涨停研究 - 趋势线 - 江恩理论 - MACD - KDJ - 技术指标 - 财经股票书籍在线阅读 - 金融类书籍下载 - 银行学院 - 保险学院 - 外汇学院 - 债券学院 - 股票学院 - 基金学院 - 港股学院 - 黄金学院

当前位置:天下金融网 > 金融云 > 文章正文

大规模微服务场景下的十大痛点问题定位与优化(5)

时间:2019-09-18 06:25:56来源:云技术作者:佚名

第二个就是对于VPC网络的架构是要比较清楚。我们是通过OpenStack Neutron的vxlan去做的这个事情的。横向流量是通过vxlan,基于OVS去做的,纵向的流量,出去的时候会有网关,我们不是用的物理网关,而是虚拟网关,在数据中心里面有一个虚拟网关的网关层,网关层有的时候是挂在汇聚交换机下面的,有的机房要求吞吐量比较大,网关层可以直接挂在核心交换机下面的,很可能网络瓶颈点会发生在这些网关上。

大规模微服务场景下的十大痛点问题定位与优化

我们的VPC网络是有一定的改进的,因为我们要求一个VPC里面能承载的虚拟机的数量要比开源的OpenStack要多得多,能达到5万台的规模。

限制网络规模的一是广播问题,我们可以事先把整个网络拓扑下发到一个拓扑库上去,每一个节点上的Agent会订阅拓扑库的更新事件,从而更新本地的OVS策略。每个Agent都会看到整个网络的拓朴结构,则ARP的时候,本地就可以拦截来进行返回。

另外的一个改进就是虚拟网络,默认的虚拟网关只能做主备,横向扩展能力没有这么好,不能够承载大的并发量,这其实需要有一排的虚拟网关,全部挂载到汇聚或者核心交换机上。接下来的问题是纵向的流量怎么从这一排网关里面去选择,这里使用了一致性哈希的算法。

大规模微服务场景下的十大痛点问题定位与优化

另外一个改进是Kubernetes和OpenStack的整合。左面的图是Kubernetes默认创建一个Pod的流程,好在他是基于事件驱动的,使得我们可以定制化右面创建Pod的流程。我们开发了自己的Resource Controller和Scheduler,当发现容器的节点资源不足的情况下,Controller会调用IaaS的接口创建云主机,然后加到Kubernetes集群中。这种模式下,在应用层的角度,只能看到容器,不需要运维Kubernetes,更加看不到OpenStack的接口,使得应用层有统一的编排接口。

大规模微服务场景下的十大痛点问题定位与优化

另外对于容器和Kubernetes层的整合,网络层也需要整合,容器也要融合VPC网络,只有适配了VPC网络才能实现多机房的高可用性,跨机房的负载均衡,以及跨机房的浮动IP漂移和切换。比如说一个机房挂了,则挂在A机房的浮动IP地址要能够切换到B机房的网关上去,并且和核心交换机有联动,路由也要切过来,这些都只有VPC可以完成这个事情。

我们开发了一个自己的CNI插件去做这个事儿,容器没有使用单独容器网络方案,而是直接用了OVS的网络,也即OpenStack的OVS是可以直接看到容器的IP地址的,容器的IP地址和虚拟机的IP是平的,是属于同一个局域网。

这样其实还有另外一个好处,因为我们还有很多没有容器化的应用,如果部分做容器化,是可以和容器内的应用无缝的打通的。一些有状态的PaaS也是部署在虚拟机里面的,也可以实现在同一个局域网内的互通。

大规模微服务场景下的十大痛点问题定位与优化

另外一个针对Kubernetes的优化就是规模问题,这是其中的一个优化的例子。

重启一个API server的时候会导致一些问题,尤其是在Pod的数目比较多的时候。通过监控图可以看出,中间会重启时间长达七分钟,中间出现429错误并且飙升,是因为流控。为什么会流控?因为它重启的时候,会有大量的请求重新再连上来,由于并发太多,有可能就把它再冲挂了。

大规模微服务场景下的十大痛点问题定位与优化

那么应该如何改进呢?方法一就是多级流控,根据UserAgent, Resource, Verb几个参数,对于不同的客户端有不同的流控策略,比如说对于master上面的进程优先级相对高一点,对于kubelet结点上的进程,优先级就低一些。不会所有的kubelet节点一股脑上来进行注册。方法二是拥塞控制,Retry-After参数也即多长时间再重试一次,这个原来是一个默认值,我们改成一个动态的值,根据系统的繁忙程度是调节到1秒到8秒之间,这样不同的客户端重试的时间会错开。使得把整个恢复时间大幅度的降低了,这是我们做的规模化的一个例子。

大规模微服务场景下的十大痛点问题定位与优化

来我们从接入层开始分析。我们在VPC的网关以及负载均衡层也是做了优化的。

优化之一是基于BGP ECMP的等价路由,也即对于LB集群和前面的核心交换机之间配置等价路由,实现横向扩展和负载均衡。如果使用LVS做这个网关的话,可以使用DPDK技术,也即基于DPVS的负载均衡。

相关阅读

焦点图文

关于我们 | 广告服务 | 商务合作 | 网站地图

版权所有 Copyright(C)2018-2020 苏州骐云跃网络科技有限公司,未经授权禁止复制或建立镜像,否则将依法追究法律责任!
声明:我们不做任何形式的代客理财及投资指导,凡是以天下金融网名义做股票推荐的行为均属违法!
广告商的言论与行为均与天下金融网无关!股市有风险,投资需谨慎。
苏公网安备 32050502000166号
苏ICP备14018528号
商务合作:联系我们

天下金融网版权所有