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

问题描述 投票:13回答:5

我正在尝试附加到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?

containers kubernetes tty
5个回答
15
投票

为了在进行附加时具有适当的TTY和stdin:

kubectl attach -it POD -c CONTAINER

容器必须配置为tty: truestdin: true。默认情况下,这两个值均为falsehttps://kubernetes.io/docs/api-reference/v1.5/#container-v1

示例窗格:

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

9
投票

之所以失败,是因为您没有传递bash参数。尝试创建tty连接时,这会导致失败。

请尝试:

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

3
投票

对于Windows,MINGW64(git bash)似乎不起作用,但是PowerShell起作用!

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

0
投票

[无论我做什么,都没有用,tty命令将始终返回not a tty响应并退出非0,即,要求tty的任何内容都无法在我的终端上工作。

我正在用永久磁盘作为我的$HOME并将Ubuntu Bionic Beaver上的GKE做成一个临时工作站。

由于我已经在brewPD中安装了$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

然后在tmux中:$ tty沃伊拉/dev/pts/0

我的无知者是b0rkz,但现在我可以做一些提示输入交互式密码的操作,即gcloud authtmux with pts on kubectlauth prompt

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

您可以添加一个shell容器,就像这样。那么你可以使用

kubectl attach -it nginx -c shell
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  shareProcessNamespace: true
  containers:
  - name: nginx
    image: nginx
  - name: shell
    image: busybox
    stdin: true
    tty: true

0
投票

您可以添加一个shell容器,就像这样。那么你可以使用

© www.soinside.com 2019 - 2024. All rights reserved.