首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubectl命令不能从powershell ISE (powershell工作)中运行--有什么原因或解决办法可以让它工作吗?

kubectl命令不能从powershell ISE (powershell工作)中运行--有什么原因或解决办法可以让它工作吗?
EN

Stack Overflow用户
提问于 2019-08-23 08:30:45
回答 3查看 5.7K关注 0票数 3

我最近已经开始与库伯内特斯和多克尔合作,并仍然是新的工作方式。我已经制作了一个ps1脚本来运行在Kubernetes上构建映像和执行映像所需的所有步骤。

我看到的是,所有步骤在ISE上都能很好地工作(除了这个:"kubectl exec -it测试运行程序pwsh")。仅就这一步而言,我必须在另一个PowerShell窗口上运行它。

当我在ISE中运行此步骤时,脚本将继续运行,而不会出现任何错误或停止。

有人知道这是库伯奈特斯在ISE上工作的一个限制,还是有一个解决办法可以让它发挥作用?

使用ISE非常快速,而且节省了大量的时间,所以当我必须复制、粘贴、每次在单独的PowerShell窗口中输入这些信息时,这确实会产生很大的影响。

提前感谢您的帮助!

P.S:我看了其他类似的问题/答案,这些问题似乎都与库伯内特斯不从事ISE有关。因此,这个问题。

命令:

代码语言:javascript
复制
kubectl exec -it test-runner pwsh

预期(以及从PowerShell控制台运行时的实际情况):

代码语言:javascript
复制
----------------------
PS C:\windows\system32> kubectl exec -it test-runner pwsh
PowerShell 6.2.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /test>
-----------------------------
Actual (when running from PowerShell ISE):

PS C:\SourceCodeTLM\Apollo>  kubectl exec -it test-runner pwsh
PowerShell 6.2.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

(with a blinking cursor and script running without breaking and changing to the new path)...
-----------------------------------------------
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-23 08:53:10

PowerShell ISE 不支持交互式控制台应用程序,这意味着您不能从它启动其他shell。

ISE试图通过拒绝启动众所周知的shell来预测这一问题。例如,尝试启动cmd.exe时会出现以下错误消息:

代码语言:javascript
复制
Cannot start "cmd". Interactive console applications are not supported. 
To run the application, use the Start-Process cmdlet or use 
"Start PowerShell.exe" from the File menu.

注意:

但是,ISE不可能检测到给定命令(最终)调用交互式控制台应用程序的所有情况;如果不调用,则尝试调用命令,从而产生模糊的错误消息或挂起(在您的情况下)。

正如错误消息所暗示的,必须在常规控制台窗口中在 ISE外部运行交互式控制台应用程序。

从ISE可以使用 启动过程 在新的常规控制台窗口中启动程序;在当前情况下:

代码语言:javascript
复制
Start-Process kubectl 'exec -it test-runner pwsh'

Alternatively,首先在ISE之外运行PowerShell会话,例如在常规控制台窗口、Windows终端或的集成终端中。

票数 4
EN

Stack Overflow用户

发布于 2022-01-16 16:31:13

在深入研究之后,我找到了一种与交互式控制台应用程序交互的方法。

我们可以将SendKeys('key_here')用于特定的应用程序。

票数 0
EN

Stack Overflow用户

发布于 2022-02-08 16:11:34

您可以从PowerShell打开一个命令窗口并发送命令来打开shell。

代码语言:javascript
复制
Start-Process PowerShell -Wait "-NoProfile -ExecutionPolicy Bypass -Command `"kubectl exec helloworld-web-8495f4c888-jw2tg -n local-v1 -it -- /bin/bash`""
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57622459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档