我传递了以下内容,它从文件执行创建 kubernetes 机密的试运行appsettings.json
,然后将其通过管道传输到 kubernetes apply
。我认为将-f
获取创建的机密的文件名--dry-run
并在应用机密时使用该文件名,但我想知道尾随是否-
有任何意义,或者它只是一个拼写错误?
kubectl create secret generic test --from-file=appsettings.json --dry-run -oyaml | kubectl apply -f -
答案1
这个-
角色可以理解为占位符用于管道命令的输出(使用|
字符)。通过使用它,我们可以非常具体地指示后续命令(输出通过管道传输到的命令),第一个命令的标准输出(它的执行结果)应该放在哪里,换句话说应该如何看待或解析。
因此,不要通过管道传输以下结果:
kubectl create secret generic test --from-file=appsettings.json --dry-run -oyaml
(恰好是 yaml 清单)
直接发送至:
kubectl apply -f
它不知道如何处理这样的输入(因为它期望在-f
标志后有一个文件),我们非常精确地指出它适合的位置:
答案2
是选项-
的一个参数-f
,表示接受来自标准输入而不是命名文件的输入。数百个 UNIX/Linux 命令都有这样的选项。