【发布时间】:2022-01-10 19:39:08
【问题描述】:
如何使用 K8S 实现内存状态/会话复制?例如,一个网络购物车系统通过网络在集群节点之间复制用户 HTTP 会话,这样如果一个节点出现故障,另一个节点中的进程可以接管用户会话。
我认为 K8S 有 StatefulSet,它使用磁盘存储来确保状态持久性。如果一个 pod 宕机,重新启动的 pod 会接管磁盘的状态。但是,将内存中的用户会话持久保存到磁盘的开销很高,并且可能不够快。
我想解决方案可能是使用内存缓存服务器或类似 etcd 的系统。是既定的惯例吗?据我了解,K8S 在规模上适合无状态处理,并且引入了 StatefulSet 来解决有状态的情况,但不确定它是否适合需要快速状态切换的情况。
请指教。
【问题讨论】:
-
我认为我们通常使用
statefulset作为数据库服务之类的永久存储。在您的情况下,deployment和内存缓存中的etcd或redis将是合适的。
标签: kubernetes stateful