专栏名称: 聊聊架构
在这里煮酒聊架构。
目录
相关文章推荐
架构师之路  ·  爸爸!除了你,沈括,沈万三... ... ·  2 天前  
字节跳动技术团队  ·  掘金 AI 编程社区- 人人都是 AI 编程家竞赛 ·  昨天  
InfoQ Pro  ·  充电计划 | 反卷“大”模型 ·  2 天前  
InfoQ Pro  ·  Redis 之父:哪怕被喷我也得说,AI ... ·  2 天前  
51好读  ›  专栏  ›  聊聊架构

3万多个实例,承载数百个业务,聊聊美团点评的Docker容器平台

聊聊架构  · 公众号  · 架构  · 2017-05-31 19:53

正文

请到「今天看啥」查看全文


  • PaaS 层:使用容器平台的 HTTP API,完成容器的编排、部署、弹性伸缩,监控、服务治理等功能,对上面的业务层通过 HTTP API 或者 Web 的方式提供服务。

  • IaaS 控制层:提供容器平台的 API 处理、调度、网络、用户鉴权、镜像仓库等管理功能,对 PaaS 提供 HTTP API 接口。

  • 宿主机资源层:Docker 宿主机集群,由多个机房,数百个节点组成。每个节点部署 HostServer,Docker、监控数据采集模块,Volume 管理模块,OVS 网络管理模块,Cgroup 管理模块等。容器平台中的绝大部分组件是基于美团私有云已有组件扩展开发的,例如镜像仓库、平台控制器、HostServer、网络管理模块。容器平台的技术栈,核心组件,包括平台控制器,网络服务,调度器等都是自研开发的。Docker 镜像仓库基于 OpenStack 的 Glance 扩展开发,监控系统有使用 Falcon,CAT;服务治理、服务发现、服务负载均衡是使用的美团自研系统。开发语言主要是 Python 和 Golang。

  • 容器网络
    高性能、高弹性的架构设计

    容器平台在网络方面复用了美团云网络基础架构和组件,逻辑架构设计如图所示。

    在数据平面,我们采用万兆网卡,结合 OVS-DPDK 方案,并进一步优化单流的转发性能,将几个 CPU 核绑定给 OVS-DPDK 转发使用,需要少量的计算资源即可提供万兆的数据转发能力。OVS-DPDK 和容器所使用的 CPU 完全隔离,因此也不影响用户的计算资源。控制平面我们使用 OVS 方案。所谓 OVS 方案是在每个宿主机上部署一个软件的 Controller,动态接收网络服务下发的网络规则,并将规则进一步下发至 OVS 流表,决定是否对某网络流放行。

    自研配置模式 MosBridge

    在 MosBridge 之前,我们配置容器网络使用的是 None 模式。在实践中,我们发现 None 模式存在一些不足:

    • 容器刚启动时是无网络的,一些业务在启动前会检查网络,导致业务启动失败;

    • 网络配置与 Docker 脱离,容器重启后网络配置丢失;

    • 网络配置由 Host-SRV 控制,对于以后网络功能的升级和扩展带来很多不便,例如对容器增加虚拟网卡,或者支持 VPC。

    为了解决这些问题,我们基于 Libnetwork,开发了 MosBridge – 适配美团云网络架构的 Docker 网络驱动。在创建容器时,需要指定容器创建参数—net=mosbridge,并将 ip 地址,网关,OVS Bridge 等参数传给 Docker,由 MosBridge 完成网络的配置过程。有了 MosBridge,容器创建启动后便有了网络可以使用。容器的网络配置也持久化在 MosBridge 中,容器重启后网络配置也不会丢失。

    容器存储隔离性






    请到「今天看啥」查看全文