我想在 kubernetes 中为 Pod 设置 CPU 亲和性。但是,我设置失败,并且很难找到相应的文档。
我的理解是:
- 基本上,k8s 的 CPU 管理器将节点中的所有 CPU 核心视为共享池,并使用它们来运行部署在该节点的 pod。
- 如果将 kubelet 的 CPU-manager-policy 字段设置为“static”,则可以通过在 .yaml 文件中将 CPU 请求/限制设置为整数来设置 Pod 的 CPU 亲和性。
我做了什么:
- 为了将 CPU-manager-policy 字段更改为静态,我尝试按照以下步骤更改 kubelet 的配置:关联
- 但是,CPU-manager-policy 字段没有改变,仍然为“无”。
- 因此,我更改了 /var/lib/kubelet/config.yaml 中的“cpuManagerPolicy”字段。
- 然后,我执行了“sudo systemctl restart kubelet”。
- 节点的状态变为“NotReady”,并且所有 pod 都进入待处理状态。
我正在使用的环境:
- k8s版本:v1.13.2
- CNI:Calico
- 操作系统:Ubuntu 16.04
- 节点数:2 (1 个主节点,1 个从节点)
- 应用程序:istio 的示例应用程序名为图书信息
先感谢您!
答案1
我解决了。您必须在 config.yaml 文件中添加“kubeReserved”字段。此外,您必须删除 /var/lib/kubelet/cpu_manager_state 文件。然后,通过执行“systemctl restart kubelet”重新启动 kubelet。