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

kube-apiserver Pod配置自定义volume后无法读取准入控制器配置文件问题

问题根因

kube-apiserver Pod 清单的volumes字段中,configfiles和auditlog两个存储卷的字段拼写错误:将驼峰格式的标准字段hostPath写成了全小写的hostpath。Kubernetes 无法识别小写拼写的字段,会直接忽略这两个存储卷的挂载配置,导致容器内部的/etc/kubernetes/configs目录为空,所以启动时找不到准入控制器配置文件。

修复方法

  1. 编辑/etc/kubernetes/manifests/kube-apiserver.yaml文件,找到volumes配置段,将两个小写的hostpath修改为标准驼峰格式hostPath,修改后的对应配置如下:
volumes:
  - name: auditlog
    hostPath: # 首字母P大写
      path: /var/log/kubernetes
      type: DirectoryOrCreate
  - name: configfiles
    hostPath: # 首字母P大写
      path: /etc/kubernetes/configs
      type: DirectoryOrCreate
  1. 保存修改后,kubelet 会自动检测到静态Pod配置变更,重建kube-apiserver实例,等待2分钟左右执行kubectl get pods -n kube-system | grep kube-apiserver确认Pod状态为Running即可。

异常排查方案

如果修改后仍然报错,可按以下步骤排查:

  • 确认主机上/etc/kubernetes/configs目录及内部文件权限,当前你配置的600 root:root权限符合要求,无需调整
  • 进入kube-apiserver容器内部验证文件是否挂载成功:执行crictl ps | grep kube-apiserver获取容器ID,再执行crictl exec -it <容器ID> ls /etc/kubernetes/configs,确认能看到admission-controller.yaml文件
  • 检查启动参数--admission-control-config-file的路径与volumeMounts中configfiles的挂载路径是否完全一致,当前配置无问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:54:03