【发布时间】:2019-05-30 15:15:21
【问题描述】:
我是 kubectl 的日常用户,但不是 linux 专家。最近部署后需要编辑一些服务类型,所以搜索并使用了kubectl replace,效果很好。
cat yaml | kubectl replace -f -
service/tracs-pool-1sv replaced
但我不明白为什么要在最后添加短破折号 -。
文档只说:
根据传入标准输入的 JSON 替换 pod。
我搜索发现this SO question,了解到 kubectl 命令可能是那种不读取标准输入的命令(我说的对吗?)。
我试过了
cat yaml |xargs kubectl replace -f
但返回错误:
the path "apiVersion:" does not exist
那么结束短破折号(-)语法是为 kubectl ONLY 构建的吗?还是 linux bash 标准输入管道的更多 common 语法? 有人可以解释为什么 xargs 在这里不起作用,我必须在最后放置一个短破折号(-)吗?
【问题讨论】:
标签: bash kubernetes pipe stdin kubectl