EKS集群执行kubectl --raw查询APIService指标返回404报错排查
问题根因
你遇到的404报错和Kubernetes集群、APIService本身无关,是Windows环境下使用Git Bash终端执行命令的特性导致:
- Git Bash内置的MSYS2环境默认会自动转换所有以
/开头的参数为本地Windows路径,你输入的/apis/xxx会被转换为/Program Files/Git/apis/xxx,从调试日志的请求URL可以明确看到多出了/Program%20Files/Git/前缀,导致EKS API服务端收到的请求路径错误,返回404。 - 其余kubectl命令无需手动传入以
/开头的原始API路径,不会触发路径转换逻辑,因此可以正常运行。
解决方案
以下三个方案任选其一即可正常执行查询:
- 执行命令前临时禁用Git Bash路径转换,添加环境变量前缀:
MSYS_NO_PATHCONV=1 kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1"
- 替换终端为Windows PowerShell或者系统自带的命令提示符(CMD)执行
kubectl --raw相关命令,这两类终端不会触发路径自动转换逻辑。 - 保留使用Git Bash,将路径开头的单斜杠改为双斜杠规避转换:
kubectl get --raw "//apis/external.metrics.k8s.io/v1beta1"
内容的提问来源于stack exchange,提问作者zxc157
相关产品推荐
相关产品推荐

