状況: しばらくの間、定期的に攻撃を受け、その後長期間使用されないままになる、多くの重いドッカー コンテナ。
Wish: コンテナーをオンデマンドで開始し (systemd がソケットのアクティベーションを通じて開始するように)、一定期間アイドル状態になった後にコンテナーを停止します。エンドユーザーに目に見えるダウンタイムはありません。
オプション:
- Kubernetes には、レプリカをスケーリングできるリソース コントローラーがあります。レプリカの数を 0 に保ち、必要に応じて 1 に設定することは可能だと思いますが、どうすればそれを達成できますか? ユーザー ガイドには、自動スケーリング コントロール エージェントと呼ばれるものがあると書かれていますが、これに関する詳細情報はありません。リクエストを追跡し、ユーザー定義のロジックに基づいてスケーリングするために使用できる、プラグイン可能でプログラム可能なエージェントはありますか?
- Docker Swarm には解決策がありません。間違っている場合は修正してください。
- docker デーモンにアクセスできる、選択した言語で記述されたカスタム http サーバーを使用します。正しい場所にルーティングする前に、コンテナーの存在を確認し、実行中であることを確認します。欠点 - 一般的な解決策ではありません。コンテナーにする必要はなく、デーモンにアクセスする必要もありません。
- ここで説明されているように systemd を使用します。上記と同じ欠点があります。つまり、一般的ではなく、ネットワーク タスクを自分で処理する必要があります (生成されたコンテナーの IP を見つけて、サーバー/プロキシの構成にフィードするなど)。
どんなアイデアでも大歓迎です!