好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

蚂蚁金服docker实践的挑战与方案汇编.pptx

36页
  • 卖家[上传人]:今***
  • 文档编号:112064508
  • 上传时间:2019-11-04
  • 文档格式:PPTX
  • 文档大小:259.30KB
  • / 36 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 蚂蚁金服Docker实践的挑战与方案 Agenda •蚂蚁容器服务(ACS)简介 •ACS实践 •计算 •网络 •服务编排 •快速交付 •总结 ACS简介 应用场景与架构 ACS简介(一) • 以容器为载体,为PaaS/SaaS按需提供计算存储网络资源,提高资源的利用率 与交付速度 • 适配多种IaaS环境,对PaaS/SaaS屏蔽IaaS实现细节 • 实现容器/集群级别的标准化与可复制/可迁移 ACS简介(二) ACS 搜索服务网关服务消息队列高速缓存其他 PaaS SaaSSaaS其他 Bootstrap X-Link Aliyun IaaS ACS整体架构 Management Docker cluster PaaS ACS Swarm ACS Docker ACS Docker ACS Swarm ACS Docker Bootstrap ACS应用场景(一) 金融云平台中实现了基于ACS/Docker的全流程管 理 ACS应用场景(二) ACS在蚂蚁内部当前主要作为IaaS平台,为了兼 容已有架构与运维体系,基本原则是把容器作为 VM使用 Container PaaS Container ContainerContainer Containers Cluster SSH 计算 动态,优化的cpuset资源分配, Swarm集群下依然能够简易透明的控 制cpu资源调度。

      Cpuset设置存在的问题(一) 0 12 Core 0 Socket 0 CPU 1 13 Core 1 2 14 Core 2 3 15 Core 3 4 16 Core 4 5 17 Core 5 6 18 Core 0 Socket 1 7 19 Core 1 8 20 Core 2 9 21 Core 3 10 22 Core 4 11 23 Core 5 Cpuset设置存在的问题(二) 0 12 Core 0 Socket 0 CPU 1 13 Core 1 2 14 Core 2 3 15 Core 3 4 16 Core 4 5 17 Core 5 6 18 Core 0 Socket 1 7 19 Core 1 8 20 Core 2 9 21 Core 3 10 22 Core 4 11 23 Core 5 Cpuset分配的解决方案 Docker Daemon Swarm Manager cpuset=21, 23 cpuset=6, 7 Docker Daemon Docker Daemon Docker Daemon cpuset=8, 9 cpuset=12, 13 docker create –l cpuset.ncpu=2 网络 为了屏蔽不同的IaaS,ACS提供了 VLAN driver和VXLAN driver适配物理 网络与阿里云ECS经典网络。

      VLAN网络 基于VLAN的大二层网络,同时带来了 MAC NAT和ARP Proxy功能;改进的 Endpoint生命周期将更适合IaaS平台 对网络的需求 l 跨host的容器直连 l 容器需要有独立IP l 兼容现有的网络架构 ACS VLAN driver Docker DaemonVLAN Plugin KV(Zookeeper) Node Docker DaemonVLAN Plugin Node Docker DaemonVLAN Plugin Node Swarm Manager Swarm Clusters 大二层网络的经典问题 l 易环路 l 整网MAC地址过多,易超出交换机CAM表容量 l 广播流量大,影响范围大,ARP报文数量多会带给交换机巨大压力 MAC=m2 IP=ip2 MAC NAT与ARP Proxy ovsbr0 bond0 veth1veth2 eth0eth0 MAC=m0 MAC=m1 IP=ip1 MAC=m3 IP=ip3 veth3 eth0 src MACm1 dst MACm src MACm0 dst MACm src MACm dst MACm0 dst IPip3 src MACm dst MACm3 dst IPip3 ARP op=1 IPip3 ARP op=2 MACm0 libnetwork 官方Docker IP地址引发的问题 •容器重启后,IP地址较容易发生变动,依赖传统方式(puppet/ssh)的运维和监控等 功能无法正常工作。

      •指定IP创建容器,在容器启动前如果IP被其他容器占用,则无法启动成功 •Swarm集群中,IP变动和被占用的概率都被放大 Endpoint生命周期 ContainerEndpoint Create- StartCreate & Join StopLeave & Delete Delete- Rename* Rename Connect* Create & Join Disconnect* [Leave &] Delete * 只在container运行时执行 Endpoint生命周期改造 ContainerEndpoint CreateCreate StartJoin StopLeave DeleteDelete RenameRename Connect* Create & Join Disconnect* [Leave &] Delete * Container非运行时不执行Join/Leave VXLAN网络 VXLAN driver提供了在Aliyun经典网络 内的跨host容器互联功能 ACS VXLAN网络 ID=10 IP=192.168.0.1 ID=11 IP=192.168.0.1 ID=10 IP=192.168.0.2 ID=11 IP=192.168.0.1 ACS VXLAN优点 •不依赖交换机配置,很强的自定义网络能力 •同一网络内跨Host的容器间直连 •不同网络二层隔离 •不同网络网段地址可重复 服务编排 增强的compose工具提供了更复杂的 部署功能;扩展的relabel功能为基于 容器的服务提供了统一模型 acs-compose acs-compose v1 YAMLs LoadBalanceDNSStorageSQL database ACS container extended labels Step1 – Service A Step2 – Service B,C create/reference SLBLVSOSSRDSHDFSOther 基于Label的服务模型 Docker Daemon Swarm Manager c3 Docker Daemon Docker Daemon c1, ip=ip1c2, ip=ip2 run –l service.name=A, scale=2 Service dispatcher Docker Daemon events Services serviceA IPip1 serviceA IPip2 Container relabel功能 Docker Daemon Swarm Manager c3, ip=3 Docker Daemon Docker Daemon c1, ip=ip1c2, ip=ip2 update c3 –l service.name=A Service dispatcher Docker Daemon events Services serviceA IPip3 快速交付 基于Bootstrap的一键建站,打包了 ACS以及基于ACS的基础服务,为上 层服务的快速交付提供保障 快速交付(一) Dashboard Bootstrap Swarm Manager Swarm Node libmachine Swarm Node Swarm 快速交付(一) 快速交付(二) Dashboard Bootstrap Swarm Manager Swarm Node libmachine Swarm Node X-Linkdockerclient Services: [A, B, C] ACS 快速交付(二) Bootstrap • Bootstrap封装了libmachine,根据输入的Node信息列表,可完成集群搭建, 扩容缩容等功能。

      • Bootstrap抽象了集群概念,支持官方Swarm,ACS,Mesos,K8s等集群 • Bootstrap libmachine扩展了以下功能: •增加了alios provision •增加了非SSH的配置通道 •引入了docker-machine-aliyun-driver X-Link部署流程 Env Service Endpoints Service Loader Service A Deploy Image Deploy Service B Deploy Image ACS Swarm Service A Deploy Job Service B Deploy Job Scripts compose Service A Service B API X-Link ACS Docker热升级 •基于docker-1.11.1-experimental,但该版本热升级后容器存在无法重启,网络资 源无法恢复的缺陷我们完成了以下修复: •提供了libnetwork Restore功能,在热升级后完成恢复网络配置: •恢复sandbox信息 •重启embed DNS服务 •修复了热升级后存在的RWLayer Mount的缺陷 总结 • 优化的cpuset设置,使CPU配置对容器使用方友好且透明 • 增加了MAC NAT及ARP Proxy的大二层网络,使交换机不再是限制二层网络规模的瓶 颈 • 改造后的endpoint生命周期能够有效的维持IP地址,使Docker容器作为VM使用时更加 贴近运维及监控场景 • 扩展的vxlan driver有效支持了Aliyun ECS经典网络 • 增强的acs compose解决了编排过程中使用外部资源的问题 • 改进的libmachine,解决了多平台,多通道的搭建问题 • 增加了Restore功能的libmachine,为Docker完善了热升级功能 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.