如何使用 Kubernetes 部署多层应用程序
How to deploy multi - tier application with Kubernetes
如果我有一个多层应用程序(例如网络/逻辑/数据库),其中每一层都有自己的容器,并且我需要整体部署所有这些应用程序,它们是否都必须进入同一个广告连播?
如果它们在同一个 pod 中,这对可以 运行 的应用程序的最大大小有任何影响吗?
或者是否有一些更高级别的抽象我可以用来启动所有三个层,但让它们 运行在不同的 minions 上运行?
为什么需要将所有组件一起部署?在微服务架构中,您可能希望将每一层之间的依赖关系减少到一个干净的接口,然后允许每一层独立于其他层进行部署和扩展。
如果您需要将它们部署在一起(例如,它们共享本地磁盘或本地主机网络),那么您需要将它们部署为一个 pod。单个 pod 是一个原子调度单元,因此它将部署到单个主机上。由于它落在单个主机上,这将您的应用程序的可扩展性限制在单个主机的大小(不允许您随着流量的增加而扩展)。
如果你的三层没有紧密耦合,那么你可以 运行 它们在不同的 pods 中,这允许它们被安排在多个主机上(或者在同一台主机上,例如,你正在做本地开发)。要将 pods 连接在一起,您可以定义 services。
您应该看一下 guestbook example,它说明了如何在 Kubernetes 上为简单的多层 Web 应用程序 运行 定义 pods 和服务。
如果我有一个多层应用程序(例如网络/逻辑/数据库),其中每一层都有自己的容器,并且我需要整体部署所有这些应用程序,它们是否都必须进入同一个广告连播?
如果它们在同一个 pod 中,这对可以 运行 的应用程序的最大大小有任何影响吗?
或者是否有一些更高级别的抽象我可以用来启动所有三个层,但让它们 运行在不同的 minions 上运行?
为什么需要将所有组件一起部署?在微服务架构中,您可能希望将每一层之间的依赖关系减少到一个干净的接口,然后允许每一层独立于其他层进行部署和扩展。
如果您需要将它们部署在一起(例如,它们共享本地磁盘或本地主机网络),那么您需要将它们部署为一个 pod。单个 pod 是一个原子调度单元,因此它将部署到单个主机上。由于它落在单个主机上,这将您的应用程序的可扩展性限制在单个主机的大小(不允许您随着流量的增加而扩展)。
如果你的三层没有紧密耦合,那么你可以 运行 它们在不同的 pods 中,这允许它们被安排在多个主机上(或者在同一台主机上,例如,你正在做本地开发)。要将 pods 连接在一起,您可以定义 services。
您应该看一下 guestbook example,它说明了如何在 Kubernetes 上为简单的多层 Web 应用程序 运行 定义 pods 和服务。