CISCO IOS XR ホスティング アプリケーション

IOS XR でのアプリケーションのホスティング
このセクションでは、さまざまな種類のアプリケーション ホスティングについて説明し、単純なアプリケーションをネイティブまたは IOS XR 上のサードパーティ コンテナでホストする方法を示します。
- Dockerコンテナを使用したアプリケーションのホスティング。
- Docker ベースのコンテナ アプリケーション ホスティング。
Dockerコンテナを使用したアプリケーションホスティング
IOS XR でのアプリケーション ホスティングは、Docker コンテナをサポートします。 Docker を使用して IOS XR 上に独自のコンテナを作成し、コンテナ内でアプリケーションをホストできます。アプリケーションは、任意の Linux ディストリビューションを使用して開発できます。これは、IOS XR ルートによって提供されるものとは異なるシステム ライブラリを使用するアプリケーションに適しています。 file システム。 Cisco NCS 540 は、Docker ベースのアプリケーション ホスティングのみをサポートします。
Dockerベースのコンテナアプリケーションホスティング
このセクションでは、コンテナ アプリケーション ホスティングの概念を紹介し、そのワークフローについて説明します。コンテナ アプリケーション ホスティングにより、Cisco IOS XR 上の Linux コンテナ内の独自の環境およびプロセス スペース(名前空間)でアプリケーションをホストできるようになります。アプリケーション開発者はアプリケーション開発環境を完全に制御でき、選択した Linux ディストリビューションを使用できます。アプリケーションは、IOS XR コントロール プレーン プロセスから分離されています。さらに、XR GigE インターフェイスを介して XR 外部のネットワークに接続できます。アプリケーションはローカルにも簡単にアクセスできます file IOS XR 上のシステム。
Cisco IOS XR でのアプリケーションのホスティングに Docker を使用する
Docker は、Cisco IOS XR でアプリケーションをホストするために使用されるコンテナです。 Docker は、Linux ネットワーク名前空間を使用して、XR 上の基盤となるホスト プロセスからアプリケーション プロセスを分離します。
Cisco IOS XR での Docker の必要性
Docker は、仮想化空間におけるアプリケーションのパッケージング モデルとして業界で推奨されています。 Docker は、アプリケーションのライフサイクル管理を自動化するための基盤を提供します。 Docker は、上部のアプリケーション層をサポートする下部の基本イメージで構成される階層化アプローチに従っています。基本イメージは、上にインストールするアプリケーションの種類に応じて、リポジトリで公開されています。 Docker インデックスとレジストリを使用して、Docker イメージを操作できます。 Docker は、コンテナ アプリケーションを開発するための Git のようなワークフローを提供し、ソース コードの差分のみが更新される「シン アップデート」メカニズムをサポートしているため、アップグレードが高速化されます。 Docker は、複数の Docker コンテナ間で共通のベース Docker レイヤーを共有するため、新しいアプリケーションがより速くダウンロードされる「シン ダウンロード」メカニズムも提供します。複数の Docker コンテナ間で Docker レイヤーを共有すると、XR 上の Docker コンテナのフットプリントが削減されます。
Cisco IOS XR の Docker アーキテクチャ
次の図は、IOS XR の Docker アーキテクチャを示しています。

ホストされるアプリケーションのアプリケーション バイナリは、Docker コンテナ内にインストールされます。
Dockerコンテナでアプリケーションをホストする
次の図は、IOS XR 上の Docker コンテナでアプリケーションをホストするためのワークフローを示しています。

- 港湾労働者 file ソース リポジトリ内の は、アプリケーション バイナリのビルドに使用されます file (Docker エンジン ビルド) ホスト マシン上で。
- アプリケーションバイナリ file Docker イメージ レジストリにプッシュされます。
- アプリケーションバイナリ file Docker イメージ レジストリから取得され、XR (Docker エンジン ターゲット ホスト) 上の Docker コンテナにコピーされます。
- アプリケーションは、XR 上の Docker コンテナーで構築され、ホストされます。
Dockerコンテナ内のアプリケーションの更新
次の図は、Docker コンテナーでホストされているアプリケーションを更新するためのワークフローを示しています。
- アプリケーションの更新はベース ライブラリの更新として生成されます file (デルタアップデート file) され、Docker イメージ レジストリにプッシュされます。
- デルタアップデート file (アプリケーション コードの違いのみを含む) は Docker イメージ レジストリから取得され、XR (Docker エンジン ターゲット ホスト) 上の Docker コンテナーにコピーされます。
- デルタアップデートによりDockerコンテナが再起動される file.
アプリケーション マネージャーを使用した TPA のホスティング
表 1: 機能履歴テーブル
| 特徴 名前 | リリース情報 | 特徴 説明 |
| オンデマンド Docker デーモン サービス | リリース7.5.1 | このリリース以降、
Docker デーモン サービスは、 アプリマネージャ 指示。このようなオンデマンド サービスは、CPU、メモリ、電力などのオペレーティング システム リソースを最適化します。 以前のリリースでは、ルーターの起動時に Docker デーモン サービスが自動的に開始されました。 |
以前のリリースでは、アプリケーションは Docker コマンドによってホストされ、制御されていました。これらの Docker コマンドは、Cisco IOS XR ソフトウェアもホストするカーネルの bash シェルで実行されました。 Application Manager の導入により、Cisco IOS XR CLI を通じてサードパーティ アプリケーションのホスティングとその機能を管理できるようになりました。この機能を使用すると、アクティブ化されたすべてのサードパーティ アプリケーションは、ルータのリロードまたは RP スイッチオーバー後に自動的に再起動できます。このアプリケーションの自動再起動により、ホストされているアプリケーションがシームレスに機能することが保証されます。
アプリケーションマネージャーでサポートされているコマンド
アプリケーション マネージャーのコマンドまたは構成が実行されるたびに、アプリケーション マネージャーは、Docker ソケットを介して Docker デーモンと通信して、要求されたアクションを実行します。次の表に、Docker コンテナーの機能、以前のリリースで使用されていた汎用 Docker コマンド、および現在使用できる同等のアプリケーション マネージャー コマンドを示します。
| 機能性 | 一般的な Docker コマンド | 応用 マネージャー コマンド |
| アプリケーション RPM をインストールする | NA | Router#appmgr パッケージのインストール rpm
イメージ名-0.1.0-XR_7.3.1.x86_64.rpm |
| アプリケーションを構成してアクティブ化する | • イメージのロード – [xr-vm_node0_RP0_CPU0:~]$docker load -i /tmp/画像名。タール
• ルーター上のイメージを確認する – xr-vm_node0_RP0_CPU0:~]$docker イメージ ls • イメージ上にコンテナを作成 – [xr-vm_node0_RP0_CPU0:~]$docker create 画像名 |
ルーター#config
ルーター(config)#appmgr ルーター(config-appmgr)#application アプリ名 Router(config-application)#activate type docker ソース 画像名 docker-run-opts “–net=host” docker-run-cmd “iperf3 -s -d” |
| • コンテナーの開始 – [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | ルーター(構成アプリケーション)#commit | |
| View アプリケーションのリスト、統計、ログ、および詳細
容器 |
• リスト画像
-[xr-vm_node0_RP0_CPU0:~]$docker イメージ ls • コンテナのリスト – [xr-vm_node0_RP0_CPU0:~]$docker ps• 統計 -[xr-vm_node0_RP0_CPU0:~]$docker 統計 |
Router#show appmgr ソーステーブル
Router#show appmgr アプリケーション名 アプリ名 情報の概要 Router#show appmgr アプリケーション名 アプリ名 情報詳細 Router#show appmgr アプリケーション名 アプリ名 統計 |
| • ログ
-[xr-vm_node0_RP0_CPU0:~]$docker ログ |
Router#show appmgr application-table
Router#show appmgr アプリケーション名 アプリ名 ログ |
| 機能性 | 一般的な Docker コマンド | 応用 マネージャー コマンド |
| 新しいものを実行する | • 実行 – [xr-vm_node0_RP0_CPU0:~]$docker exec -it my_container_id | Router#appmgr アプリケーション実行 |
| 指示
内部に |
名前 アプリ名 docker-exec-cmd | |
| ランニング | ||
| 容器 | ||
| アプリケーションコンテナを停止する | • コンテナーの停止 – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | Router#appmgr アプリケーション停止名 アプリ名 |
| アプリケーションコンテナを強制終了する | • コンテナーの強制終了 – [xr-vm_node0_RP0_CPU0:~]$docker kill my_container_id | Router#appmgr アプリケーション kill 名 アプリ名 |
| アプリケーションコンテナを起動する | • コンテナーの開始 – [xr-vm_node0_RP0_CPU0:~]$docker start my_container_id | Router#appmgr アプリケーションの開始名 アプリ名 |
| アプリケーションを非アクティブ化する | • コンテナーの停止 – [xr-vm_node0_RP0_CPU0:~]$docker stop my_container_id | ルーター#configure
Router(config)#appmgr アプリケーションなし アプリ名 |
| • コンテナーの削除 – [xr-vm_node0_RP0_CPU0:~]$docker rm my_container_id | ルーター(構成)#コミット | |
| • イメージの削除 – [xr-vm_node0_RP0_CPU0:~]$docker rmi 画像名 | ||
| アプリケーションイメージ/RPMをアンインストールする | • アンインストールイメージ – [xr-vm_node0_RP0_CPU0:~]$docker アプリのアンインストール 画像名 | Router#appmgr パッケージ アンインストール パッケージ
画像名-0.1.0-XR_7.3.1.x86_64 |
注記注: アプリケーション マネージャー コマンドの使用法については、「アプリケーション マネージャーを使用してネットワーク パフォーマンスを監視するための Docker コンテナーでの iPerf のホスト」セクションで説明されています。
複数の VRF を使用した Docker の構成
このセクションでは、Cisco IOS XR 上で複数の VRF を使用して Docker を設定する方法について説明します。複数の VRF の設定の詳細については、「アプリケーション ホスティングのための複数の VRF の設定」トピックを参照してください。
構成
次の手順を使用して、XR 上にマルチ VRF Docker を作成して展開します。
- NET_ADMIN および SYS_ADMIN 権限を持つマルチ VRF Docker を作成します。
次の例ではampファイルでは、3 つの VRF (黄色、青、緑) を含む Docker コンテナが起動されます。元彼ampこのファイルは、以前の「multivrfimage」Docker イメージが appmgr package install コマンドを使用してインストールされたことを前提としています。
注記:- /var/run/netns のコンテンツ全体をホストから Docker にマウントすることは推奨されません。XR およびシステム管理プレーンに対応する netns のコンテンツが Docker にマウントされるからです。
- VRF が Docker で使用されている場合は、Cisco IOS XR から VRF を削除しないでください。 1 つ以上の VRF が XR から削除されると、マルチ VRF Docker を起動できなくなります
- マルチ VRF Docker が正常にロードされたかどうかを確認します。

- 以下のコマンドを実行してマルチVRF Dockerコンテナに接続します。
Router# appmgr アプリケーション実行名 multivrfcontainer1 docker-exec-cmd /bin/bash/
デフォルトでは、Docker は Cisco IOS XR の global-vrf 名前空間にロードされます。 - Docker から複数の VRF にアクセスできるかどうかを確認します。


Cisco IOS XR でマルチ VRF Docker が正常に起動されました。
ドキュメント / リソース
![]() |
CISCO IOS XR ホスティング アプリケーション [pdf] ユーザーマニュアル IOS XR ホスティング アプリケーション, IOS XR, ホスティング アプリケーション, アプリケーション |

