在 kubernetes 上使用相同数据库的多个 pod

sup*_*ith 5 kubernetes google-kubernetes-engine persistent-volumes persistent-volume-claims google-persistent-disk

我想知道同一 Kubernetes 集群中的多个 Pod 是否可以访问使用 Google 云持久磁盘上的持久卷配置的数据库。

目前,我正在构建一个微服务架构 Web 应用程序,该应用程序在不同的 Pod 中具有 3 个节点 api,所有这些都访问同一数据库。那么我如何使用 kubernetes 来实现这一目标呢?

请告诉我我的架构是否正确

Rya*_*son 2

您当然可以将多个基于节点的应用程序 Pod 连接到同一个数据库。有时有人说微服务不应该共享数据库,但这取决于您的应用程序正在做什么、项目历史记录以及您希望各个部分单独处理的程度。

关于大规模运行数据库,您必须回答一些问题,例如未来的负载,以及如果您要尝试跨可用区,是否要使用关系数据库。还有一些特定于 kubernetes 的内容,特别是关于如何将 DB Pod 与数据关联起来。请参阅/sf/answers/3778601501/。另一个流行的选择是使用云提供商的托管数据库服务。如果您确实在 k8s 中运行数据库,那么我建议您寻找 helm 图表或查看操作符,例如 kubeDB 操作符,以避免自己制作 kubernetes 描述符,并获得有关运行数据库和设置它的更多指导。

如果这是一个新项目,并且您之前没有使用过 k8s,那么您还必须决定在哪里托管代码、docker 镜像和部署描述符,以及如何设置 CI 管道。如果您还没有得到这些问题的答案,那么我建议您查看 Jenkins-X,因为它将为您提供整个集群和 CI 设置的开箱即用默认值以及用于构建的模板(“构建包”)节点应用程序并通过管道将它们部署到临时和生产环境。