容器化历史:
OpenStack,Cloud Foundry
PaaS
1、大规模部署=docker原生Swarn【和docker无缝集成】,CoreOS项目,Meso和Yarn【擅长的则是大规模集群的调度与管理】,Google公司的Kubernetes
2、CoreOS:定制化操作系统,安装这个操作系统的节点,用户可以向使用单机一下管理集群,提供PaaS能力,退出了Rocket(rkt)容器
3、Fig项目:(Container Orchestration)容器编排,Compose
4、Kubernets:Borg 和 Omega 系统的内部特性,监控事实标准的 Prometheus
目前热度极高的微服务治理项目 Istio;
被广泛采用的有状态应用部署框架 Operator;
还有像 Rook 这样的开源创业项目,它通过 Kubernetes 的可扩展接口,把 Ceph 这样的重量级产品封装成了简单易用的容器存储插件。
Docker解决是打包问题
1、云端虚拟机和本地环境不一致的问题,提供打包[如何屏蔽先上线环境不一致的问题]和分发机制,Agent通道下载软件包
2、Namespace和Cgroups 创建隔离环境
3、docker镜像=完成操作系统文件和目录【本质就是运行时依赖】+应用
Docker 封装的启动过程
- 启用 Linux Namespace 配置;
- 设置指定的 Cgroups 参数;
- 切换进程的根目录(Change Root)
对应的机制
1、Namespace机制: PID Namespace,Linux 操作系统还提供了 Mount、UTS、IPC、Network 和 User 这些 Namespace,用来对各种不同的进程上下文进行“障眼法”操作
2、Cgroups 技术:Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等
3、文件系统:即使开启了 Mount Namespace,容器进程看到的文件系统也跟宿主机完全一样。rootfs 只是一个操作系统所包含的文件、配置和目录,并不包括操作系
统内核。在 Linux 操作系统中,这两部分