打造Docker虚拟机:兼容传统运维与微服务
5星 · 超过95%的资源 需积分: 9 36 浏览量
更新于2024-09-10
5
收藏 104KB PDF 举报
"这篇文章主要介绍了如何将Docker容器改造得更接近虚拟机,以便于在保持原有运维习惯的同时,利用Docker的优势。作者裴彤来自搜狗平台架构部,分享了这一过程中的四个关键环节:制作系统镜像、处理网络、解决存储问题以及监控指标,并提到了其他一些挑战和解决方案。"
1. **制作系统镜像**:
- 基于Centos6.6构建Docker镜像,并设置ENTRYPOINT和CMD以模拟启动流程。
- 遇到的问题是sshd和crond等服务无法正常启动,通过nsenter和cgroup解决了服务启动和渗透执行的问题。
- 开机时,通过指定特定文件并自动执行,确保服务能够启动。
2. **网络配置**:
- 关闭宿主机的docker0网桥和NAT转发,建立直连网桥,确保容器内的IP可以通过docker环境变量传递。
- 每次启动容器时,宿主机创建veth接口并与网桥连接,容器内部生成网络配置并执行service network restart,实现IP和路由的生效。
- 如有需要,可以使用OpenvSwitch增强网络功能。
3. **存储管理**:
- 使用宿主机的本地存储,创建LVM卷,格式化后挂载到容器中,通过-v参数传递。
- 分别处理系统盘、代码盘和数据盘,利用cgroup限制LV卷的IOPS和带宽。
- 在Centos6.6上效果不佳,但在Centos7.1上表现良好。
4. **监控与性能**:
- 通过收集cgroup和/proc信息进行监控,并开发sac-mem和sac-cpu替代工具,因容器内的某些系统命令(如free、mpstat、top)可能不准确。
- 注意某些应用会自动检测CPU核数,需避免因此引发的问题。
5. **其他挑战**:
- 容器中的电源管理命令如reboot、shutdown无效,需要通过页面操作实现。
- 不同应用可能需要不同的内核参数,建议根据应用类别划分容器集群。
- 还需考虑宿主机、交换机和机房的容灾策略。
6. **虚机管理和IaaS平台**:
- 创建了一个简易的IaaS平台,包括API接口,可以快速按需创建具有指定内存、CPU、硬盘和操作系统环境的“虚机”。
- 实现虚机的生命周期管理,包括快照和重置功能,利用Docker镜像机制。
- 仅用一个人力和三个月的时间完成,未使用分布式存储。
通过以上步骤,公司能够在保留原有运维习惯的同时,逐步引入Docker的优势,构建出一个类似虚拟机的Docker环境,最终形成一套简易的IaaS平台,实现了资源的高效管理和快速部署。
2022-03-17 上传
2022-08-03 上传
2023-06-09 上传
2020-10-12 上传
2024-01-12 上传
2021-03-09 上传
2021-06-18 上传
2021-03-02 上传
腾讯开发者
- 粉丝: 1480
- 资源: 52
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜