首页 » PHP教程 » 陌陌php面试题技巧_陌陌基于K8s和Docker容器治理平台的架构实践

陌陌php面试题技巧_陌陌基于K8s和Docker容器治理平台的架构实践

访客 2024-11-12 0

扫一扫用手机浏览

文章目录 [+]

当下,K8s凭借在扩展性、管理、大数据剖析、网络场景、兼容性、负载均衡、灰度升级、失落败冗余、容灾规复、 DevOps 等方面的上风,受到部分企业的青睐。
近日,由51CTO 主理的第十六期以“Tech Neo”为主题的技能沙龙活动中,来自陌陌科技SRE团队卖力人王景学分享了陌陌在K8s容器方面的一些运用实践。

为什么选择利用K8s?

在利用k8s之前,陌陌在运用发布和运行环境方面碰着的详细问题,如下:

陌陌php面试题技巧_陌陌基于K8s和Docker容器治理平台的架构实践

运用发布韶光很长,紧张是由于发布过程中须要做隔离、规复等动作,还须要登录查看实际状态、日志。
当碰着晚高峰情形这样的突发状况,须要紧急扩容。
这时业务方会申请机器,可新机须要进行环境初始化、干系配置,这样导致效率非常低。
运用运行环境的软件版本不一致,配置繁芜,掩护本钱比较高。
硬件资源利用率不敷,总体本钱比较高。

针对以上碰着的问题,我们决定对架构进行改造,同时制订了一系列架构改进目标,如下:

陌陌php面试题技巧_陌陌基于K8s和Docker容器治理平台的架构实践
(图片来自网络侵删)
提高做事可用性,可管理性。
可用性是当某一台机器涌现宕机,会自动切换到其他机器。
可管理性是在运用须要扩容时,自动化去支配运行环境、干系配置。
开拓不须要再去考虑做事器的问题。
提高资源隔离性,实现做事稠浊支配。
运用级别的监控,当机器须要扩容时,自动排查是哪个运用所致。
做事平滑迁移。

综合这些问题和目标,陌陌选择利用 Kubernetes来管理 Docker 集群,当 Kubernetes 知足不了需求时,可在支配平台开拓相应的功能来知足开拓查看日志、监控和报警等需求,只管即便避免登录主机和容器。

陌陌容器管理平台的架构演进

陌陌从2015年下半年开始对Docker进行调研和实践,2016年初开始调研k8s,考试测验架构方面的改进事情,基于自研发布系统及K8s、OVS和Docker构建容器管理平台。
实现了基于Docker集群的支配系统,便于开拓者便捷地支配自己的运用程序。
终极达到支配环境干净同等,可重复支配、迅速扩容和回滚。

如下图,是容器管理平台的架构图:

容器管理平台紧张功能有集群管理和状态展示、灰度发布和代码回退、组件模板、运用管理、镜像仓库和权限管理等。
它采取前后端分离的架构,前端利用 JS 渲染,后端利用 Python 供应 API。
这样开拓者可以快速的进行发布和回退操作。

容器管理平台在运用发布流程,集群调度策略,k8s节点网络架构,阿里云支持,根本监控指标等方面进行了优化改进。

运用发布流程

陌陌之前老版本发布系统是串行的,须要单台进行更换。
如下图,是新架构下运用的发布流程:

新的发布系统是用户提交代码后,在发布系统选择要支配的commit,点击构建往后,系统会自动编译,打包成镜像,推送镜像仓库。
如果构建成功,用户点击发布新版本的实例,灰度没有问题,全量,下线老版本的实例。
回退时期码不须要构建,直接发布老版本实例。
在某段韶光内,新老版本是同时存在的。

集群调度策略

陌陌的集群调度策略是为运用配置默认的location(集群标签),如果是线上运用,运用须要申请location,支配到正式的集群(机房哀求,资源充足)。
这里运用都不能独占集群,均采取的是稠浊支配的办法。

同一个集群下,分身分歧组并组定义标签,运用支持独占机器,同一个组之间的运用实例可以随意飘移。

IDC网络节点

在IDC网络节点构建部分,陌陌利用的是全局IP地址,容器与容器之间、容器与主机之间都是互通的。
这样一来,通信可以不该用任何封装等技能,相对来说比较高效且对现有网络变动影响小(仅需封装trunk,无其他协议,mtu等变革)。

如下图,是IDC网络节点架构图:

在这样的架构下,网络支配和扩展相对大略,由于每台机器的IP地址段是预先静态配置的。

这里值得把稳的是,做事器双链路上联,trunk上联物理交流机须要合理避免二层环路。

这样的办法存在的不敷是,当容器较多时,mac地址数量增多,给物理交流机Mac地址表带来压力,广播域扩大便是须要严谨的方案vlan 角色干系信息。

阿里云支持

当前,陌陌K8s master集群下节点包含IDC、阿里云及两者稠浊三种办法,如下图:

阿里云采取的网络模式是Host-gw,陌陌搭建了一条IDC与阿里云的VPC专线和VPC的虚拟路由进行静态配置。
无论是IDC节点,还是阿里云节点上的运用都要适应IP动态变革。

根本监控指标

陌陌的监控方案大多是基于Kublet cadvisor metrics接口去做的数据汇总。
最初陌陌采取的办法是利用Python脚本,去调用接口,在取到一些CPU内存、网络、流量的数据,存入ES,剖析之后进行展示。
之后的报警系统,是利用Java运用去调取Kublet cadvisor metrics接口,进行数据的网络。

根本监控指标紧张有内存(total,rss,cache)、流量(incoming,outgoing)、网络packets(drop,error, total)等。

运用迁移

运用迁移方面,陌陌做了很多适配事情,使得运用不须要太多的改动就可以无缝迁移。
详细适配细节如下:

运用适应动态ip变革。
自定义构建过程(build.sh)。
运用利用不同的做事创造框架(nginx,rpc)(start.sh)。
运用销毁过程中做一些额外处理(stop.sh)。

在运用迁移过程中,也碰着了一些问题,如Swap、cpu软中断优化、资源利用率、Ip白名单、适用于内网等问题。

当前,陌陌的容器业务规模做事器约400台、线上容器6000、运用700+。
运用的类型是java+php+node+python+tomcat。

未来展望

希望运维可以实现对运用要求量,线程数,流量等指标的监控。
基准值部分,达到单实例可承载要求量,线程数,流量。
伸缩方面,做到最小保留实例数,最大扩容实例数,根据监控反馈和基准值打算须要扩容和缩容的实例数, 按照各个集群资源余量按比例伸缩。

【高朋简介】

陌陌王景学,现任SRE团队卖力人,以前运维干系事情都做过,自动化,虚拟化,docker,k8s干系都非常熟习。

Tech Neo技能沙龙 | 11月25号,九州云/ZStack与您一起磋商云时期网络边界管理实践,点击图片,立即报名。

标签:

相关文章

临武区,绿色发展的璀璨明珠

临武区,位于我国湖南省郴州市,是一个有着丰富自然资源和悠久历史的地方。近年来,临武区以绿色发展为引领,实现了经济社会与生态环境的协...

PHP教程 2024-12-23 阅读0 评论0

中止代码8,介绍网络安全的“无形守护者”

随着互联网的普及,网络安全问题日益凸显。无数黑客、病毒、恶意软件企图入侵我们的电脑,窃取个人信息,破坏网络秩序。在这场没有硝烟的战...

PHP教程 2024-12-23 阅读0 评论0

中美协议漏洞,漏洞背后的风险与应对步骤

近年来,中美关系在全球范围内备受关注。为了维护两国间的稳定与互利共赢,中美两国政府签署了一系列协议。这些协议中存在一些漏洞,给双方...

PHP教程 2024-12-23 阅读0 评论0

中华烟,传承与创新并进的民族品牌

中华烟,作为中国烟草行业的领军品牌,历经百年风雨,承载着中华民族的文化底蕴和民族精神。自诞生之日起,中华烟便以其独特的品牌魅力,赢...

PHP教程 2024-12-23 阅读0 评论0

东方餐,探寻中华美食的独特魅力

自古以来,中国饮食文化源远流长,被誉为“舌尖上的中国”。在这片广袤的土地上,各地美食争奇斗艳,其中东方餐作为中华美食的重要组成部分...

PHP教程 2024-12-23 阅读0 评论0