为什么 PowerShell Interprest kind/kubectl STDOUT 作为 STDERR 以及如何防止它?

问题描述

我们正在将 DevOps 管道移至新集群,在此过程中,我们在使用 kind 调用 PowerShell 时遇到了奇怪的行为。这也适用于 kubectl

以下内容应仅作为再现,而不是真实世界的应用程序。换句话说,我不打算修复下面的代码,但我正在寻找错误发生的原因:

curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.10.0/kind-windows-amd64
Move-Item .\kind-windows-amd64.exe c:\temp\kind.exe -Force

$job = Start-Job -ScriptBlock { iex "$args" } -ArgumentList c:\temp\kind.exe,get,clusters
$job | Receive-Job -Wait -AutoRemoveJob

现在,如果我直接在 PowerShell 窗口中执行 c:\temp\kind.exe get clusters 命令,则不会发生错误:

enter image description here

换句话说,为什么 PowerShell(任何版本)将 STDOUTkind/kubectl 视为 STDERR?我怎样才能防止这种情况发生?

必须有环境因素,因为完全相同的代码在一个系统中运行良好,而在另一个系统上却引发错误...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)