K8S 容器绑核
最近想学习在K8S环境给容器绑定CPU,曾经参考过一篇帖子,绑核成功,但第二次操作就莫名其妙再没每成功过。又找了几篇帖子,而且还把老的v1.17.4卸了,重装一个v1.20.15,再次试验。原来的操作1,停止kubelet(未进行节点驱逐的操作)2,修改config.yaml (/var/lib/kubelet/config.yaml)添加 cpuManagerPolicy: static3,删除
最近想学习在K8S环境给容器绑定CPU,曾经参考过一篇帖子,绑核成功,但第二次操作就莫名其妙再没每成功过。
又找了几篇帖子,而且还把老的v1.17.4卸了,重装一个v1.20.15,再次试验。
原来的操作
1,停止kubelet(未进行节点驱逐的操作)
2,修改config.yaml (/var/lib/kubelet/config.yaml)添加 cpuManagerPolicy: static
3,删除cpu_manager_state
4,systemctl restart kubelet 就这里有问题,发现kubelet无法成功重启,所以并不能生成新的cpu_manager_state文件。
新操作
1,修改 /lib/systemd/system/kubelet.service.d/10-kubeadm.conf
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS --feature-gates=CPUManager=true --cpu-manager-policy=static --kube-reserved=cpu=1
2,删除 /var/lib/kubelet/cpu_manager_state状态文件
3,重载systemctl daemon-reload
4,重启systemctl restrart kubelet
容器不用重新部署,原本是Pod 属于 Guaranteed QoS 类型的会自动绑定CPU.
5,进入容器查询绑核情况。
kubectl exec -it POD -c container -n NS bash
taskset -cp 1
总结一下:
上面两种方法,第一种没有systemctl daemon-reload,会不会这个导致kubelet没有重启成功。嗯,下次再试试。
更多推荐
所有评论(0)