我想知道同一个 Kubernetes 集群中的多个 Pod 是否可以访问使用 Google 云永久磁盘上的永久卷配置的数据库。
目前我正在构建一个微服务架构 Web 应用程序,它在不同的 pod 中有 3 个节点 api,它们都访问同一个数据库。那么我如何使用 kubernetes 实现这一点。
请让我知道我的架构是否也正确
我想知道同一个 Kubernetes 集群中的多个 Pod 是否可以访问使用 Google 云永久磁盘上的永久卷配置的数据库。
目前我正在构建一个微服务架构 Web 应用程序,它在不同的 pod 中有 3 个节点 api,它们都访问同一个数据库。那么我如何使用 kubernetes 实现这一点。
请让我知道我的架构是否也正确
您当然可以将多个基于节点的应用程序 pod 连接到同一个数据库。有时有人说微服务不应该共享数据库,但这取决于您的应用程序正在做什么、项目历史以及您希望单独处理这些部分的程度。
关于大规模运行数据库,您必须回答一些问题,例如您的未来负载以及如果您要尝试跨越可用性区域是否要使用关系数据库。还有一些特定于 kubernetes 的内容,尤其是关于如何将 DB Pod 与数据相关联。请参阅https://stackoverflow.com/a/53980021/9705485。另一种流行的选择是使用来自云提供商的托管数据库服务。如果您确实在 k8s 中运行数据库,那么我建议您寻找 helm chart 或查看运算符,例如 kubeDB 运算符,以避免自己制作 kubernetes 描述符并获得有关运行数据库和设置的更多指导.
如果它是一个新项目并且您之前没有使用过 k8s,那么您还必须决定在哪里托管您的代码、您的 docker 映像和您的部署描述符以及如何设置您的 CI 管道。如果您还没有这些问题的答案,那么我建议您查看 Jenkins-X,因为它将为您提供整个集群和 CI 设置的开箱即用默认值以及用于构建的模板(“构建包”)节点应用程序并通过管道将它们部署到登台和生产环境。