curl 命令不适用于 M1 bash 命令行

curl command not working on M1 bash command line

目前正忙于在命令行上学习 kubernetes 和 运行ning 配置,我正在使用版本 11.5.1 上的 M1 MacOS 运行ning,以及我想要的命令之一运行 是 curl "http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy" 但我收到以下错误消息 curl: (3) URL using bad/illegal format or missing URL。不确定以前是否有人遇到过此问题,将不胜感激。

问题是 POD_NAME 包含两个 pods,由 space 分隔。因此,您要引用的 url 是

  1. 格式错误 - 因为其中有 space - 这就是错误消息

    的原因
  2. 错误 - 您需要将要访问的 pod 的名称放在那里,而不是同时输入两者

首先,curl命令应该只接收一台主机,而不是多台主机。 因此 pod 应该是单个的。

然后,你需要将POD的名字保存到一个变量中,不要有任何特殊字符。

最后,当您使用 kubectl proxy 时,您需要将 -L 选项添加到 curl 命令,以便它遵循重定向。

简单的例子是:

# run pod with echo image
kubectl run echo --image=mendhak/http-https-echo

# start proxy
kubectl proxy

# export pod's name
export POD_NAME=echo

# curl with `-I` - headers and `-L` - follow redirects
curl -IL http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy
HTTP/1.1 301 Moved Permanently
Location: /api/v1/namespaces/default/pods/echo/proxy/

HTTP/1.1 200 OK