我有一个"india"
依赖于 postgres 和 redis 的 Web 应用程序(例如)(例如,典型的 Rails 应用程序)。
我有一个docker-compose.yml
组成容器的文件来启动这个应用程序。
version: '3'
services:
redis-india:
image: redis:5.0.6-alpine
# .....
postgres-india:
image: postgres:11.5-alpine
# ....
india:
depends_on:
- postgres-india
- redis-india
image: india/india:local
# ....
我想用 Kubernetes 运行这个应用程序部署。我试图弄清楚如何正确构建 k8s 资源对象,我正在权衡两个选项:
我可以在 k8s 中构建
india
、postgres-india
和redis-india
作为单独的部署(因此是单独的服务)我可以构建
india
,postgres-india
和redis-india
作为单个部署(因此单个pod
/service
)
#2 对我个人来说更有意义——这里的所有 3 项都包含应该作为单个服务 URL 公开的整个“应用程序服务”(即 Web 应用程序的前端)。
但是,如果我使用自动化工具kompose
将我的docker-compose.yml
文件转换为 k8s 资源,它会遵循方法 #1 并创建三个单独的 k8s 服务。
我应该遵循“正确的方法”或标准吗?
谢谢!