Kong 的 Postgres vs Cassandra

Postgres vs Cassandra for Kong

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

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

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

ReplicationControllers predates StatefulSets. It was a way to manage your pod replicas. The 'newer' approach to manage your replicas is ReplicaSets which is used by Deployments.

StatefulSets 适用于需要 pods 以有序方式启动的应用程序以及存储在磁盘上的某种数据。所以它非常适合 master/slave 数据存储或像 Cassandra 这样的环形拓扑数据存储。我强烈建议对这些类型的工作负载使用 StatefulSets。