Kubelet提供了一系列配置用于调整节点行为。ACK支持修改节点池内节点的Kubelet配置。修改完成后,节点池的节点会自动生效,节点池新增节点也会使用新的配置。本文介绍如何修改节点池内Kubelet配置。

前提条件

Kubelet自定义参数只支持Kubernetes 1.20.4-aliyun.1版本及以上的ACK集群。

注意事项

  • 如果未配置evictionHard、 kubeReserved或systemReserved,系统则会使用默认值配置资源预留。默认值的计算方式,请参见节点资源预留策略
  • 资源预留配置的改变,可能会造成节点的可分配资源变少。对于资源水位较高的节点,可能会触发节点驱逐。

支持的Kubelet参数

目前ACK支持下列参数的自定义。

字段含义默认值建议取值范围
registryPullQPS镜像仓库的QPS上限51~50
registryBurst突发性镜像拉取的个数上限101~100,且取值必须大于等于registryPullQPS的值
eventRecordQPS每秒可生成的事件数量51~50
eventBurst事件记录的个数的突发峰值上限101~100,且取值必须大于等于eventRecordQPS的值
kubeAPIQPS与APIServer通信的每秒查询个数51~50
kubeAPIBurst每秒发送到APIServer的突发请求数量上限101~100,且取值必须大于等于kubeAPIQPS的值
serializeImagePulls串行拉取镜像True-
cpuManagerPolicyCPU管理器策略nonenone或者static
evictionHard触发Pod驱逐操作的一组硬性门限imagefs.available<15%,memory.available<300Mi,nodefs.available<10%,nodefs.inodesFree<5%-
evictionSoft设置一组驱逐阈值--
evictionSoftGracePeriod设置一组驱逐宽限期--
systemReserved系统预留的资源配置默认自动计算,详细信息请参见节点资源预留策略-
kubeReservedKubernetes系统预留的资源配置默认自动计算,详细信息请参见节点资源预留策略-

操作步骤

  1. 登录容器服务管理控制台,在左侧导航栏选择集群
  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池
  3. 在节点池列表页面中,单击目标节点池操作列下的更多 > Kubelet配置
  4. 阅读当前页面上的注意事项,然后选择需要修改的Kubelet配置和每批次的最大并行数。
  5. 单击提交
    Kubelet配置是分批次配置完成的,需要一定的执行时间。可以通过事件列表区域查看执行进度,并控制执行过程,如暂停、继续、取消等。

相关操作

在节点池Kubelet自定义配置的下发过程中,您可以通过单击暂停对任务进行暂停。暂停时,正在配置中的Node会继续完成执行,还未执行的Node不会被执行自定义配置,直到任务继续。
说明 您可以使用暂停功能对已升级的节点进行验证,但建议尽快完成自定义配置任务。处于暂停状态的任务会在7天后自动取消,同时清理相关的事件和日志信息。

FAQ

配置没有更新成功怎么办?

如果节点执行失败,Kubelet配置没有更新,可能是因为配置校验问题导致Kubelet启动失败,配置无法生效。可以执行如下命令,通过查看Kubelet启动日志,获取具体信息:
journalctl -u kubelet

如果配置更新操作导致Kubelet启动失败,会对配置进行回滚,并把导致启动失败的配置保存在/etc/kubernetes/kubelet-customized-args.conf.err中。