Postgres vs卡桑德拉(Kong)

时间:2018-10-01 11:42:45

标签: kubernetes google-kubernetes-engine kong

我正在根据https://github.com/Kong/kong-dist-kubernetes文档{p>在GKE中部署Kong

我注意到cassandra作为StatefulSet可用,而Postgres作为ReplicationController。我能理解其中的区别吗?也有人可以建议如何在这两个之间进行选择吗?

2 个答案:

答案 0 :(得分:0)

StatefulSet更适合管理有状态的应用程序(肯定是postgres和cassandra),因为它提供了创建PersistentVolumeClaim以在您的情况下使用GKE PD的可能性,因此您的状态将存储在专用PD的单独分区上。相比之下,使用您提供的ReplicationController进行的Postgres部署使用的是emptyDir,这意味着当您通过Postgres意外/失败删除POD时,所有数据都会丢失,因此在这种情况下,您可能需要重新初始化Kong部署(运行Kong迁移,配置路由器等)

答案 1 :(得分:0)

ReplicationControllers早于StatefulSets。这是管理吊舱副本的一种方法。 ReplicaSets使用Deployments管理副本的“较新”方法。

StatefulSets适用于要求Pod与存储在磁盘上的某种数据一起以有序方式启动的应用程序。因此,它非常适合于主/从数据存储或像Cassandra这样的环形拓扑数据存储。我强烈建议对这些类型的工作负载使用StatefulSets。