7.2. Pod のデプロイ前の、Init コンテナーの使用によるタスクの実行


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

7.2.1. init コンテナーの理解

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

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

init コンテナーは以下のことが可能です。

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

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

たとえば、以下のような方法で 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
トップに戻る