web-dev-qa-db-ja.com

kubectl attach:TTYを使用できません-コンテナes-nodeが割り当てませんでした

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を有効にするにはどうすればよいですか?

13
speedplane

接続時に適切なTTYとstdinを使用するには、次のようにします。

kubectl attach -it POD -c CONTAINER

コンテナはtty: trueおよびstdin: trueで構成する必要があります。デフォルトでは、これらの値は両方ともfalseです: https://kubernetes.io/docs/api-reference/v1.5/#container-v1

ポッドの例:

spec:
      containers:
      - name: web
        image: web:latest
        tty: true
        stdin: true
10
Alex Plugaru

失敗する理由は、bash引数を渡していないためです。これにより、tty接続を作成しようとすると失敗します。

してみてください:

kubectl exec -it [POD-NAME] -c [CONTAINER-NAME] bash
8
Alex Luis Arias

Windowsの場合、MINGW64(git bash)は機能しないようですが、PowerShellは機能します!

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

このように、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
J.Doe