我研究了几个用于Apache Spark部署的头盔图表,发现它们中的大多数都使用statefulset进行部署,而不是常规的k8s部署资源。
例如microsoft/spark使用常规部署,而bitnami/spark更喜欢使用statefulset。
我只是想知道有什么具体原因吗?
答案 0 :(得分:1)
Apache Spark是一项有状态服务,应将其部署为StatefulSet。
仅无状态服务应部署为Deployment。 无状态的应用程序遵循Twelve Factor App原则。使应用程序变为无状态,使其更易于作为分布式系统运行,例如Kubernetes中的多个实例。但是,并非所有事物都可以是无状态的,StatefulSet是有状态服务的一个选项。