nginx - Kubernetes Nginx 许多小 pod 与每个节点一个 pod
问题描述
我在具有 3 个节点的 kubernetes 集群上运行 nginx。
我想知道拥有例如 4 个 pod 并将它们的 cpu/mem 限制为大约是否有任何好处。1/4 的节点容量与每个节点运行 1 个 pod 限制 cpu/mem 以便 pod 可以使用整个节点的资源(为简单起见,我们将 cubernet 服务排除在外)。
我的感觉是 pod 越少开销越小,每个节点 1 个 pod 应该是性能最好的?
提前致谢
解决方案
使用超过 1 个 Pod,您就有了一定的高可用性。您的 pod 将在某一时刻死亡,如果它位于控制器后面(必须如此),它将被重新创建,但您将有一小段停机时间。
现在,考虑到如果您部署的应用程序的副本不止一个,即使您给它 1/n 资源,也会有一个基础映像和依赖项将被复制。
作为一个例子,让我们想象一个在 Ubuntu 上运行的应用程序,它有 5 个依赖项:
如果您运行此应用程序的 1 个副本,您将部署 1 个 Ubuntu + 5 个依赖项 + 应用程序本身。
如果您运行此应用程序的 4 个副本,则您正在运行 4 个 Ubuntu + 4*5 依赖项 + 4 次应用程序。
我的观点是,如果你的基础镜像很大,并且你需要大量依赖,这将不是资源的线性增长。
在性能方面,我认为没有太大区别。您的一个节点将被严重轰炸,因为您的所有请求都将在那里结束,但如果您的节点可以处理它,那么应该没有问题。
推荐阅读
- asp.net-mvc - LINQ to Entities 不支持未映射的属性
- python - 如何重新编写此 python 代码以在 pyinstaller 生成的 exe 中工作?
- go - 如何在 Go 中正确使用组合
- c# - asp.net mvc core 2 选择值在视图模型中始终为 0
- c# - 如何创建控制台应用程序以在 Windows 启动时自动运行
- android - 创建 ACTION_SEND 意图失败,并显示“grantUriPermission 失败”
- javascript - 在 setState 之后,想给 ReactTable 提供数据
- outlook-web-addins - 如何在选择电子邮件时启动 Outlook Web 插件,而不是在每封电子邮件上启动插件?
- html - 查找包含页脚/页眉信息的特定文件 IIS/Microsoft SQL Server
- c++ - 堆栈、堆和动态内存分配