在Kubernetes上使用同一数据库的多个Pod

时间:2018-12-30 14:56:11

标签: kubernetes google-kubernetes-engine persistent-volumes persistent-volume-claims google-persistent-disk

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

当前,我正在构建一个微服务架构Web应用程序,该应用程序在不同的Pod中具有3个节点api,它们都访问同一数据库。因此,我如何使用kubernetes实现这一目标。

请让我知道我的架构是否正确

1 个答案:

答案 0 :(得分:1)

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

关于大规模运行数据库,您需要回答一些问题,例如将来的负载以及如果要尝试跨越可用性区域是否要使用关系数据库。还有 一些特定于kubernetes的内容,尤其是有关如何将DB Pod与数据关联的信息。参见https://stackoverflow.com/a/53980021/9705485。另一个流行的选择是使用来自云提供商的托管数据库服务。如果您确实在k8s中运行数据库,那么我建议您查找舵图或查找运算符,例如kubeDB运算符,以避免自己制作kubernetes描述符,并获得有关运行数据库和设置数据库的更多指导。

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