在Kubernetes内部运行消息队列集群是一个好主意吗?

在Kubernetes内部运行消息队列集群是一个好主意吗?,kubernetes,Kubernetes,我不认为在Kubernetes中驻留一组消息队列是一个好主意。 我不认为在kubernetes内部托管任何集群,也不认为在kubernetes内部托管任何有状态系统是一个好主意。 Kubernetes是为无状态restful服务设计的,可以进行伸缩等。 首先,我说得对吗? 如果我是对的,那么 我只需要一些有效的观点来说服我的一些同事。 感谢Kubernetes主要是为无状态应用程序设计的,Kubernetes中的状态管理引入了您必须管理的额外复杂性(持久性、备份、恢复、复制、高可用性等) 让我们

我不认为在Kubernetes中驻留一组消息队列是一个好主意。 我不认为在kubernetes内部托管任何集群,也不认为在kubernetes内部托管任何有状态系统是一个好主意。 Kubernetes是为无状态restful服务设计的,可以进行伸缩等。 首先,我说得对吗? 如果我是对的,那么 我只需要一些有效的观点来说服我的一些同事。
感谢

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中的状态管理引入了您必须管理的额外复杂性(持久性、备份、恢复、复制、高可用性等)

让我们引用一些来源(添加了重点):

虽然完全有可能在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集群内的状态,则为要运行的应用程序类型存在,如果是,则使用它

您听说过StatefulSet吗?我听说过,但不太清楚它是如何工作的。不知道当它缩小时它是如何工作的。1-2年前是这样,但现在,有很多有状态的东西在Kubernetes上运行。参见示例:1,2.3.使用operator框架并构建有状态的应用程序(如果它不是一种非常自定义的编排模式,则利用statefulset)。您听说过statefulset吗?我听说过,但不太确定它是如何工作的。不知道当它缩小时它是如何工作的。1-2年前是这样,但现在,有很多有状态的东西在Kubernetes上运行。参见示例:1,2.3.使用operator框架并构建有状态应用程序(如果它不是一种非常自定义的编排模式,则利用statefulset)。