如果我运行命令
$ kubectl exec pod-name echo Hello World
Run Code Online (Sandbox Code Playgroud)
我收到一条弃用错误消息,要求我包含“--”字符。
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Run Code Online (Sandbox Code Playgroud)
为什么决定在那里需要“--”字符?对我来说似乎没有必要。我知道它已被弃用,我只是想了解该决定背后的原因。
小智 10
根据 Marko Luksa 所著的《Kubernetes in action》一书:
\n\n\n为什么要加双破折号?
\n
\n\n命令中的双破折号 (--) 表示 kubectl 命令选项的结束。双破折号之后的所有内容都是应该在 pod 内执行的命令。如果命令没有以破折号开头的\xe2\x80\x99\参数,则不需要使用双破折号。但在您的情况下,如果您不使用双破折号,则 -s 选项将被解释为 kubectl exec 的选项,并会导致以下奇怪且高度误导性的错误:\n$ kubectl exec kubia-7nog1 curl -s http://10.111.249.153 \n与服务器 10.111.249.153 的连接被拒绝 \xe2\x80\x93 你\n指定了正确的主机或端口吗?\n这与你的服务拒绝连接。它\xe2\x80\x99s 因为\nkubectl 无法连接到位于10.111.249.153 的API 服务器(-s 选项\n 用于告诉kubectl 连接到与默认值不同的API 服务器)。
\n
归档时间: |
|
查看次数: |
1885 次 |
最近记录: |