在 GKE 中附加到 Kubernetes 容器(用于 Asterisk)会导致无限的附加/分离循环

在 GKE 中附加到 Kubernetes 容器(用于 Asterisk)会导致无限的附加/分离循环

我目前已成功将 Asterisk 部署到 Google Container Engine (GKE),以便 VoIP 软件电话可以注册。我现在想连接到 Asterisk 的容器。

kubectl attach -it <pod-id>

但是会导致 Asterisk 的 CLI 提示符 ( *CLI> *CLI> *CLI...) 快速重复,而我根本没有机会输入任何内容。看起来好像有一个无限的连接/分离循环正在发生。我该如何解决这种情况,以便我可以干净地访问 CLI(使用单个*CLI>提示符)?

更新当尝试分两步进行连接时,也会发生相同的重复:

gcloud compute ssh <instance-id>
<instance># sudo docker attach <image-id>

答案1

提示符循环是程序读取时/dev/null认为是 tty 的特征。Kubernetes 文档stdin字段v1.Container对此发出警告:

此容器是否应在容器运行时为 stdin 分配缓冲区。如果未设置,则从容器中的 stdin 读取将始终导致 EOF。默认值为 false。

顺便说一句,无论容器是否有 tty,-t标志都不会改变。除了某些情况下的错误消息外,它是一个无操作。kubectl attach

显然,正如您承认的那样,星号容器是在没有and 的kubectl describe情况下启动的。目前没有未解决的错误。除非出现拼写错误(或者您正在运行 rktnetes),否则您可以考虑为此打开一个。stdintty

相关内容