You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GKE的Container-Optimized OS(COS)上配置磁盘IO调度器为none?

在GKE(COS节点)全局设置IO调度器为none的解决方案

针对你在GKE 1.24.2-gke.1900版本、使用Container-Optimized OS(COS 97)时,需要将动态挂载的PD磁盘IO调度器统一设置为none的需求,可通过以下方式实现:

核心思路

由于COS是只读系统,且GKE会自动挂载磁盘导致设备ID动态变化,我们使用Kubernetes DaemonSet在所有节点上运行特权容器,遍历节点上的块设备并批量修改IO调度器配置。

1. 创建DaemonSet配置文件

创建io-scheduler-config-daemonset.yaml,内容如下:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: set-io-scheduler
  namespace: kube-system
spec:
  selector:
    matchLabels:
      name: set-io-scheduler
  template:
    metadata:
      labels:
        name: set-io-scheduler
    spec:
      hostPID: true
      hostNetwork: true
      containers:
      - name: set-io-scheduler
        image: busybox:1.36
        command: ["/bin/sh", "-c"]
        args:
        - |
          while true; do
            # 遍历所有块设备,排除loop、ram等本地虚拟设备
            for dev in /sys/block/*; do
              dev_name=$(basename $dev)
              if [[ $dev_name != loop* && $dev_name != ram* && $dev_name != sr* ]]; then
                # 设置IO调度器为none
                echo none > $dev/queue/scheduler
              fi
            done
            sleep 300 # 每5分钟检查一次,确保新挂载的磁盘也被配置
          done
        securityContext:
          privileged: true
        volumeMounts:
        - name: sysfs
          mountPath: /sys
      volumes:
      - name: sysfs
        hostPath:
          path: /sys
          type: Directory

2. 部署DaemonSet

执行命令部署:

kubectl apply -f io-scheduler-config-daemonset.yaml

3. 验证配置生效

在任意节点上执行(可通过kubectl debug node/<node-name> -it --image=busybox进入节点):

# 检查某个PD磁盘的调度器
cat /sys/block/sdb/queue/scheduler
# 预期输出:mq-deadline [none]

补充说明

  • 脚本中排除了loop、ram、sr类设备,仅针对物理磁盘(包括GCP PD)生效;如果有其他需要排除的设备类型,可自行调整判断条件。
  • 脚本每5分钟执行一次遍历,确保新挂载的磁盘(如动态PVC绑定的PD)也会被自动配置为none调度器。
  • 该DaemonSet运行在kube-system命名空间,特权模式确保有修改/sys目录的权限。

内容的提问来源于stack exchange,提问作者Martin Wang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:10:32