问题背景
并不是所有的 Kubernetes 集群都有很大数量的机器, 一个 Pod 也有可能占用几十 G 内存, 希望读者能在阅读前就了解这样的现实....默认部署策略的使用
该集群中有几个应用的内存使用率很高, 每个 Pod 启动后内存会逐渐上升, 我们能接受的范围大概在 20G 左右....一个比较简单的控制策略
kubernetes 中针对节点的可分配资源是可以定义的, 我们限制节点保留 10%的资源, 用 ansible 生成的 kubelet 参数可以这么加
--system-reserved...有关精细控制节点中的 Pod 数量, 我们调研了几种方案:
Pod 拓扑分布约束[1]
该方案实现较为复杂, 它引入了域的概念, 将节点分组, 每个组为一个域, 针对各个域中部署的 Pod 数量进行限制...这篇文章中, 我提到了三个处理方案, 大家可以针对自己的情况自己去选择:
在建立集群时就考虑下, 给每个节点预留资源,
Pod 的拓扑分布约束我暂时没想到合适的场景
对于某些机器较少的集群, 用户想要实现细力度的控制