基于 Docker 构建 IaaS 和 PaaSppt课件.ppt

基于 Docker 构建 IaaS 和 PaaSppt课件.ppt

ID:59323993

大小:1.18 MB

页数:18页

时间:2020-09-20

基于 Docker 构建 IaaS 和 PaaSppt课件.ppt_第1页
基于 Docker 构建 IaaS 和 PaaSppt课件.ppt_第2页
基于 Docker 构建 IaaS 和 PaaSppt课件.ppt_第3页
基于 Docker 构建 IaaS 和 PaaSppt课件.ppt_第4页
基于 Docker 构建 IaaS 和 PaaSppt课件.ppt_第5页
资源描述:

《基于 Docker 构建 IaaS 和 PaaSppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于 Docker 构建 IaaS 和 PaaS源起•近两年 Docker 大热,各种美妙特性十分诱人。但其理念过于前卫,不符合开发/运维既有的视角和习惯。最要命的是,不兼容公司多年来积累的各种工具、平台。•既想享受到 Docker 带来的好处,又希望整个开发/运维工具链能平滑迁移,How to?•我们的思路:把 Docker 容器“伪装”成虚机内容提要•把 Docker 容器改造为虚机•基于 Docker 虚机构建 IaaS 平台•基于 Docker-based IaaS 构建 Web 类 PaaS•基于 Docke

2、r-based IaaS 构建 MySQL 数据库云Docker作为虚机存在的问题•1号进程(init)•常用服务(sshd、crond 等)•网络(虚机 ip 路由可达)•存储•虚机 Metrics 信息收集(监控)Docker 容器改造为虚机(1)•制作系统镜像•Centos 6.6•ENTRYPOINT  ["/.init/entrypoint.sh"]•CMD  /sbin/init 3•开机启动服务•sshd,crond 等不能正常启动•nsenter 渗透执行(注意 cgroup)•用户 chkconfig

3、 on 无效•指定特定文件,开机自动渗透执行Docker 容器改造为虚机(2)•网络•宿主配置•关闭 docker0 网桥、nat 转发等•创建自定义网桥,绑定物理网卡•创建Docker虚机时•--net=none•指定虚机ip、子网掩码、网关等,写入docker env•每次启动虚机时•虚机内 entrypoint 脚本解析 docker env,取到ip信息,生成网络配置文件•宿主上创建一对“peer interface”,其中一个绑定到自定义的网桥,另一个放到虚机的 network namespace ,虚机就与

4、外部网络二层互通了•nsenter 渗透执行 service  network  restart•如有必要,可以使用 Open vSwitch、SR-IOV 等Docker 容器改造为虚机(3)•存储•使用宿主本地存储•创建Lv卷,mkfs,挂载,-v 传给虚机•利用 cgroup 对lv卷进行 iops、bps 限制(高版本内核效果较好)Docker 容器改造为虚机(4)•虚机 Metrics 信息•CPU、内存使用情况•/cgroup/cpuacct/lxc/${虚机uuid}/cpuacct.stat,memor

5、y.stat•网卡流量•可以从虚机的 /proc/net/dev 收集•也可以在宿主上收集,peer interface 类似于管道,一端的入流量等于另一端的出流量。•容器内free、mpstat、top等信息不准•删掉无效命令,提供替代:sac-mem,sac-cpu•不追求做到跟虚机完全一样,关注用户真正的需求。•有些应用会自动探测cpu/内存信息,需要注意Docker 容器改造为虚机(5)•电源相关命令(reboot、shutdown等)无效•删掉•Web 页面上提供操作入口•容器共享内核,不同应用需要不同参数•

6、按不同的应用类别 分机群•等等。。。搞定单个虚机之后•虚机/宿主集群管理•数据库记录宿主、虚机、ip池等信息•宿主起 daemon,接收/执行指令•控制节点集中操作虚机增/删/改/查•创建虚机时自动选择宿主、分配ip•资源充裕度 + 随机•考虑容灾策略(分宿主、交换机、机房)•封装 API于是得到•一套简易的IaaS平台•••••提供API按用户指定的内存/cpu/硬盘/OS环境,秒级创建虚机虚机生命周期管理虚机内执行命令可以给虚机系统盘做快照、随时重置(基于docker镜像机制)•投入•一个人,三个月•没有使用分布式

7、存储•如果用 kvm/openstack。。。有了 IaaS 之后(1)•打造 PaaS•针对无状态 web 类应用•从应用视角出发,对 docker 虚机进行组织管理••••系统盘,代码盘,数据盘种子机,线上机系统环境打包、版本管理代码版本管理•打通域名、接入、负载均衡等环节•提供丰富的可视化信息•弹性扩容/缩容有了 IaaS 之后(2)•构建 MySQL 数据库云•传统方式•物理机跑一个 mysql 实例,按用户/项目分库•问题:隔离性差•改进版(cgroup)•单机跑多个mysql实例,不同用户/项目使用不同实例

8、•使用cgroup限制资源•问题:管理不便•使用docker虚机(cgroup + namespace)•为不同的用户/项目单独创建docker虚机•每个虚机跑一个mysql实例•cpu、内存限制:docker默认支持•磁盘:lv卷限制大小,cgroup限制io思考:用户究竟要什么?•物理机?虚机?容器?•IaaS?PaaS?Ca

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。