用部署在 k8s 中举例,一个应用 A ,分给它的 limit 为:CPU:4 ,内存 8G ,有 4 个副本,这是一个偏向 I/O 密集型的应用,那么在什么情况下,应该对 A 进行横向扩容(增加副本数),什么情况下应该纵向扩容(增加单个 Pod 的 CPU 和内存)呢?有什么判断依据吗?
1
my3157 Aug 5, 2022 via Android
3 以内,优先横向,3 以上,优先纵向,另外,一般轻应用,单个 Pod 控制在 8c16g 以内,如果超过,横向扩
|
4
crysislinux Aug 5, 2022 via Android
我觉得 io 密集的就横向啊,这种情况纵向也不太顶用吧
|
5
bthulu Aug 6, 2022
io 密集型, 还无状态, 主扩带宽, 次扩 CPU, 再次内存.
纵向还是横向扩容, 看性价比. 比如纵向扩容一倍, 价格翻 4 倍, 横向扩容一个副本, 价格仅翻一倍, 那就横向扩容. |
6
partystart Aug 6, 2022
纵向扩容: 加内存 换 CPU 换硬盘
横向扩容: 多部署服务实例,通过负载均衡避免单点故障 等通过部署实例 & 机器资源榨干之后 就可以考虑换硬件 加机器了 |
7
yyttrr Aug 9, 2022
得考虑很多,节点大小,资源高峰周期,cpu 与内存比例,启动时间等等
重视快速扩容完成,还是整体成本尽量低都是不同的策略 |