为什么一个Node上的Pod容量默认是110

首先这里是可通过 kubelet 的 --max-pods(Deprecated)配置的. 也可以在 kubelet 的配置文件 https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kubelet/config/v1beta1/types.go#L476 更改.

在 kubernetes 的文档里 https://kubernetes.io/docs/setup/best-practices/cluster-large/ 也提到:

  • No more than 100 pods per node

然后我们再讨论 110 这个数字的问题. 在这里 https://github.com/kubernetes/kubernetes/issues/23349 大家有讨论, 虽然这里面的讨论有些时间了.
综合看下来, 还是考虑到 kubernetes 所依赖的底层组件, docker, 网络, kubelet 的可扩展性(当时) 并不是很好; 为保证一个好的服务质量 SLO, 才用了 100 这个数字.

不过 https://github.com/kubernetes/kubernetes/issues/23349#issuecomment-201004660 做过的测试表明, 500 pod in 1 node 的 overhead (在性能上)完全是可以接受的.

这是一些参考: