更改 Kubernetes 中的 CPU 管理器策略

2024-04-21

我正在尝试更改我管理的 Kubernetes 集群的 CPU 管理器策略,如上所述here https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/然而,我在这样做时遇到了很多问题。

该集群正在 DigitalOcean 中运行,这是我到目前为止所尝试的。

  • 1.既然文章提到了--cpu-manager-policy是一个 kubelet 选项,我假设我无法通过 API 服务器更改它,并且必须在每个节点上手动更改它。 (顺便说一句,这是假设吗?)
  • 2. I ssh进入其中一个节点(DigitalOcean 行话中的 Droplet)并运行kubelet --cpu-manager-policy=static命令如中所述kubelet CLI 参考在这里 https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/。它给了我消息Flag --cpu-manager-policy has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
  • 3.所以我通过运行来检查 --config 标志指向的文件ps aux | grep kubelet并发现其/etc/kubernetes/kubelet.conf.
  • 4.我编辑文件并添加一行cpuManagerPolicy: static对它,还有kubeReserved and systemReserved因为如果指定,它们将成为必填字段cpuManagerPolicy.
  • 5.然后我终止正在运行该进程的进程并重新启动它。还出现了一些其他问题(删除此文件并耗尽节点等),我能够解决这些问题并最终重新启动 kubelet

我对以下事情有点迷失

  • 我需要如何为所有节点执行此操作?我的集群有 12 个,为每个集群执行所有这些步骤似乎效率非常低。
  • 有什么方法可以从全局(即集群范围)设置这些参数,而不是逐个节点设置这些参数?
  • 我怎样才能确认我所做的确实改变了 CPU 管理器策略?

动态配置的一个问题是,如果节点无法重新启动,API 不会给出合理的响应来告诉您做错了什么,您必须ssh进入节点并尾部 kubelet 日志。另外,你必须ssh到每个节点并设置--dynamic-config-dir无论如何,国旗。

以下最适合我

  1. 通过 SSH 进入节点。编辑
vim /etc/systemd/system/kubelet.service
  1. 添加以下行
  --cpu-manager-policy=static \
  --kube-reserved=cpu=1,memory=2Gi,ephemeral-storage=1Gi \
  --system-reserved=cpu=1,memory=2Gi,ephemeral-storage=1Gi \

我们需要设置--kube-reserved and --system-reserved标志,因为它们是设置的先决条件--cpu-manager-policy flag

  1. 然后清空节点并删除以下文件夹
rm -rf /var/lib/kubelet/cpu_manager_state
  1. 重启 kubelet
sudo systemctl daemon-reload
sudo systemctl stop kubelet
sudo systemctl start kubelet
  1. 解除节点封锁并检查策略。这假设你正在运行kubectl proxy在端口 8001 上。
curl -sSL "http://localhost:8001/api/v1/nodes/${NODE_NAME}/proxy/configz" | grep cpuManager
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 Kubernetes 中的 CPU 管理器策略 的相关文章

随机推荐