如果我没记错的话,我听说过,或者我读到过,kubernetes/openshift中的大型数据库设置不是最佳的。
我找不到任何关于合理的数据库大小限制的文档。

换句话说,在kubernetes/openshift上由PerconaOperator部署5TB的postgresql数据库是否有意义?雷竞技下载官网
这是否打破了kubernetes的概念?
kubernetes/openshift是否有软的或硬的限制,或者是由操作员自己造成的?

嗨,马丁,
在Kubernetes集群中执行的服务通常与一些短暂的东西相关联,只有HA解决方案才能在这种情况下生存,因为k8s工作节点可以随时添加或删除。在实践中,数据库可以在具有100%稳定工作线程的专用kubernetes集群上工作,也可以在具有污点/亲和力的专用工作线程上工作:反亲和和容忍-用于PostgreSQL的Percona操作符雷竞技下载官网。即使k8s提供的所有服务都将关闭,进程仍然不会被终止,数据库可以继续正常工作。

反对Kubernetes(以及通常的云/虚拟机解决方案)的第二个理由是:为了提供适当的HA和故障转移,我们应该把数据放在网络存储上,但是NAS/SAN会让数据库性能变得糟糕。
当pgBackrest和Patroni节点故障时,Postgresql会自动从备份中恢复数据。因此,您可以使用本地NVMe/闪存驱动器来获得最大的性能。XFS或Ext4文件系统可以直接挂载到postgresql容器上。不管kubernetes软件发生了什么,数据库文件仍然会在工作节点文件系统上。Postgresql如何挂载本地文件系统?最简单的方法是hostpath,但它需要手动管理卷。更合理的做法是使用local-path-provisioner。更复杂(和强大)的解决方案是OpenEBS:OpenEBS文档| OpenEBS文档。它允许将直接挂载的卷管理为磁盘、文件系统或主机上的路径。
大型数据库并不总是要求高的磁盘同步速率,在这种情况下,您可以使用Ceph或SAN(或云存储)。不要忘记创建适当的storageclass,以便将快速卷专用于数据库。

它仍然可能需要为数据库生成一个副本。为了在合理的时间内做到这一点,我建议使用快速网络(10GbE)。使用1GbE网络,数据可以复制一天。

磁盘空间:
5TB用于数据库本身。30-40%允许数据库增长+ 1-3GB, 5TB用于本地备份(pgBackrest), 5TB+30-40%用于到达副本。2个副本需要25-30TB。

在独立的HA情况下,磁盘空间/文件系统的情况将相同/类似。