总结
在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。
若集群机器规模上百台,要发布的服务上百个,就不能靠人肉运维,需要有专门容器调度系统,所以很多基于Docker的容器调度系统,比如Swarm、Mesos。Kubernetes。
它们能解决哪些问题呢?
解决容器创建时什么样的机器可以使用:
- 存活过滤
必须选择存活的节点,因为主机也有可能下线、故障态。
- 硬件过滤
比如Web集群往往用作计算节点,它的CPU一般配置比较高
大数据集群往往用作数据存储,它的磁盘一般配置比较高
以上都是针对主机层次的过滤方式。
为解决容器创建时选择哪些主机最合适,一般通过给主机打分。
比如Swarm包含两种类似策略:spread和binpack,都会根据每台主机的可用CPU、内存以及正在运行的容器的数量来给每台主机打分:
- spread策略
会选择一个资源使用最少的节点,以使容器尽可能的分布在不同的主机上运行。好处:可以使每台主机的负载都比较平均,而且如果有一台主机有故障,受影响的容器也最少
- binpack策略
正好相反,会选择一个资源使用最多的节点,好让容器尽可能的运行在少数机器上,节省资源的同时也避免了主机使用资源的碎片化
适用场景
各主机配置基本相同,使用也较简单,一台主机上只创建一个容器。每次创建容器时,直接从尚未创建过容器的主机中,随机选择一台。
某些在线、离线业务混布场景,为达到主机资源使用率最高,需综合考量容器中的任务特点:
-
在线业务主要使用CPU
-
离线业务主要使用磁盘和I/O
这两种业务的容器大部分情况下适合混跑在一起。
还有一种业务场景,主机资源都充足,每个容器只要划定所用资源限制,理论上跑在一起是没问题。但有时会出现对每个资源的抢占,比如都是CPU密集型或者I/O密集型的业务就不适合容器混布一台主机。
=====================================================================
若服务A调度的前提是先有服务B,容器调度时,就要考虑服务间这种依赖关系。
所以Docker提供Docker Compose。允许用户通过一个单独的docker-compose.yaml
定义一组相互关联的容器组成一个项目,以项目形式管理应用。
比如要实现一个Web项目,要创建:
- Web容器比如Tomcat容器
最后
现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**
/forums/4f45ff00ff254613a03fab5e56a57acb)收录**