在Kubernetes内部运行消息队列集群是一个好主意吗?
我不认为在Kubernetes中驻留一组消息队列是一个好主意。 我不认为在kubernetes内部托管任何集群,也不认为在kubernetes内部托管任何有状态系统是一个好主意。 Kubernetes是为无状态restful服务设计的,可以进行伸缩等。 首先,我说得对吗? 如果我是对的,那么 我只需要一些有效的观点来说服我的一些同事。在Kubernetes内部运行消息队列集群是一个好主意吗?,kubernetes,Kubernetes,我不认为在Kubernetes中驻留一组消息队列是一个好主意。 我不认为在kubernetes内部托管任何集群,也不认为在kubernetes内部托管任何有状态系统是一个好主意。 Kubernetes是为无状态restful服务设计的,可以进行伸缩等。 首先,我说得对吗? 如果我是对的,那么 我只需要一些有效的观点来说服我的一些同事。 感谢Kubernetes主要是为无状态应用程序设计的,Kubernetes中的状态管理引入了您必须管理的额外复杂性(持久性、备份、恢复、复制、高可用性等) 让我们
感谢Kubernetes主要是为无状态应用程序设计的,Kubernetes中的状态管理引入了您必须管理的额外复杂性(持久性、备份、恢复、复制、高可用性等) 让我们引用一些来源(添加了重点): 虽然完全有可能在Kubernetes中以企业级可靠性运行有状态的工作负载,如数据库,但这需要大量的时间和工程投资,这对您的公司来说可能没有意义[…]通常更经济高效地使用托管服务 云本地DevOps与Kubernetes,p。奥赖利,2019年 使用statefulset的决定应该明智,因为通常情况下,有状态应用程序需要更深入的管理,而协调器还不能很好地进行管理 Kubernetes最佳实践,第16章,O'Reilly,2019年 但是… 在Kubernetes中运行有状态应用程序的支持正在稳步增加,主要工具有和: 有状态的应用程序需要更多的尽职调查,但由于引入了有状态集和操作符,在集群中运行它们的实际情况得到了加速 Kubernetes最佳实践,第16章,O'Reilly,2019年 在Kubernetes中管理有状态应用程序(如数据库系统)仍然是一个复杂的分布式系统,需要使用本机Kubernetes原语(POD、ReplicaSet、Deployment和Statefulset)进行精心编排,但是使用具有特定应用知识的操作员作为Kubernetes原生API,可能有助于将这些系统提升为基于生产的集群 Kubernetes最佳实践,第16章,O'Reilly,2019年 结论 作为撰写本文时的最佳实践,我想说:
- 尽可能避免管理Kubernetes内部的状态。使用外部服务(如云服务,如或)管理状态
- 如果您必须管理Kubernetes集群内的状态,则为要运行的应用程序类型存在,如果是,则使用它
- 尽可能避免管理Kubernetes内部的状态。使用外部服务(如云服务,如或)管理状态
- 如果您必须管理Kubernetes集群内的状态,则为要运行的应用程序类型存在,如果是,则使用它