我们正在将基础架构迁移到Kubernetes。我正在谈论其中的一个部分,它包含了一个API,比如说针对客户(我们有很多其他资源也是这种情况)。假设我们有十亿个客户,每个客户都有一些数据等等,并且我们决定他们应该有一个专门的API,拥有自己的数据库、服务器、域名等等。
Kubernetes 有节点和 Pod 的概念。所以我们说:“好吧,我们把节点 X 和它所有的资源都专门用于这个特定的 API”。现在问题来了:
为什么要使用多个 Pod,每个 Pod 都包含相同的 nginx + fpm 和代码,并将其限制为部分流量和资源,并添加内部负载均衡、自动扩展等等,而不是只有一个 Pod,利用全部节点资源?
由于每个 Pod 都会增加一些额外的内存消耗,这对我来说似乎是一种浪费。唯一的好处是,如果某些东西出了问题,只有某部分会停止工作(因此在这种情况下可能有2个 Pod 最优?)。
显然,在需要时会扩展节点。
注:我不是在讨论有多个包含不同内容的 Pod 的情况,我在讨论那个特定的情况。
注2:数据库已经放在了它自己的 Pod 外面。
Google 在这个主题上让我失望了。我发现数百篇带有“如何配置”的文章,但是没有一篇涉及到为什么要这样做的。
Kubernetes 有节点和 Pod 的概念。所以我们说:“好吧,我们把节点 X 和它所有的资源都专门用于这个特定的 API”。现在问题来了:
为什么要使用多个 Pod,每个 Pod 都包含相同的 nginx + fpm 和代码,并将其限制为部分流量和资源,并添加内部负载均衡、自动扩展等等,而不是只有一个 Pod,利用全部节点资源?
由于每个 Pod 都会增加一些额外的内存消耗,这对我来说似乎是一种浪费。唯一的好处是,如果某些东西出了问题,只有某部分会停止工作(因此在这种情况下可能有2个 Pod 最优?)。
显然,在需要时会扩展节点。
注:我不是在讨论有多个包含不同内容的 Pod 的情况,我在讨论那个特定的情况。
注2:数据库已经放在了它自己的 Pod 外面。
Google 在这个主题上让我失望了。我发现数百篇带有“如何配置”的文章,但是没有一篇涉及到为什么要这样做的。