如果我有一个多层应用程序(比如web / logic / database),每个层都有自己的容器,我需要部署所有这些整体,他们都必须去进入同一个豆荚?
如果它们位于同一个pod中,这对可以运行的最大应用程序大小有什么影响吗?
或者是否有一些更高级别的抽象可以用来启动所有三个层,但是让它们在不同的爪子上运行?
答案 0 :(得分:0)
为什么需要将所有组件一起部署?在微服务架构中,您可能希望减少每个层与干净界面之间的依赖关系,然后允许每个层与其他层分开部署和扩展。
如果需要将它们一起部署(例如,它们共享本地磁盘或localhost网络),则需要将它们部署为单个pod。单个pod是原子调度单元,因此它将部署到单个主机上。由于它位于单个主机上,因此将应用程序的可扩展性限制为单个主机的大小(不允许随着流量的增加而扩展)。
如果您的三个图层没有紧密耦合,那么您可以在不同的窗格中运行它们,这允许它们在多个主机上进行调度(例如,如果您正在进行本地开发,则在同一主机上进行调度)。要将广告连接在一起,您可以定义services。
您应该看看guestbook example,它说明了如何为在Kubernetes上运行的简单多层Web应用程序定义pod和服务。