C# Kubectl使用console.ReadLine在Kubernetes上退出,以交互方式应用.NET核心控制台应用程序

C# Kubectl使用console.ReadLine在Kubernetes上退出,以交互方式应用.NET核心控制台应用程序,c#,docker,kubernetes,C#,Docker,Kubernetes,我正在尝试在Kubernetes上运行.netcore控制台应用程序,该应用程序应通过控制台.ReadLine保持活动状态 正在使用kubectl apply-f…yaml命令运行Docker映像。有没有办法以交互方式运行此命令,强制它立即关闭 我没有发现使用kubectl apply--help命令有任何用处 如果没有办法做到这一点,那么最好的选择是什么?在部署yaml上运行CMD?我宁愿不做一个内循环。必须有更好的解决办法 并不是说我为控制台感到骄傲。WriteLine的这种方式 更新: 在

我正在尝试在
Kubernetes
上运行
.netcore
控制台应用程序,该应用程序应通过
控制台.ReadLine
保持活动状态

正在使用
kubectl apply-f…yaml
命令运行
Docker
映像。有没有办法以交互方式运行此命令,强制它立即关闭

我没有发现使用
kubectl apply--help
命令有任何用处

如果没有办法做到这一点,那么最好的选择是什么?在部署
yaml
上运行CMD?我宁愿不做一个内循环。必须有更好的解决办法

并不是说我为控制台感到骄傲。WriteLine的这种方式

更新:

在找到更好的解决方案之前,我实现了以下解决方案


这是一个无限循环。测试它并在Kubernetes上运行

通常无法与Kubernetes吊舱的标准输入流交互。“保持活力”在这里意味着什么;为什么进程要退出,为什么您不希望它退出?它只是一个电子邮件微服务,用于侦听Redis发送的传入消息。它必须连续运行的原因是,它使用Redis PubSub来侦听传入消息,并且代码在运行完后立即退出。此应用程序仅连接到redis并订阅特定频道,这可能不会花费超过一秒钟的时间,这意味着它会立即退出。您的应用程序代码似乎需要在接收消息的循环中运行:如果它发送redis
SUBSCRIBE
命令,然后立即退出(或者坐在那里,等待用户输入,而不联系Redis)您将永远不会收到消息。您可以尝试确保此设置与本地消费者、制作人和Redis一起工作(没有Kubernetes,可能根本没有容器)在打包之前。我在没有Docker和Kubernetes的情况下对其进行了测试。它工作得非常好。console应用程序的最后一行代码是console.WriteLine,防止其退出,但在Kubernetes中,它只是忽略了这一行并退出。