我通过了以下内容,它从一个文件中创建了一个 kubernetes 秘密appsettings.json
,然后通过管道传输到一个 kubernetes apply
。我认为这-f
将采用创建的秘密的文件名--dry-run
并在应用秘密时使用它,但我想知道尾随-
是否有任何意义或者它只是一个错字?
kubectl create secret generic test --from-file=appsettings.json --dry-run -oyaml | kubectl apply -f -
这
-
是-f
选项的参数,表示接受来自标准输入而不是命名文件的输入。数百个 UNIX/Linux 命令都有这样的选项。-
字符可以理解为管道命令输出的占位符(使用字符)|
。通过使用它,我们非常明确地指示后续命令(输出通过管道传输到该命令),第一个命令的标准输出(它的执行结果)应该放置在哪里,换句话说,应该如何获取或解析它。因此,而不是管道的结果:
(这恰好是一个 yaml 清单)
直接到:
kubectl apply -f
它不知道如何处理这样的输入(因为它希望在
-f
标志之后有一个文件),我们非常准确地指出它适合的位置:在这种情况下,我们指示
kubectl apply
command 应该采用前一个命令的管道输出而不是文件,这是在提供-f
标志后预期的。