- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
How to Build Container Technology at Millions Scale in Alibaba
展开查看详情
1 .如何打造百万级规模的容器技术 孙宏亮 / 阿里巴巴集团
2 .Agenda • 阿里巴巴集团容器现状 • PouchContainer 技术特性 – 强隔离性 – 富容器技术 – P2P 镜像分发 – 多OCI容器运行时支持 – 原生支持Kubernetes • PouchContainer 开源发展
3 .容器现状 规模: 覆盖业务: • 覆盖集团大部分BU • 蚂蚁&交易&中间件 • 2017年双11百万级容器 • B2B/CBU/ICBU/1688/村淘 • 在线业务100%容器化 • 合一集团(优酷) • 菜鸟&高德&UC(接入中) • 集团测试环境 覆盖场景: • 广告(阿里妈妈) • 运行模式 • 阿里云专有云输出 • 编程语言 • …… • 技术栈
4 .容器现状 • 本意育儿袋,隐喻贴身呵护应用 • 始于2011年 • 基于LXC • 阿里内部容器技术产品,并于当年上线 • 2015年初开始吸收Docker镜像功能 • 容器结合阿里内核,大幅提高隔离性 • 大规模部署于阿里集团内部 • opensource:https://github.com/alibaba/pouch
5 .阿里巴巴容器演进之路 容器的要素--阿里内部运维和应用视角 手工Hack实现容器要素 • 有独立IP 虚拟网卡,网桥 • 能够ssh登陆 sshd • 独立的的文件系统 Chroot (pivot_root) • 资源隔离—使用量和可见性 CGroup,Namespace • 引入LXC(Linux Container) 阿里容器技术 • 内核可见性隔离Patch • 内核磁盘空间配额Patch 引入Docker镜像技术
6 .PouchContainer技术架构
7 .Inner Arch of PouchContainer
8 .富容器 l 容器内运行init进程,PID=1 l 满足运维域视角(应用运维、基础设施运维) l 容器内运行系统服务,满足业务需求 l 极强的应用适配性,快速容器化存量业务 l 阿里集团应用100%容器化的重要前提 l 容器内资源多维度隔离(alikernel支持)
9 .富容器 兼容容器镜像 兼容运维体系 -保障交付效率 -保障运维能力
10 .强隔离性 l 传统容器的隔离维度:namesapce,cgroup l 更优的容器可见性隔离:内核patch,lxcfs l 额外隔离维度:磁盘,网络等:diskquota l 基于Hypervisor的强容器隔离 l runV l clear container l katacontainer
11 .资源可见性隔离LXCFS 使用场景: • 容器内部进程不能感知自身的资源限额,只能感知宿主机的总资源 • Java应用判断内存资源大小动态分配堆栈大小,莫名OOM • Java中间件通过CPU核来创建线程数 • /proc
12 .资源可见性隔离LXCFS 不使用LXCFS 使用LXCFS
13 .Diskquota容器磁盘限额 • DiskQuota是一种限制文件系统磁盘空间使用的技术; • 控制磁盘使用量的功能(Volume/容器rootfs); • 基于块设备的方式是可以直接控制磁盘的使用量(size/inode);
14 .Diskquota容器磁盘限额 1. rootfs设置quota,通过--disk-quota的参数指定
15 .Diskquota容器磁盘限额 2. volume设置quota,通过设置volume size参数指定
16 .Hypervisor-based container runV QEMU 兼容容器镜像 -保障交付效率 提供隔离的内核 -保障容器安全
17 .Hypervisor-based container 多容器运行时统一管理 https://github.com/alibaba/pouch/blob/master/docs/features/pouch_with_runV.md
18 .Hypervisor-based container
19 .P2P 镜像分发
20 .原生支持Kubernetes
21 .原生支持Kubernetes
22 .谢谢
23 .