背景
业务场景属于计算密集型的时候,容器分配固定的cpu核可以减少上下文切换带来的性能损耗
修改流程
注意:多节点配置应该需要到每个节点修改kubelet配置
修改kubelet配置
kubelet配置文件默认在 /var/lib/kubelet/config.yaml , 这个文件是kubelet启动时–config的值
# 修改 none -> static
cpuManagerPolicy: static
# 添加下面两个配置,系统预留资源,酌情分配
systemReserved:
cpu: 500m
memory: 500Mi
kubeReserved:
cpu: 500m
memory: 500Mi
删除原有调度状态文件
rm -f /var/lib/kubelet/cpu_manager_state
重启kubelet
systemctl daemon-reload && systemctl restart kubelet
# 查看状态
systemctl status kubelet
修改k8s部署配置
pod 的资源分配需要属于 Guaranteed
QoS 类型,并且分配的CPU资源需要是大于"1"的整数 , 容器才会被赋予独占的CPU资源
比如下面这样 requests 值等于 limits
resources:
requests:
cpu: 4000m
memory: 4000Mi
limits:
cpu: 4000m
memory: 4000Mi
或者只指定 limits
resources:
limits:
cpu: 4000m
memory: 4000Mi
要使用显卡的特殊配置
一旦把k8s资源调度方式修改为static都需要添加权限配置才能正常访问宿主的显卡添加在ymal的containers字段下
securityContext:
privileged: true