7.2. Pod のデプロイ前の、Init Container の使用によるタスクの実行


アプリケーションコンテナーの前に実行される特殊なコンテナーである init コンテナー を使用できます。init コンテナーには、アプリケーションイメージには含まれていないユーティリティーやセットアップスクリプトを含めることができます。

7.2.1. init コンテナーについて

Pod の残りの部分がデプロイされる前に、init コンテナーを使用してタスクを実行できます。init コンテナーを使用すると、環境準備、依存関係チェック、設定生成など、メインアプリケーションロジックが開始される前に完了する必要のあるセットアップタスクを実行できます。

Pod にはアプリケーションコンテナーのほかに init コンテナーがあります。init コンテナーにより、セットアップスクリプトとバインディングコードを再編成できます。

init コンテナーは以下のことを行うことができます。

  • セキュリティー上の理由のためにアプリケーションコンテナーイメージに含めることが望ましくないユーティリティーを含めることができ、それらを実行できます。
  • アプリのイメージに存在しないセットアップに必要なユーティリティーまたはカスタムコードを含めることができます。たとえば、単に Sed、Awk、Python、Dig のようなツールをセットアップ時に使用するために別のイメージからイメージを作成する必要はありません。
  • Linux namespace を使用して、アプリケーションコンテナーがアクセスできないシークレットへのアクセスなど、アプリケーションコンテナーとは異なるファイルシステムビューを設定できます。

次のコンテナーが起動される前に、各 init コンテナーが正常に完了する必要があるため、特定の前提条件が満たされるまで、アプリケーションコンテナーの起動をブロックまたは遅延させる簡単な方法を提供します。

たとえば、init コンテナーを使用する方法は、以下のとおりです。

  • 次のようなシェルコマンドを使用して、サービスが作成されるまで待機します。

    for i in {1..100}; do sleep 1; if dig myservice; then exit 0; fi; done; exit 1
  • 次のようなコマンドを使用して、Downward API からこの Pod をリモートサーバーに登録します。

    $ curl -X POST http://$MANAGEMENT_SERVICE_HOST:$MANAGEMENT_SERVICE_PORT/register -d ‘instance=$()&ip=$()
  • sleep 60 などのコマンドを使用して、アプリケーションコンテナーの起動を遅延させます。
  • Git リポジトリーのクローンをボリュームに作成します。
  • 設定ファイルに値を入力し、テンプレートツールを実行して、主要なアプリコンテナーの設定ファイルを動的に生成します。たとえば、設定ファイルに POD_IP の値を入力し、Jinja を使用して主要なアプリ設定ファイルを生成します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る