首页 理论教育 微服务集群运维实践-微服务运维实战

微服务集群运维实践-微服务运维实战

时间:2023-11-05 理论教育 版权反馈
【摘要】:服务器集群是由一组互相连接在一起工作的服务器组成的,其可以看成是单个系统。图2-3部署到预定义服务器上的容器集群当我们不再从单个独立的服务器考虑问题而是将所有服务器看成一个整体时,才算是真正实现了集群。当部署应用程序时,我们可能会决定这个应用需要多少内存或CPU。例如,我们不会指定某些应用程序应该使用CPU 4、CPU 5、CPU 7,这样很低效且有潜在的危险。图2-4基于预定义策略部署到服务器的容器集群

微服务集群运维实践-微服务运维实战

服务器集群是由一组互相连接在一起工作的服务器组成的,其可以看成是单个系统。它们通常通过高速局域网(LAN)互相连接。集群和一组服务器之间的主要区别在于,集群是以单个系统的形式工作的,以提供高可用性、负载均衡和并行处理

如果将应用程序或服务部署到单独管理的服务器,并将其视为单独的单元,那么资源的使用率是次优的,因为无法提前知道哪一组服务部署到哪台服务器上能最大限度地利用资源。更重要的是,资源的使用情况往往会有波动。一些服务可能在早上需要大量的内存,到了下午可能就只需要很少内存了。预定义的服务器不允许我们弹性地、以最好的方式对资源的使用做一个平衡。即使并不需要这么大程度的弹性空间,预定义服务器也容易在出错时产生问题,从而导致我们必须手动将受影响的服务重新部署到能正常工作的结点上,(见图2-3)。

图2-3 部署到预定义服务器上的容器集群

当我们不再从单个独立的服务器考虑问题而是将所有服务器看成一个整体时,才算是真正实现了集群。从更低层面来讲,可能更容易说明白。当部署应用程序时,我们可能会决定这个应用需要多少内存或CPU。但是,我们不会决定应用程序将使用哪些内存插槽,哪些CPU应该使用哪些内存插槽。例如,我们不会指定某些应用程序应该使用CPU 4、CPU 5、CPU 7,这样很低效且有潜在的危险。我们只会决定需要三个CPU。同样,在更高层次上也应该这么做。我们不应该关心应用程序或服务的部署在哪个服务器上,而应该关心它需要什么资源。我们应该能够确定服务有一定的要求,然后让某个工具将它部署到集群中的任何服务器上,只要这个服务器能满足要求。最好的(如果不是唯一的)方法是将整个集群视为一个实体。

我们可以通过添加或删除服务器来增加或减少该集群的容量,但无论我们做什么,它仍然应该是一个实体。我们制定一个策略,然后将服务根据策略部署在集群内的某个地方。那些使用亚马逊网络服务(AWS)、微软Azure和Google Cloud Engine(GCP)等云端服务提供商的用户已经习惯了这种方法,尽管他们可能没有意识到这一点。(www.xing528.com)

在本章的其余部分将探讨如何创建集群,并研究可以帮助我们达成目标的工具。现在将在本地模拟集群,但这并不意味这些方法策略就不能应用于公有或私有云和数据中心(见图2-4)。

图2-4 基于预定义策略部署到服务器的容器集群

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈