シスコのロゴ

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

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 アーキテクチャを示しています。

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

ホストされるアプリケーションのアプリケーション バイナリは、Docker コンテナ内にインストールされます。

Dockerコンテナでアプリケーションをホストする
次の図は、IOS XR 上の Docker コンテナでアプリケーションをホストするためのワークフローを示しています。
CISCO IOS XR ホスティング アプリケーション 2

  1. 港湾労働者 file ソース リポジトリ内の は、アプリケーション バイナリのビルドに使用されます file (Docker エンジン ビルド) ホスト マシン上で。
  2. アプリケーションバイナリ file Docker イメージ レジストリにプッシュされます。
  3. アプリケーションバイナリ file Docker イメージ レジストリから取得され、XR (Docker エンジン ターゲット ホスト) 上の Docker コンテナにコピーされます。
  4. アプリケーションは、XR 上の Docker コンテナーで構築され、ホストされます。

Dockerコンテナ内のアプリケーションの更新
次の図は、Docker コンテナーでホストされているアプリケーションを更新するためのワークフローを示しています。CISCO IOS XR ホスティング アプリケーション 3

  1. アプリケーションの更新はベース ライブラリの更新として生成されます file (デルタアップデート file) され、Docker イメージ レジストリにプッシュされます。
  2. デルタアップデート file (アプリケーション コードの違いのみを含む) は Docker イメージ レジストリから取得され、XR (Docker エンジン ターゲット ホスト) 上の Docker コンテナーにコピーされます。
  3. デルタアップデートにより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 を作成して展開します。

  1. NET_ADMIN および SYS_ADMIN 権限を持つマルチ VRF Docker を作成します。
    次の例ではampファイルでは、3 つの VRF (黄色、青、緑) を含む Docker コンテナが起動されます。元彼ampこのファイルは、以前の「multivrfimage」Docker イメージが appmgr package install コマンドを使用してインストールされたことを前提としています。CISCO IOS XR ホスティング アプリケーション 4
    注記: 
    • /var/run/netns のコンテンツ全体をホストから Docker にマウントすることは推奨されません。XR およびシステム管理プレーンに対応する netns のコンテンツが Docker にマウントされるからです。
    • VRF が Docker で使用されている場合は、Cisco IOS XR から VRF を削除しないでください。 1 つ以上の VRF が XR から削除されると、マルチ VRF Docker を起動できなくなります
  2. マルチ VRF Docker が正常にロードされたかどうかを確認します。CISCO IOS XR ホスティング アプリケーション 5
  3. 以下のコマンドを実行してマルチVRF Dockerコンテナに接続します。
    Router# appmgr アプリケーション実行名 multivrfcontainer1 docker-exec-cmd /bin/bash/
    デフォルトでは、Docker は Cisco IOS XR の global-vrf 名前空間にロードされます。
  4. Docker から複数の VRF にアクセスできるかどうかを確認します。CISCO IOS XR ホスティング アプリケーション 7
    CISCO IOS XR ホスティング アプリケーション 8

Cisco IOS XR でマルチ VRF Docker が正常に起動されました。

ドキュメント / リソース

CISCO IOS XR ホスティング アプリケーション [pdf] ユーザーマニュアル
IOS XR ホスティング アプリケーション, IOS XR, ホスティング アプリケーション, アプリケーション

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *