- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
阿里巴巴 孙宏亮 - 《阿里巴巴百万级容器技术PouchContainer+揭秘》
展开查看详情
1 .《阿里巴巴百万级容器技术 PouchContainer 揭秘》 演讲者/孙宏亮
2 .Agenda • 阿里巴巴集团容器现状 • PouchContainer 技术优势 - 富容器 - 隔离性 - P2P镜像分发 - 内核兼容性 - 原生支持Kubernetes • PouchContainer 开源发展
3 .阿里巴巴集团容器现状 规模: 覆盖业务: l 覆盖集团大部分BU l 蚂蚁&交易&中间件 l 2017年双11百万级容器 l B2B/CBU/ICBU/1688/村淘 l 在线业务100%容器化 l 合一集团(优酷) l 菜鸟&高德&UC(接入中) 覆盖场景: l 集团测试环境 l 运行模式 l 广告(阿里妈妈) l 编程语言 l 阿里云专有云输出 l 技术栈 l ……
4 .阿里巴巴集团容器现状 l 本意育儿袋,隐喻贴身呵护应用 l 始于2011年 l 基于LXC l 阿里内部容器技术产品,并于当年上线 l 2015年初开始吸收Docker镜像功能 l 容器结合阿里内核,大幅提高隔离性 l 大规模部署于阿里集团内部 l opensource:https://github.com/alibaba/pouch
5 .PouchContainer 演进之路 容器的要素--阿里内部运维和应用视角 •手工Hack实现容器要素 •有独立IP •虚拟网卡,网桥 •能够ssh登陆 •sshd •独立的的文件系统 •Chroot (pivot_root) •资源隔离—使用量和可见性 •CGroup,Namespace •引入LXC(Linux Container) 阿里容器技术 •内核可见性隔离Patch •内核磁盘空间配额Patch 引入Docker
6 .PouchContainer 生态架构 编排 workflow 容器 workflow 编排调度 容器引擎 容器运行时
7 .
8 . 富容器 l 容器内运行init进程,PID=1 l 满足运维域视角(应用运维、基础设施运维) l 容器内运行系统服务,满足业务需求 l 极强的应用适配性,快速容器化存量业务 l 阿里集团应用100%容器化的重要前提 l 容器内资源多维度隔离(alikernel支持) https://github.com/alibaba/pouch/blob/master/docs/features/pouch_ with_rich_container.md
9 .富容器 兼容容器镜像 2 systemd rich container -保障交付效率 4 3 5 agent CMD 兼容运维体系 crond -保障运维能力 P P syslogd Z prestart poststop hook hook rootfs(image) 1
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 https://github.com/alibaba/pouch/blob/master/docs/features/pouch_with_lxcfs.md
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 .P2P镜像分发能力
19 .内核兼容性 l 阿里仍存有相当规模的 Linux 2.6.x 内核机器 l PouchContainer 支持内部所有 Linux 2.6.x 的内核 l 部分支持来源指定系统调用的回避 l 部分支持来源内核补丁 l runV虚拟机中GuestOS支持 2.6.x内核(TODO) l 自研OCI runtime runlxc(开源 TODO)
20 .原生支持 Kubernetes
21 .原生支持 Kubernetes
22 .PouchContainer开源现状 2445 star 48位贡献者 1位协作机器人 文档 测试 安装指南: https://github.com/alibaba/pouch/blob/master/INSTALLATION.md