【问题标题】:PowerShell script for calling Kubernetes commands用于调用 Kubernetes 命令的 PowerShell 脚本
【发布时间】:2022-07-07 14:47:11
【问题描述】:

我想创建一个 .ps1 脚本,该脚本将打开一个带有多个选项卡的 Windows 终端窗口,并在每个选项卡中执行一个命令( kubectl logs -f "name_of_pod" )。

所以我基本上想自动化我打开 Windows 终端的日常过程,使用 'kubectl get pods -n 'your_namespace' 命令获取所需的 pod 名称,然后复制 pod 名称并打开另一个 Windows 终端选项卡并在那里执行 kubectl logs -f 'name_of_pod'。我有大约 10 个豆荚,我需要监控它们的日志。如果 Windows 终端崩溃(发生),我需要重新开始。

到目前为止,我已经设法只打开一个新的 Windows 终端选项卡并通过 .ps1 脚本重命名该选项卡,但我无法传递 kubectl 命令 - 启动时出现错误“[error 2147942593 (0x800700c1)。 。”

有没有人知道如何做到这一点?

一切顺利,D.

【问题讨论】:

  • 你能把目前的脚本包括进来吗?
  • 这是我目前得到的.. wt.exe --window 0 new-tab -p "Windows Powershell" --title "QA TEST" -Command "& {(`$kubectl get pods -n 'my_pod_name')}" 我什至尝试创建另一个 .ps1 脚本,我将在其中使用 kubectl 命令并调用该 .ps1 脚本,而不是像上面一样在注释中编写整个命令,但同样的事情。

标签: powershell windows-terminal


【解决方案1】:

我最近遇到了这个问题。我认为解决方案是始终将完整路径传递给要运行的 Windows PowerShell 的确切实例,以控制调用哪个版本以及在什么用户上下文下调用。

例如,要运行您的 kubectl 命令示例,请尝试以下操作:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe `
  -Command "& {(`$kubectl get pods -n 'my_pod_name')}"

关于这个 S/O 答案https://stackoverflow.com/a/70548103/490787的类似解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 2016-11-03
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多