docker+k8s学习随笔

1.背景

作为一个程序员,每天都跟docker和k8s打交道,我只知道它们给程序员们提供了很大的便利,可以很轻松的扩展/缩减容器,但是却对具体的细节不了解。

也不知道为什么要使用docker和k8s,所以非常有必要去学习他们。

2.笔记

2.1 为什么要使用docker呢?

说到这个问题,我们先考虑一下如果不使用容器的概念来对我们日常开发的程序进行部署是什么样的情况?

假设我们要上线一个新的服务,预估QPS:30K,预估总内存使用量:20GB,预估总磁盘使用量:1000GB。

有了这样的预估数据,我们假设一台物理机器(服务器)能够支撑起2K的QPS,那么我们至少需要15台物理机;假设一台物理机是4GB的内存空间,那么我们会有60GB的总内存,这个时候我们可能会考虑一台机器2GB是否足够使用,如果足够使用的话,我们会将物理机的内存定在2GB,那么我们最终会有2*15=30GB的内存空间;磁盘空间的计算同理。

最终我们可能会有这样的购买清单:
4core cpu, 4GB 内存,80GB 物理磁盘  *  15 台

拿到机器后,我们会在机器上安装程序运行的所有软件,例如java,golang,mysql,redis等等。

在15台机器上都需要执行这样的安装操作,这就有点累了。

即便吩咐15个人同时安装,也是一件耗时耗力的工作啊…

这里我们就能看出来了,第一个问题就是部署安装太麻烦了!

费了九牛二虎之力之后,终于所有软件安装成功了,程序也如愿以偿地上线了,流量放开后,日均30K QPS打进来,运维同学有话要说了,他们发现机器无论是cpu还是内存以及磁盘都还有很大的富余。

对于中小公司来说,这些富余的资源似乎就被浪费了

后来采购部的领导低价采购一批配置略低的服务器,打算把这些部署好的服务迁移到价格低廉的服务器上面去,这下犯难了。

这可怎么迁移啊,又要重新装软件,重新部署,还有可能因为软件的版本跟之前装的不一致,产生兼容问题,这太难了

不同的硬件厂商对程序的支持程序也不一样,太难了。

这就是直接使用物理机的弊端!看的我头皮发麻。

那么呢,后来也是出现了虚拟机的概念,一台机器可以安装多个虚拟机,这样能解决资源浪费的问题。

 

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...