Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Containers kubectl attach:无法使用TTY-容器es节点未分配一个_Containers_Kubernetes_Tty - Fatal编程技术网

Containers kubectl attach:无法使用TTY-容器es节点未分配一个

Containers kubectl attach:无法使用TTY-容器es节点未分配一个,containers,kubernetes,tty,Containers,Kubernetes,Tty,我正在尝试连接到Kubernetes中正在运行的容器,但是我收到下面的错误消息 >kubectl attach -it es-client-2756725635-4rk43 -c es-node Unable to use a TTY - container es-node did not allocate one If you don't see a command prompt, try pressing enter. 如何在容器yaml中启用TTY?它失败的原因是您没有传递bash

我正在尝试连接到Kubernetes中正在运行的容器,但是我收到下面的错误消息

>kubectl attach -it es-client-2756725635-4rk43 -c es-node
Unable to use a TTY - container es-node did not allocate one
If you don't see a command prompt, try pressing enter.

如何在容器yaml中启用TTY?

它失败的原因是您没有传递bash参数。这会在尝试创建tty连接时导致失败

请尝试:

kubectl exec -it [POD-NAME] -c [CONTAINER-NAME] bash

为了在进行连接时获得正确的TTY和stdin:

kubectl attach -it POD -c CONTAINER
容器必须配置
tty:true
stdin:true
。 默认情况下,这两个值都是
false

示例Pod:

spec:
      containers:
      - name: web
        image: web:latest
        tty: true
        stdin: true

无论我做了什么,它都不起作用,
tty
命令将始终返回
而不是tty
响应并退出非0,也就是说,在我的终端上不需要
tty

我正在使用
GKE
上的
Ubuntu仿生海狸
制作一个带有永久磁盘的短暂工作站,作为我的
$HOME

由于我已将
brew
安装在我的
PD
$HOME
brew
位于我的
$PATH
中,以下内容对我起到了作用:

brew install tmux
tmux new -d -s <some arbitrary session name here> ### i.e.> tmux new -d -s tty
tmux ls # Lists your sessions
tmux a  # Attach to first available session
brew安装tmux
tmux new-d-s####即>tmux new-d-s tty
tmux ls#列出您的会话
tmux a#附加到第一个可用会话
然后在tmux内部:
$tty

/dev/pts/0

我的agnoster是b0rkz,但现在我可以做一些提示交互式密码输入的事情,例如,
gcloud auth

PS:对于那些好奇的人,我将
/etc/shadow
/etc/group
/etc/passwd
安装到
/etc
中,并使用
configmap

为Windows安装了MINGW64(git bash)似乎不起作用,但PowerShell确实起作用

kubectl exec-it abc-deployment-5d64659ff8-8tnnb--/bin/bash
root@abc-部署-5d64659ff8-8tnnb:/#

您可以添加一个shell容器,如下所示。 然后你可以用

kubectl attach -it nginx -c shell

尝试了以下命令:kubectl attach wildfly-rc-uc79a-it,但出现错误:无法使用TTY-容器wildfly rc pod未分配一个。如果没有看到命令提示,请尝试按enter。在不使用
-t
标志的情况下尝试。请参阅,虽然此代码可能会回答此问题,但提供有关如何和/或为什么解决此问题的其他上下文将提高答案的长期价值。这将在运行的容器中成功启动一个交互式shell,这非常有用(谢谢),但它不会回答使用attach的OP问题。另外,请注意,一些容器只有sh(不是bash)注意,这是针对旧版本的k8sv1.5的-从那时起它可能发生了变化,但我没有时间检查。
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  shareProcessNamespace: true
  containers:
  - name: nginx
    image: nginx
  - name: shell
    image: busybox
    stdin: true
    tty: true