云是什么:云由无数水蒸气,也就是小水滴组成。
云计算:管理无数虚拟资源,最小资源是虚机。云计算使用rabbitMQ消息总线,通知:虚拟资源,网络等。该创建虚机,虚机扩容,虚机不正常,虚机释放。以上操作记录,均记录在mysql。
k8s:管理无数容器镜像,最基础单位docker。k8s使用etcd作为消息总线,通知:网络,资源,和应用等。容器启动,应用状态,容器销毁,容器间通信等。以上操作均记录在mysql。
也就是k8s镜像容器应用不依赖openstack(虚机化),可以在linux3.8之后任何内核上运行。
linux3.8之后,为什么这么说呢?
linux原始生态就像动物园,弱肉强食。
CPU演进史:
- 因为:一个应用一个进程,10个应用10个进程,因为cpu调度非常快,看上去10个都在跑。其实10个应用在抢资源,cpu时间片切换根本察觉不到,所以看上去像并行。
- 所以:linux内核想办法,就像把动物园拿篱笆扎起来,稀有动物重点照顾,重点动物保护,其他常见动物散养。 分组:稀有放一组,重点放一组,其他不分组。进程在跑,拥有的cpu使用权 稀有 > 重点 > 常见。解决资源分配靠抢。
内存演进史: - 传统tomcat进程,运行需要多少内存,就占多少内存,先占先得。后启应用因内存不够,则无法运行。
- 处理:还是动物园管理原理。比如总共有20g内存,稀有占10g,重点占7g,常见占3g。那么稀有总共10g,重点7g,其他3g。重点:3者互相隔离,谁不够谁剩余,其他组都别想。
网络演进,欺骗。
- 传统A应用占用80,主机名称为host。则B应用就不能使用80,主机名称也是host。
- A用80端口,主机是AHost,B也用80端口,主机是BHost。但真正内部是其他端口,主机名一样,只是欺骗A和B应用。
linux内核演进上面三大功能后,还不足以让k8s大火。
硬核:文件分层出现,linux-3.8
- 传统一个虚机,有内