1. ホーム
  2. docker

[解決済み】Kubernetesでコンテナを稼働させ続けるには?

2022-04-16 18:03:41

質問

現在、Kubernetesクラスタ上でシェル(/bin/bash)を使った簡単なコンテナを実行しようとしています。

Dockerコンテナ上でコンテナを起動し続ける方法はないかと思い pseudo-tty とデタッチオプション( -td オプションで docker run コマンド)を使用します。

例えば

$ sudo docker run -td ubuntu:latest

Kubernetesにこのようなオプションはあるのでしょうか?

を使用してコンテナを実行することを試したことがあります。 kubectl run-container のようなコマンドを使用します。

kubectl run-container test_container ubuntu:latest --replicas=1

しかし、コンテナは数秒間終了します(ちょうど docker run コマンドをオプションなしで実行します)。そしてReplicationControllerが再び起動することを繰り返しています。

のようにKubernetes上でコンテナを起動し続ける方法はありますか? -td オプションで docker run コマンドを使用しますか?

解決方法は?

コンテナは、そのメインプロセスが終了したときに終了します。というようなことをする。

docker run -itd debian

を使用してコンテナを開いたままにしておくことは、率直に言ってハックであり、クイックテストやサンプルにのみ使用すべきものです。もし、数分間だけテスト用のコンテナが欲しいだけなら、私ならそうします。

docker run -d debian sleep 300

これは、忘れてもコンテナが自動的に終了するという利点があります。あるいは、このようなものを while のようなアプリケーションを実行するだけで、永久に実行し続けることができます。 top . これらはすべて、Kubernetesで簡単にできるはずです。

本当の問題は、なぜこんなことをしたいのか、ということです。コンテナはサービスを提供するものであり、そのプロセスはバックグラウンドでコンテナを動かし続けるものでなければならない。