首页 文章

在Kubernetes上部署数据驱动的Web应用程序

提问于
浏览
0

目前,我在一个Docker Image中运行一个数据驱动的Web应用程序,nginx,app server和Postgres都捆绑在一起 . 它只是在带有Docker的VM上运行 .

我需要将整个堆栈,一体化的东西迁移到Kubernetes并寻找标准的推荐的 Cloud 原生部署方式 .

  • 我知道我需要将nginx作为单独的部署或pod运行,并将app服务器作为单独的pod / deployment运行 .

  • 我需要为数据库做出选择,我是否应该使用外部数据库服务,在Kubernetes外运行,或者在Kubernetes上运行我自己的Postgres作为有状态集 .

  • 如果我使用外部服务,那么当我升级应用程序并确保没有版本不匹配时我将需要担心,并且外部服务可能不太灵活,因为我无法控制它 . 使用数据库的推荐方法是什么,要么是在Kubernetes上自我部署还是使用外部数据库?

  • 关于nginx,我应该使用自己的nginx作为单独的部署运行,还是应该使用Ingress Controller?与nginx相比,使用ingress有什么优势,虽然nginx作为部署可以自动扩展,而入口控制器却不能?

这里我的问题的重点,在每一步,我想避免任何反模式将堆栈部署到Kubernetes,这样我就不必再为之奋斗了 .

1 回答

  • 1

    如果我使用外部服务,那么当我升级应用程序并确保没有版本不匹配时我将需要担心,并且外部服务可能不太灵活,因为我无法控制它 . 使用数据库的推荐方法是什么,要么是在Kubernetes上自我部署还是使用外部数据库?

    这完全是基于这个问题的意见 . 如果您不太关心成本,我会使用外部数据库,可能是Amazon RDS等 Cloud 提供商数据库或GCP的Cloud SQL . IMO,您将从外部卸载数据库管理,并在出现问题时更容易调试 . 另一个方面是您可以利用具有更好性能/可伸缩性的东西,如Amazon Aurora .

    如果您担心成本,那么请使用Kubernetes解决方案,这将使您为数据库和nginx以及应用程序窗口使用相同的计算机集 .

    关于nginx,我应该使用自己的nginx作为单独部署运行还是应该使用Ingress Controller?与nginx相比,使用ingress有什么优势,虽然nginx作为部署可以自动扩展,而入口控制器却不能?

    实际上,您可以自动调整nginx入口控制器,该控制器在同一容器中运行nginx并由部署管理,您必须根据nginx入口控制器盒上的某些指标(如CPU)设置自动调节 .

相关问题