現在、Kubernetes クラスター上でシェル (/bin/bash) を使用して単純なコンテナを実行しようとしています。
pseudo-tty
detach オプション (コマンド-td
の option )を使用することで、Docker コンテナ上でコンテナを実行したままにする方法があると思いましたdocker run
。
例えば、
$ sudo docker run -td ubuntu:latest
Kubernetes にはこのようなオプションはありますか?
次のようなコマンドを使用してコンテナを実行してみましたkubectl run-container
。
kubectl run-container test_container ubuntu:latest --replicas=1
しかし、コンテナは数秒間終了します (docker run
前述のオプションなしのコマンドで起動した場合と同様)。そして、ReplicationController はそれを繰り返し起動します。
-td
コマンドのオプションのように、Kubernetes 上でコンテナを実行し続ける方法はありますかdocker run
?
ベストアンサー1
コンテナは完了するまで実行されるように設計されています。コンテナに、決して完了しないタスクを提供する必要があります。次のようなものが機能するはずです。
apiVersion: v1
kind: Pod
metadata:
name: ubuntu
spec:
containers:
- name: ubuntu
image: ubuntu:latest
# Just spin & wait forever
command: [ "/bin/bash", "-c", "--" ]
args: [ "while true; do sleep 30; done;" ]