kubernetes - 为什么 kubectl exec 需要--?
问题描述
如果我运行命令
$ kubectl exec pod-name echo Hello World
我收到一条弃用错误消息,要求我包含“--”字符。
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
为什么决定在此处使用“--”字符?对我来说似乎没有必要。我知道它已被弃用,我只是想了解该决定背后的原因。
解决方案
根据 Marko Luksa 的《Kubernetes in action》一书:
为什么是双破折号?
命令中的双破折号 (--) 表示 kubectl 的命令选项结束。双破折号之后的所有内容都是应该在 pod 内执行的命令。如果命令没有以破折号开头的参数,则不需要使用双破折号。但是在您的情况下,如果您不在那里使用双破折号, -s 选项将被解释为 kubectl exec 的选项,并会导致以下奇怪且高度误导的错误: $ kubectl exec kubia-7nog1 curl -s http://10.111.249.153 与服务器 10.111.249.153 的连接被拒绝 - 您是否指定了正确的主机或端口?这与您的服务拒绝连接无关。这是因为 kubectl 无法连接到位于 10.111.249.153 的 API 服务器(-s 选项用于告诉 kubectl 连接到与默认值不同的 API 服务器)。
推荐阅读
- django - 我想在 Wagtail 站点中由 Client 更改 BlogIndexPage 的 SnippetChooserPanel 的显示
- debugging - 在 STM32H7 上使用 GDB 进行远程调试,无需 PC 连接到评估板
- flutter - 检查 RangeSlider 中的哪个拇指(左或右)是滑动的
- c# - 如果从 powershell / c# / .bat 调用 openssl.exe smime -decrypt 将不起作用
- python - 基于openCV中的轮廓/边缘进行对象识别的最佳算法是什么
- excel - 抓取 HTML 时出错:对象变量或未设置块变量
- python - Windows下Python FileNotFoundError返回转义字符串
- css - 如何拉伸我的项目容器并设置底部和顶部边距?
- google-apps-script - Google Drive Picker - 不显示所有文件夹
- nginx - 如何让 CORS 为从 Cloudfront 加载的图像和运行 NGINX 的服务器工作?