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

Multiple pods using same database on kubernetes

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

目前我正在构建一个微服务架构 Web 应用程序,它在不同 pods 中有 3 个节点 api,它们都访问同一个数据库。那么如何使用 kubernetes 实现这一点。

如果我的架构也正确,请告诉我

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

关于 运行 大规模使用数据库,您必须回答一些问题,例如您未来的负载,以及如果您要尝试跨可用性区域,是否要使用关系数据库。还有 一些特定于 kubernetes,特别是关于如何将 DB Pods 与数据相关联。参见 。另一个流行的选择是使用来自云提供商的托管数据库服务。如果你在 k8s 中做 运行 数据库,那么我建议你寻找一个 helm chart 或查看一个操作符,比如 kubeDB 操作符,以避免自己制作 kubernetes 描述符并获得更多关于 运行宁数据库和设置它。

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