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