概要描述
在测试环境中, 或者特定的用户环境中, 由于存在用户对应用的CPU, Memory估算偏大, 造成实际 TOS 集群资源只能创建较少数量的应用,同时 TOS 集群的实际资源使用率较低,通过为 TOS 集群设置 overcommit ratio, 使得集群内所有机器的可用资源超配, 来提高 TOS 集群资源使用率, 支持更多应用的创建
注意: 超配只适用于测试集群,生产集群严禁开启
详细描述配置过程
Ratio 配置
TOS 集群安装完成后,会自动在 kube-system 租户下生成名为 ratio 的 configmap。所以可以通过
kubectl get cm ratio -n kube-system -oyaml
查看默认配置
apiVersion: v1
kind: ConfigMap
metadata:
labels:
transwarp.overcommit: "true"
name: ratio
namespace: kube-system
data:
cpu: "2"
memory: "4"
tosdisk: "1"
tosdisk-pv: "1"
如上所示, 其中 data 域中 cpu=2, memory=4 等表示所有节点上 cpu 超配 2 倍,memory 超配 4 倍。
若是想要配置超配,使用 kubectl edit cm ratio -n kube-system 编辑 ratio 的 data 域对应参数项的值,如下所示,除了 cpu,memory,还有 tosdisk,tosdisk-pv,这 2 个参数项是 warpdrive 相关的,其中 tosdisk 表示临时存储超配,tosdisk-pv 表示 pvc 超配。
apiVersion: v1
kind: ConfigMap
metadata:
labels:
transwarp.overcommit: "true"
name: ratio
namespace: kube-system
data:
cpu: "15"
memory: "15"
tosdisk: "15"
tosdisk-pv: "15"
Kubelet 配置
在需要开启超配的节点上更改 kubelet 的启动参数
在 kubelet 的配置文件 /etc/sysconfig/kubelet 中添加 –feature-gates=SupportOverCommit=true,然后重启 kubelet
systemctl daemon-reload
systemctl restart kubelet
注意:
kubelet 下添加的 –feature-gates 参数仅用来控制 cpu、memory 的超卖,tosdisk 相关的参数由 warpdrive 独立控制,需要修改 warpdrive 的启动参数使之生效,未做融合。
Warpdrive 配置
在 warpdrive 的配置文件 /usr/lib/systemd/system/warpdrive.service 中添加–allow-overcommit=true,然后重启 warpdrive
systemctl daemon-reload
systemctl restart warpdrive