对于 Kubernetes,React + Node.js 应用程序应该如何拆分为 containers/pods?
How should a React + Node.js app be split into containers/pods for Kubernetes?
我听说一个 pod 通常只有 1 个容器。
这是否意味着我应该有 2 个 pods:1 个 React 和 1 个 Node.js?
如果我在 React 前端有一个像 nginx 运行 这样的 Web 服务器怎么办?然后 React + nginx = 2 个容器 = 1 个 Frontend pod 和 1 个 Node.js pod?
"pod often only has 1 container"。不,这并不意味着您的应用程序应该有两个 Pods。您可以在一个 Pod 中使用两个容器。
Each Pod is assigned a unique IP address. Every container in a Pod shares the network namespace, including the IP address and network ports. Containers inside a Pod can communicate with one another using localhost. When containers in a Pod communicate with entities outside the Pod, they must coordinate how they use the shared network resources (such as ports).
如果您需要共享相同的网络命名空间,则需要将它们保存在一个 Pod 中。
此外,这取决于目的。如果它们实现相似的目的,您可以将多个过程组合在一起。如果一个应用程序需要在同一台主机上运行多个进程 运行,您可以使用多个容器。
此博客post 解释了一些用例:www.mirantis.com/blog
Kubernetes的最小部署单元是Pod。有一些情况像
- 前端和 NodeJs 总是一起扩展,你想要 3 个前端 3 个 nodejs,稍后你想要 4 个 nodejs 4 个前端。不推荐,但你可以将它们放在一个 pod 定义中
- 基本上是两个不同的容器,并且在扩展时彼此不依赖,那么您应该将它们放在不同的 pod 定义中并将它们公开为服务。
想想传统的数据库和前端系统。您是否在扩展前端系统的同时扩展了底层数据库系统。因此,当涉及到多个容器的相同 pod 定义或不同 pod 定义时,我们应该考虑扩展性和安全性。
我听说一个 pod 通常只有 1 个容器。
这是否意味着我应该有 2 个 pods:1 个 React 和 1 个 Node.js?
如果我在 React 前端有一个像 nginx 运行 这样的 Web 服务器怎么办?然后 React + nginx = 2 个容器 = 1 个 Frontend pod 和 1 个 Node.js pod?
"pod often only has 1 container"。不,这并不意味着您的应用程序应该有两个 Pods。您可以在一个 Pod 中使用两个容器。
Each Pod is assigned a unique IP address. Every container in a Pod shares the network namespace, including the IP address and network ports. Containers inside a Pod can communicate with one another using localhost. When containers in a Pod communicate with entities outside the Pod, they must coordinate how they use the shared network resources (such as ports).
如果您需要共享相同的网络命名空间,则需要将它们保存在一个 Pod 中。
此外,这取决于目的。如果它们实现相似的目的,您可以将多个过程组合在一起。如果一个应用程序需要在同一台主机上运行多个进程 运行,您可以使用多个容器。
此博客post 解释了一些用例:www.mirantis.com/blog
Kubernetes的最小部署单元是Pod。有一些情况像
- 前端和 NodeJs 总是一起扩展,你想要 3 个前端 3 个 nodejs,稍后你想要 4 个 nodejs 4 个前端。不推荐,但你可以将它们放在一个 pod 定义中
- 基本上是两个不同的容器,并且在扩展时彼此不依赖,那么您应该将它们放在不同的 pod 定义中并将它们公开为服务。
想想传统的数据库和前端系统。您是否在扩展前端系统的同时扩展了底层数据库系统。因此,当涉及到多个容器的相同 pod 定义或不同 pod 定义时,我们应该考虑扩展性和安全性。