裴彤揭秘:Docker转型为轻量级虚拟机之旅
需积分: 9 41 浏览量
更新于2024-09-10
收藏 104KB PDF 举报
在搜狗平台架构部的裴彤分享的实践中,他探讨了如何将Docker转变为一种虚拟机(VM)般的解决方案。Docker原本作为轻量级容器技术,因其快速部署、资源隔离等优点受到开发者喜爱,但在大规模迁移应用时遇到了一些挑战。裴彤详细介绍了打造虚机过程中的四个关键环节:
1. **系统镜像制作**:
- 起步于Centos 6.6,裴彤强调了构建基础镜像的重要性,如设置ENTRYPOINT和CMD脚本,以确保容器在启动时正确运行。遇到的问题包括SSHD和cron等服务无法正常启动,解决方法是使用nsenter技术执行必要的进程,并注意cgroup资源控制。
2. **网络管理**:
- 关闭宿主机的docker0网桥和NAT转发,创建专用直连网桥,并设定虚机的IP地址。在启动时,通过宿主机与虚机间的veth接口通信,实现网络配置的动态更新。可能还需要借助OpenvSwitch进行高级网络配置。
3. **存储解决方案**:
- 利用宿主机本地存储,创建逻辑卷(LV)并挂载到容器,通过-v选项传递。针对性能需求,使用cgroup对LV卷进行IOPS和BPS限制。在Centos 6.6上可能效果不佳,而在Centos 7.1上表现较好。
4. **性能监控与调整**:
- 收集容器的Cgroup和/proc信息,但需注意容器内部命令的准确性。裴彤引入了替代工具如sac-mem和sac-cpu,以达到与VM相近的效果,同时考虑应用的特定需求,比如CPU核心数探测。
在单个虚机构建完成后,裴彤扩展到了宿主机和虚拟机集群的管理:
- 建立数据库记录资源和虚机信息,支持创建、删除、修改和查询操作。
- 自动化资源分配,如根据可用资源选择宿主机并分配IP地址。
- 考虑容灾策略,包括跨宿主机、交换机和数据中心的备份。
- 开发API接口,提供按需创建虚机的服务,支持内存、CPU、硬盘和操作系统环境的选择,以及对虚机生命周期的全面管理。
整个项目中,裴彤仅一人在三个月内完成,未采用分布式存储,而是利用了Docker的底层机制。如果使用更全面的虚拟化技术如KVM或OpenStack,可能会有更复杂的部署和管理要求。然而,这个案例展示了如何巧妙地利用Docker的优势来构建一套简洁的IaaS平台,满足实际业务场景中的需求。
2021-06-27 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-12-22 上传
2024-12-22 上传
2024-12-22 上传
2024-12-22 上传
2024-12-22 上传
周建丁
- 粉丝: 1218
- 资源: 150
最新资源
- 网上书店可行性分析与需求分析
- C语言编程规范.pdf
- SQL server服务器大内存配置
- 世界上最全的oracle笔记 oracle 资料
- Programming C#
- MIT Linear Programming Courseware- example
- 一份在线考试系统的详细开发文档C#
- 在线考试系统需求说明
- 企业网站推广经合与体会
- convex optimization
- 芯源电子单片机教程(推荐).pdf
- c语言学习300例(实例程序有源码)
- thinking in java
- How to create your library
- Microsoft Windows CE学习资料
- _CC2001教程_研究与思考.pdf