k8s 小白。
1 个 k8s 集群中的机器良莠不齐,同样都是 4 核心,但有的 cpu 强有的 cpu 弱,在 cpu limit 中填写的 1000m 指的到底是多少性能呢?
如果 k8s 没有比较各个 node 的 cpu 性能差异,那同样限制了 cpu limit 为 100m ,如果 pod 分配到低端 node 上就跑得慢,分配到高端 node 上就跑得快。那不就没办法把性能不一样的机器组成一个集群了?
如果 k8s 比较了各个 node 的性能差异,比如跑了一个基准任务得出 node1 一个核只相当于 node2 1/10 个核,最终计算出摊平的核心数为 1.1 个等价 node1 cpu 核,那通过什么命令得到整个集群下的核心总数?这种平均出来的核的性能怎么衡量,比如一个程序在个人电脑上 0.1 个核就差不多,但当我部署到平均实力更强的集群上可能只需要 0.05 个核,平均实力更弱的集群上需要 0.2 个核,只能在集群中部署上去跑压测才知道吗?
1
dier 2022-09-25 17:01:51 +08:00 via iPhone 1
把性能一样的 Node 打同样的标签,需要性能一样的就通过标签控制 Pod 被调度到对应的节点。
|
3
yyttrr 2022-10-25 10:51:17 +08:00 1
最近也在想这个问题,能容忍的性能差别越大的服务的单位运行成本肯定是更低的,尤其是云端的弹性环境。
可以通过多个指标判断服务是否需要水平伸缩,cpu 水位 rt 连接数甚至业务上的埋点之类的。 |