Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

コンテナでのサードパーティアプリケーションの実行

Junos OS Evolved上で独自のアプリケーションを実行する場合は、それらをDockerコンテナとして導入するオプションがあります。コンテナはJunos OS Evolved上で実行され、アプリケーションはコンテナ内で実行されるため、ホストOSから隔離された状態に保たれます。 コンテナは、/ var/extensions にマウントされた別のパーティションにインストールされます。コンテナは、再起動後もソフトウェアアップグレード後も保持されます。

メモ:

DockerコンテナはJunos OS Evolvedには統合されておらず、Dockerコマンドを使用してLinuxを通して完全に作成および管理されます。Docker コンテナーとコマンドの詳細については、Docker の公式ドキュメントを参照してください。 https://docs.docker.com/get-started/

コンテナーには、システムから使用できるリソースに対する既定の制限があります。

  • Storage – / var / extensionパーティションのサイズはプラットフォーム駆動型です:8GBまたは / var の合計サイズの30%のいずれか小さい方。

  • Memory – コンテナにはデフォルトの物理メモリ制限はありません。これは変更できます。

  • CPU –コンテナにはデフォルトのCPU制限はありません。これは変更できます。

メモ:

必要に応じて、コンテナーのリソース制限を変更できます。 コンテナのリソース制限の変更を参照してください。

Dockerコンテナのデプロイ

Docker コンテナーをデプロイするには:

  1. VRF にバインドされた Docker サービスを開始します(例vrf0:)。この Docker サービスによって管理されるすべてのコンテナーは、この Linux VRF にバインドされます。
  2. 次の環境変数を構成して、クライアントの Docker ソケットを設定します。
  3. イメージをインポートします。
    メモ:

    コマンドの import URL は、コンテナーごとに変更する必要があります。

  4. イメージ がダウンロードされていることを確認し、イメージ ID を取得します。
  5. イメージ ID を使用してコンテナーを作成し、そのコンテナーに bash セッションを入力します。
  6. イメージIDを使用してパケットIOとNetlinkの機能を持つコンテナを作成し、bashそのコンテナにセッションを入力します。
    メモ:

    Docker コンテナーは、引数を使用しない限り、 -it 既定でデーモン化されます。

Dockerコンテナの管理

Docker コンテナーは、標準の Docker Linux ワークフローを通じて管理されます。 docker psps または top Linux コマンドを使用して、実行中の Docker コンテナーを表示し、Docker コマンドを使用してコンテナーを管理します。Docker コマンドの詳細については、以下を参照してください。 https://docs.docker.com/engine/reference/commandline/cli/

メモ:

Junos OS Evolvedの高可用性機能は、Dockerコンテナ内のカスタムアプリケーションではサポートされていません。アプリケーションに高可用性機能がある場合は、各REでアプリケーションを実行して、それ自体を同期できるようにする必要があります。このようなアプリケーションには、それ自体を管理し、すべてのインスタンスと通信するために必要なビジネス ロジックが必要です。

Docker コンテナの VRF の選択

コンテナは、Docker デーモンから仮想ルーティングと転送 (VRF) を継承します。個別の VRF でコンテナを実行するには、対応する VRF で Docker デーモン インスタンスを起動する必要があります。インスタンスでは docker@vrf.service 、対応する VRF でデーモンを起動できます。VRF が指定されていない場合、VRF のデフォルトは vrf0になります。

docker.service デフォルトで実行されます vrf:none

特定の VRF のドッカーデーモンは、/ run/docker-vrf.sock にある対応するソケットでリッスンします。

これはLinuxで見られるVRFであり、Junos OS Evolved VRFではありません。このユーティリティ evo_vrf_name (Junos OS Evolvedリリース24.1以降で使用可能)を使用して、Junos OS Evolved VRFに対応するLinux VRFを見つけることができます。

Docker クライアントは、次の引数を使用して VRF 固有の Docker デーモンに関連付けられます。

たとえば、コンテナー vrf0 を実行するには、次の Docker コマンドと引数を入力します。

メモ:

コンテナは 1 つの VRF にのみ関連付けることができます。

コンテナのリソース制限の変更

コンテナのデフォルトのリソース制限は、/ etc/extensions/platform_attributesにあるファイルによって制御されます。このファイルを開くと、次のテキストが表示されます。

コンテナーのリソース制限を変更するには、ファイルの下部にあるエントリに EXTENSIONS 値を追加します。

  • EXTENSIONS_FS_DEVICE_SIZE_MIB= コンテナが使用できる最大ストレージ容量を制御します。値をバイト単位で入力します。デフォルト値は、8GB または /var の合計サイズの 30% のいずれか小さい方です。

  • EXTENSIONS_CPU_QUOTA_PERCENTAGE= コンテナが使用できる最大 CPU 使用率を制御します。CPU 使用率の割合として値を入力します。

  • EXTENSIONS_MEMORY_MAX_MIB= コンテナーが使用できる物理メモリの最大量を制御します。値をバイト単位で入力します。

注意:

コンテナーのリソース制限を変更する前に、構成でサポートする必要があるスケールの CPU とメモリの要件に注意してください。コンテナのリソース制限を増やす場合は、システムに負担がかからないように注意してください。