18コンテナ内のアプリケーション構成の管理

3336 ワード

アプリケーションは、通常、環境変数とディスクから読み込まれたファイルの組合せという構成を実行時環境にロードする必要があります.Dockerは、コンテナで実行されるアプリケーションの環境を作成し、環境変数を設定し、異なるソースでファイルシステムを構成できます.製品に導入すると、アプリケーションの柔軟な構成方法を構築するのに役立つため、すべてのテストステップを経た同じイメージが使用されます.アプリケーションを複数の場所の構成値をマージするように設定し、いくつかの操作を実行するだけで、フラグメントを1つの場所に集約できます.
この章では.NET Core、Java、Go、Node.jsの例を使用して、推奨される方法(およびいくつかの代替方法)を説明します.ここで、一部のタスクは開発者スペースにあり、これらの開発者はリポジトリをインポートして構成管理を提供し、残りのタスクは開発と運営の間の灰色の領域にあるため、双方は構成モデルの動作方法を理解することができます.

18.1アプリケーション構成の多層化方法


構成モデルは、通常、格納されているデータの構造、すなわち3つのタイプの1つを反映する必要があります.
  • 指定されたリリース内のすべての環境に対して同じリリース・レベル
  • を設定
  • 異なる環境レベルを設定
  • リリース間で動作を変更できる機能レベルを設定
  • 一部は非常に静的で、一部は動的で、一部は既知で、一部は動的で、一部は未知である.図18.1は、いくつかの例示的な構成設定および環境における読み取り可能な位置を示す.

    図18.1は、画像、ファイルシステム、および環境変数設定の構成層を含む
    最初の例はNodeです.node-configという人気のある構成管理ライブラリが含まれています.jsです.ライブラリを使用すると、階層構造の複数のファイルの場所から構成を読み込み、環境変数として再定義できます.この章の練習では、アクセスログサンプルアプリケーションがnode-configライブラリを使用して2つのディレクトリを設定してプロファイルを読み込みます.
  • config--Dockerイメージのプリファレンスとしてパッケージ
  • config-override--画像にはありませんが、ボリューム、構成オブジェクト、または秘密にコンテナファイルシステムに構成できます
  • TRY画像のデフォルト設定としてサンプルアプリケーションを実行し、開発環境の再定義ファイルを含む同じ画像を実行します.
  • run a container with the default config in the image:
  •  docker container run -d -p 8080:80 diamol/ch18-access-log
  • run a container loading a local config file override:
  • docker container run -d -p 8081:80 -v "$(pwd)/config/dev:/app/config-override" diamol/ch18-access-log
  • check the config APIs in each container:
  • curl http://localhost:8080/config
    curl http://localhost:8081/config

    18.5柔軟な構成モードが有効な理由


    11章と15章では、DockerがCI/CDパイプラインを紹介しています.このパイプラインの核心設計は、環境を通じてイメージを本番にアップグレードするイメージを作成することです.アプリケーションの実行方法は、各環境で少し異なります.単一のイメージメソッドを維持しながらサポートする方法は、多層モデルを使用することです.
    実際には、ほとんどの場合、コンテナイメージで構築されたリリースレベル設定と、コンテナプラットフォームで提供される環境レベル再定義ファイルが使用されますが、環境変数を使用して機能レベル構成を設定する機能は非常に有用な追加機能です.これは、本番の問題に迅速に対応できることを意味します.パフォーマンスの問題がある場合は、ログ・レベルを下げたり、セキュリティ・ホールがある機能をオフにしたりできます.これは、環境変数ではなく、開発システムで本番環境と同様の環境を作成して、エラーをコピーし、秘密を解消した本番構成定義を使用できることを意味します.
    すべての環境で同じイメージを正確に実行できる能力は、構成モデルに時間がかかる補償です.図18.13は、CI/CDパイプラインに続くイメージライフサイクルを示す.

    図18.13 CI/CDパイプラインは、画像を作成し、構成モデルを使用して動作を変更する.
    この柔軟な構成モデルを作成する過程で行った作業は、アプリケーションの将来の競争力を確保するのに役立ちます.すべてのコンテナの実行時に、プロファイルを構成オブジェクトまたは秘密からコンテナにロードし、環境変数を設定することがサポートされます.本章のライブラリアプリケーションのDocker画像の動作は、Docker Component、Docker Swam、またはKubernetesと同じです.コンテナの稼働時間だけではありません.標準プロファイルと環境変数は、プラットフォーム、すなわちサービス製品とサーバリース機能のモデルです.

    18.6研究室


    この練習では、新しいアプリケーションの構成モデルの詳細、再定義ファイルの設定、再構成機能の設定が困難になる可能性があるため、いくつかの練習を行います.同じライブラリアプリケーションを使用します.この章の実験フォルダには、アプリケーションコンポーネントを指定したDocker Componentファイルが含まれていますが、構成されていません.すべてのコンポーネントを次のように設定します.
  • ボリューム・ロード構成を使用してファイルを上書き
  • テスト環境の構成オーバーライドをロード
  • 発行サイクルを「19.12」ではなく「20.01」と再定義
  • これは簡単ですが、アプリケーションを変更せずにアプリケーションの構成を調整するのに時間がかかると便利です.docker-compositionがアプリケーションを実行する場合http://localhost:8010行きますは移動可能であり、アプリケーションが実行可能である必要があります.また、3つの構成APIをすべて参照し、リリース名が20.01、環境がTESTであることを確認する必要があります.