周末和友人聊天,友人问及“搜索是计算密集型”,如果使用docker技术,如何资源管理?
本文来解释一下如何使用kubernetes来进行资源分配(主要包括cpu和mem)
可能很多人还不了解资源设置的意义在哪,为什么要进行资源设置?
假设有A容器和B容器分配在同一台物理机上,两个容器是会互相影响抢占同一份资源的,现在经过上面简单配置后,A容器和B容器不可能超过资源的上限阈值,也就杜绝了相互干扰。
01 如何配置
首先要明白一个过程:资源配置参数是通过kubernetes接口注入的。kubernetes会将此配置项传递给docker(假设kubernetes是用docker容器化技术)。docker接收配置项,并注入到linux的cgroup中。那么这个配置项的流程就是:
kubernetes 接口设置 ----> docker 配置 ---> linux cgroup 生效
首先来看kubernetes是如何配置的。
kubernetes提供了友好简单的配置接口,主需要在deployment的yaml中进行容器配置即可(高版本这个配置项是必须的!!),配置部分为:
Limits:
cpu: 16
memory: 20Gi
Requests: