把Docker打造成虚机-搜狗.pdfVIP

  • 4
  • 0
  • 约2.64千字
  • 约 14页
  • 2020-07-29 发布于江苏
  • 举报
把Docker打造成虚机 裴彤 搜狗平台架构部 源起 • 长期以来,开发、运维已经习惯了以机器 视角来干活,积累了很多工具、平台。 • Docker横空出世,各种美妙特性十分诱人, 但又难以直接迁移应用 • 把火车封装成马车 第一关 • 制作系统镜像 –Centos 6.6 – ENTRYPOINT [/.init/entrypoint.sh] –CMD /sbin/init • 开机启动服务 –sshd,crond 等不能正常启动 –nsenter渗透执行(注意cgroup ) –指定特定文件,开机自动执行 第二关 • 网络 –关闭宿主 docker0 网桥、nat转发 等 –创建直连网桥 –指定虚机ip,通过docker env 传递进去 –每次启动docker虚机时 • 宿主创建veth ,关联网桥 • 虚机内生成网络配置文件,执行 service network restart,使 ip、路由生效 –如有必要,可以使用Open vSwitch 第三关 • 存储 –宿主本地存储 –创建Lv卷,mkfs,挂载,-v 传给容器 –系统盘,代码盘,数据盘 –利用 cgroup 对lv卷进行 iops、bps 限制 • Centos 6.6 上效果很差 • Centos 7.1 上效果很好 第四关 • Metrics –Cgroup、/proc 信息收集,web展现 –容器内free 、mpstat、top等信息不准 • 删掉无效命令 • 提供替代 – sac-mem,sac-cpu • 不追求做到跟虚机完全一样。投入20分精力,得到 80分效果。考虑用户真正的需求是什么 • 有些应用会自动探测cpu核数,需要注意 还有 • 电源相关命令(reboot、shutdown等)无效 –页面操作 • 容器共享内核,不同应用需要不同参数 –按不同应用类别分机群 • 等等。。。 搞定单个虚机之后 • 宿主/虚机机群管理 –数据库记录宿主资源、虚机信息、ip池等 –管理程序:虚机增/删/ 改/查。 –创建虚机时根据资源自动选择宿主、分配ip –考虑容灾策略(分宿主、交换机、机房) –封装 API 于是得到 • 一套简易的IaaS平台 – 提供API – 按用户指定的内存/cpu/硬盘/OS环境,秒级创建虚机 – 虚机生命周期管理 – 可以给虚机系统盘做快照、随时重置(基于docker镜像 机制) • 投入 – 一个人,三个月 – 没有使用分布式存储 – 如果用 kvm/openstack 。。。 有 IaaS之后 • 裸用 – 替代部分 kvm 虚机 • 打造PaaS – 针对无状态 web 类应用 – 从应用视角出发,对docker虚机进行组织管理 • 种子机,线上机 • 系统环境打包、版本管理 • 代码版本管理 – 打通域名、接入、负载均衡等环节 – 提供丰富的可视化信息 – 弹性扩容/缩容 有 IaaS之后(2 )

文档评论(0)

1亿VIP精品文档

相关文档