(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-30
(45)【発行日】2024-06-07
(54)【発明の名称】コンテナ実行基盤におけるコンテナネットワーク方式最適化方法およびシステム
(51)【国際特許分類】
G06F 9/50 20060101AFI20240531BHJP
H04L 45/76 20220101ALI20240531BHJP
【FI】
G06F9/50 150D
G06F9/50 150A
H04L45/76
(21)【出願番号】P 2021158257
(22)【出願日】2021-09-28
【審査請求日】2023-08-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】関川 柊
【審査官】三坂 敏夫
(56)【参考文献】
【文献】国際公開第2021/002085(WO,A1)
【文献】特開2017-146679(JP,A)
【文献】特表2019-530095(JP,A)
【文献】特表2017-538204(JP,A)
【文献】国際公開第2018/181961(WO,A1)
【文献】中国特許出願公開第112527451(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455- 9/54
H04L 45/76
(57)【特許請求の範囲】
【請求項1】
構成定義ファイルに基づいてコンテナ実行基盤上の物理ノードにアプリケーションコンテナを配置してコンテナネットワークを設定するシステムにおいて、
構成定義ファイルにコンテナネットワークの要求リソース特性を記述する手段と、
アプリケーションコンテナの配置先ノードを選択する手段と、
物理ノードの組み合わせごとに使用可能なネットワーク方式およびそのリソース特性を管理するコンテナネットワークリストと、
各物理ノードのリソース状態を管理するリソース状態データベースと、
前記配置先ノードのリソース状態および前記コンテナネットワークリストに基づいて前記要求リソース特性を充足するネットワーク方式を決定する手段と、
前記配置先ノードに前記決定したネットワーク方式および構成定義ファイルに基づいてコンテナネットワークを設定する手段とを具備したことを特徴とするコンテナ実行基盤におけるコンテナネットワーク方式最適化システム。
【請求項2】
各物理ノードにおいてアプリケーションコンテナごとに設けられ、当該アプリケーションコンテナのリソース状態を監視するリソース監視コンテナを具備し、
前記リソース監視コンテナは、対応するアプリケーションコンテナの起動と共に起動されて実行し、当該アプリケーションコンテナの終了と共に終了することを特徴とする請求項1に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化システム。
【請求項3】
各アプリケーションコンテナのリソースが名前空間により分離され、前記リソース監視コンテナは、対応するアプリケーションコンテナと同一の名前空間で起動および実行されることを特徴とする請求項2に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化システム。
【請求項4】
前記リソース監視コンテナの監視結果に基づいて前記リソース状態データベースを更新する手段を具備したことを特徴とする請求項2または3に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化システム。
【請求項5】
物理ノードごとに設けられ、他の物理ノードとの間でのトラフィック転送性能を計測するネットワーク計測コンテナを具備し、
前記ネットワーク計測コンテナは、ネットワーク計測を開始するごとに配置され、ネットワーク計測が完了すると終了することを特徴とする請求項1ないし4のいずれかに記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化システム。
【請求項6】
前記ネットワーク計測コンテナの計測結果に基づいて前記コンテナネットワークリストおよびリソース状態データベースを更新する手段を具備したことを特徴とする請求項5に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化システム。
【請求項7】
前記ネットワーク計測コンテナは、コンテナ実行基盤の作成時およびコンテナ実行基盤上に配置される物理ノードの変更時の少なくとも一方のタイミングで前記トラフィック転送性能を計測することを特徴とする請求項5または6に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化システム。
【請求項8】
コンピュータが、構成定義ファイルに基づいてコンテナ実行基盤上の物理ノードにアプリケーションコンテナを配置してコンテナネットワークを設定する方法において、
構成定義ファイルにコンテナネットワークの要求リソース特性を記述し、
アプリケーションコンテナの配置先ノードを選択し、
物理ノードの組み合わせごとに使用可能なネットワーク方式およびそのリソース特性を管理するコンテナネットワークリストと、
前記配置先ノードのリソース状態、物理ノードのリソース状態を管理するリソース状態データベースならびに物理ノードの組み合わせごとに使用可能なネットワーク方式およびそのリソース特性を管理するコンテナネットワークリストに基づいて前記要求リソース特性を充足するネットワーク方式を決定し、
前記配置先ノードに前記決定したネットワーク方式および構成定義ファイルに基づいてコンテナネットワークを設定することを特徴とするコンテナ実行基盤におけるコンテナネットワーク方式最適化方法。
【請求項9】
各物理ノードにおいてアプリケーションコンテナごとに、当該アプリケーションコンテナのリソース状態を監視するリソース監視コンテナを設定し、
前記リソース監視コンテナは、対応するアプリケーションコンテナの起動と共に起動されて実行し、当該アプリケーションコンテナの終了と共に終了することを特徴とする請求項8に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化方法。
【請求項10】
各アプリケーションコンテナのリソースが名前空間により分離され、前記リソース監視コンテナは、対応するアプリケーションコンテナと同一の名前空間で起動および実行されることを特徴とする請求項9に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化方法。
【請求項11】
前記リソース監視コンテナの監視結果に基づいて前記リソース状態データベースを更新することを特徴とする請求項9または10に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化方法。
【請求項12】
物理ノードごとに、他の物理ノードとの間でのトラフィック転送性能を計測するネットワーク計測コンテナを設け、
前記ネットワーク計測コンテナは、ネットワーク計測を開始するごとに配置され、ネットワーク計測が完了すると終了することを特徴とする請求項8ないし11のいずれかに記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化方法。
【請求項13】
前記ネットワーク計測コンテナの計測結果に基づいて前記コンテナネットワークリストおよびリソース状態データベースを更新することを特徴とする請求項12に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化方法。
【請求項14】
前記ネットワーク計測コンテナは、コンテナ実行基盤の作成時およびコンテナ実行基盤上に配置される物理ノードの変更時の少なくとも一方のタイミングで前記トラフィック転送性能を計測することを特徴とする請求項12または13に記載のコンテナ実行基盤におけるコンテナネットワーク方式最適化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテナ実行基盤におけるコンテナネットワーク方式最適化方法およびシステムに係り、特に、コンテナ実行基盤で実行されるアプリケーションコンテナに対して、ネットワークやハードウェアの構成および現在のリソースの使用状況に基づいて最適なネットワーク方式を選択する方法およびシステムに関する。
【背景技術】
【0002】
特許文献1には、仮想ネットワーク機能を仮想インフラストラクチャ上で作成する際に、仮想インフラストラクチャ管理装置において仮想ネットワーク機能が必要とする性能を満たす物理マシンを選択し、仮想マシンを作成するシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1によれば、仮想ネットワーク機能が必要とする性能に応じて物理マシンを選択し、各物理マシン上に仮想マシンを作成することが可能となる。しかしながら、名前空間によりリソースが分離されたコンテナを用いて仮想化を実現するコンテナ型仮想化システムにおいて仮想ネットワーク機能を実現するには以下の課題が存在する。
【0005】
第1に、コンテナ型仮想化システムにおいては、
図14に一例を示すように、多数のコンテナを異なるカーネル(ノード)上のみならず同一のカーネル上でも動作させることから、カーネルリソースが分離されている従来型の仮想化方式に比べてネットワーク性能がコンテナネットワーク方式に影響される。ネットワーク方式には、ノード内通信方式、ノード間通信方式、カプセリングプロトコル、データプレーン技術などがある。そのため、コンテナ型仮想化システムにおいては物理マシンのみならずコンテナ間のネットワーク方式にも最適化が求められる。
【0006】
第2に、コンテナ型仮想化システムでは、仮想マシンを用いるホスト型仮想化あるいはハイパーバイザ型仮想化システムといった従来型の仮想化方式に比べてリソースの分離度が低く、カーネルを共有する構造になっている。そのため、仮想ネットワーク機能の動作に必要となるネットワーク性能を実現するためのリソース量を物理マシンのハードウェア性能のみで見積もることが困難である。
【0007】
第3に、コンテナ型仮想化システムでは複数のコンテナがカーネルを共有することから各コンテナに与えられる権限が他のコンテナに影響を与えないように制限されているケースが一般的であり、コンテナをホストしているノードやネットワークの情報を収集する際には特権が必要となる。特権命令を実行可能なコンテナを用いて常時情報収集を行った場合、該当のコンテナを介して他のネットワーク機能等のアプリケーションを実行するコンテナの情報が収集されるためにセキュリティ上の問題が発生する可能性が存在する。
【0008】
本発明の目的は、上記の技術課題を解決し、コンテナ型仮想化を用いたシステムにおいてコンテナネットワークを管理する機能とリソース状況を監視、計測するコンテナとを組み合わせることでコンテナの新規作成時に所定の要求を満たすコンテナネットワーク方式を自動的に選択し、コンテナの作成を実施するコンテナ実行基盤におけるコンテナネットワーク方式最適化方法およびシステムを提供することにある。
【課題を解決するための手段】
【0009】
上記の目的を達成するために、本発明は、構成定義ファイルに基づいてコンテナ実行基盤上の物理ノードにアプリケーションコンテナを配置してコンテナネットワークを設定するシステムにおいて、以下の構成を具備した点に特徴がある。
【0010】
(1) 構成定義ファイルにコンテナネットワークの要求リソース特性を記述する手段と、アプリケーションコンテナの配置先ノードを選択する手段と、物理ノードの組み合わせごとに使用可能なネットワーク方式およびそのリソース特性を管理するコンテナネットワークリストと、各物理ノードのリソース状態を管理するリソース状態データベースと、配置先ノードのリソース状態およびコンテナネットワークリストに基づいて要求リソース特性を充足するネットワーク方式を決定する手段と、配置先ノードに前記決定したネットワーク方式および構成定義ファイルに基づいてコンテナネットワークを設定する手段とを具備した。
【0011】
(2) 各物理ノードにおいてアプリケーションコンテナごとに設けられ、当該アプリケーションコンテナのリソース状態を監視するリソース監視コンテナを具備し、リソース監視コンテナは、対応するアプリケーションコンテナの起動と共に起動されて実行し、当該アプリケーションコンテナの終了と共に終了するようにした。
【0012】
(3) 各アプリケーションコンテナのリソースが名前空間により分離され、リソース監視コンテナは、対応するアプリケーションコンテナと同一の名前空間で起動および実行されるようにした。
【0013】
(4) リソース監視コンテナの監視結果に基づいてリソース状態データベースを更新する手段を具備した。
【0014】
(5) 物理ノードごとに設けられ、他の物理ノードとの間でのトラフィック転送性能を計測するネットワーク計測コンテナを具備し、ネットワーク計測コンテナは、ネットワーク計測を開始するごとに配置され、ネットワーク計測が完了すると終了するようにした。
【0015】
(6) ネットワーク計測コンテナの計測結果に基づいてコンテナネットワークリストおよびリソース状態データベースを更新する手段を具備した。
【0016】
(7) ネットワーク計測コンテナは、コンテナ実行基盤の作成時およびコンテナ実行基盤上に配置される物理ノードの変更時の少なくとも一方のタイミングでトラフィック転送性能を計測するようにした。
【発明の効果】
【0017】
本発明によれば以下のような効果が達成される。
【0018】
(1) コンテナネットワーク管理機能を用いてコンテナネットワーク方式を選択し、クライアントから与えられた構成定義を更新するので、コンテナネットワーク方式を変更することが可能になる。
【0019】
(2) アプリケーションコンテナの作成時に、要求ネットワーク特性の要求を含めるのでアプリケーションコンテナの要求を満たすコンテナネットワーク方式を選択することが可能になる。
【0020】
(3) コンテナネットワーク方式の選択に必要となるモニタリング機能がコンテナとして付与されるのでモニタリング機能を別途に追加する作業が不要となる。
【0021】
(4) ネットワーク計測コンテナを用いて各コンテナネットワーク方式のネットワーク性能等を測定し、コンテナネットワーク方式の決定に使用するので、事前のハードウェア構成等による性能見積もりが不要となる。
【0022】
(5) ネットワーク計測コンテナを用いて各コンテナネットワーク方式のネットワーク性能等を測定するので、アプリケーションコンテナの配置前に使用不可能なコンテナネットワーク方式を抽出、使用する候補から除外することができ、その結果、アプリケーションコンテナ作成後のネットワーク不良を防止することが可能になる。
【0023】
(6) ネットワークに対して計測負荷のかかるネットワーク性能計測をコンテナ実行基盤の作成時やコンテナ実行基盤に含まれる物理ノードの変更時のみ実施し、以降は各アプリケーションコンテナへ配置されたリソース監視コンテナにより収集された情報を用いて期待されるネットワーク性能の見積もりを行うので、コンテナ実行基盤への負荷を減少させることができる。
【0024】
(7) リソース監視機能をコンテナとしてアプリケーションコンテナごとに配置することで監視機能を複数のノードに分散配置できるため、大量のアプリケーションコンテナがコンテナ実行基盤上に配置された際にも高いスケール性を確保することが可能になる。
【0025】
(8) リソース監視機能をコンテナとしてアプリケーションコンテナと同じ名前空間に配置するので、特権不要でアプリケーションコンテナのリソースやネットワークの使用状況を収集することが可能になる。
【0026】
(9) ネットワーク計測コンテナを計測時のみコンテナ実行基盤上に配置するので、使用するリソースの最小化およびネットワーク計測コンテナが特権を持つことによるセキュリティリスクを減少させることが可能になる。
【図面の簡単な説明】
【0027】
【
図1】本発明のコンテナネットワーク方式最適化システムを適用したコンテナ仮想化システムの構成を示した機能ブロック図である。
【
図3】本発明の一実施形態のシーケンスフロー(その1)である。
【
図4】本発明の一実施形態のシーケンスフロー(その2)である。
【
図5】本発明の一実施形態のシーケンスフロー(その3)である。
【
図6】構成定義ファイルにコンテナ配置先ノードを追記する例を示した図である。
【
図7】コンテナネットワークリストの例を示した図である。
【
図8】リソース状態データベースの例を示した図である。
【
図9】コンテナネットワーク方式を選択する手順を示したフローチャートである。
【
図10】構成定義ファイルにコンテナネットワーク方式を追記する例を示した図である。
【
図11】物理ノードの構成を示した機能ブロック図である。
【
図12】コンテナネットワークリストを更新する手順を示したブロック図である。
【
図13】各物理ノードにおけるコンテナ配置の例を示した図である。
【
図14】従来のコンテナ型仮想化システムの構成例を示したブロック図である。
【発明を実施するための形態】
【0028】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
図1は、本発明のコンテナネットワーク方式最適化システムを適用したコンテナ仮想化システムの構成を示した機能ブロック図であり、ユーザが操作するクライアント端末10、コンテナの管理を行うコンテナオーケストレータ20およびコンテナを実行するコンテナ実行基盤30を主要な構成としている。
【0029】
コンテナ実行基盤30は複数の物理的なサーバノード(物理ノード)で構成される。各物理ノードには任意のアプリケーションを実行する少なくとも一つのコンテナおよびコンテナの作成、実行を行うためのコンテナ制御機能に加えて、本発明に固有の構成として、各物理ノードのリソース状態やネットワークの使用状況や転送性能を監視、測定するモニタリング機能が実装される。本実施形態では、モニタリング機能が後に詳述するネットワーク(NW)計測コンテナおよびリソース監視コンテナにより実現される。
【0030】
前記ネットワーク計測コンテナは物理ノードごとに設けられ、他の物理ノードとの間でサーバ/クライアント方式によりトラフィック転送性能を計測する。リソース監視コンテナはアプリケーションコンテナごとに設けられ、当該アプリケーションコンテナのリソース状態を監視する。
【0031】
このようなコンテナネットワーク方式最適化システムは、CPU,ROM,RAM,バス,インタフェース等を備えた少なくとも一台の汎用のコンピュータやサーバに各機能を実現するアプリケーション(プログラム)を実装することで構成できる。あるいはアプリケーションの一部をハードウェア化またはソフトウェア化した専用機や単能機としても構成できる。
【0032】
ユーザはクライアント端末10上でコンテナネットワークの構成定義ファイル101を新規作成または変更等する。構成定義ファイルは、
図2に一例を示すようにYAMLやJSON (JavaScript Object Notation) などの一般的なデータ記述言語によって表現され、ネットワーク構成記述部(B1)および複数のコンテナ構成記述部(B2:B2_1,B2_2)を含む。
【0033】
ネットワーク構成記述部B1には、ネットワークに属するコンテナの情報および要求するネットワーク特性を含ませることができる。ネットワーク特性は目的関数および制約条件として記述することができ、これらの要求に基づいて最適なコンテナネットワーク方式が決定される。本実施形態では、目的関数として遅延(lat)の最小化が要求され、制約条件として転送容量が少なくとも5000Mbpsであることが要求されている。
【0034】
コンテナ構成記述部B2にはコンテナの名前や使用するコンテナイメージファイルなど、実行するアプリケーションに関する設定を記述できる。本実施形態では、アプリケーションコンテナ3150に関するコンテナ構成記述部B2_1およびアプリケーションコンテナ3330に関するコンテナ構成記述部B2_2を含んでいる。
【0035】
コンテナオーケストレータ20は、コンテナスケジューラ機能部201,コンテナネットワーク(NW)管理機能部202,コンテナネットワーク(NW)リスト203およびリソース状態データベース(DB)204を含む。
【0036】
コンテナスケジューラ機能部201は、リソース状態DB204を参照してコンテナの配置先ノードを決定する。本実施形態ではリソースの空き容量が相対的に大きい物理ノード310,330が配置先ノードに決定されたものとして説明を続ける。コンテナスケジューラ機能部201は更に、決定した配置先ノード310,330を構成定義101に追加してコンテナネットワーク管理機能部202に送信する。
【0037】
コンテナネットワーク管理機能部202は、前記構成定義およびモニタリング機能(ネットワーク計測コンテナおよびリソース監視コンテナ)から取得したモニタリング情報に基づいてネットワーク方式を決定する。
【0038】
コンテナNWリスト203は、後に
図7を参照して詳述するようにコンテナ実行基盤10のノードペアごとに使用可能なコンテナネットワーク方式を管理する。リソース状態DB204は、後に
図8を参照して詳述するようにコンテナリソース使用量T1およびノードリストT2を保持する。
【0039】
次いで、
図3,4,5のシーケンスフローを参照してアプリケーションコンテナをコンテナ実行基盤30の物理ノードに新規作成する手順を説明する。
【0040】
初めに
図3を参照し、時刻t1においてユーザがクライアント端末10上でアプリケーションコンテナ3150,3330を追加するための構成定義ファイル(
図2)101を新規作成又は修正し、時刻t2において、この構成定義ファイル101がコンテナスケジューラ機能部201へ適用される。
【0041】
時刻t3では、コンテナスケジューラ機能部201が各物理ノードのリソース状況等に基づいて、コンテナの配置先ノードを決定する。本実施形態ではリソースの空き容量が相対的に大きい物理ノード310,330が、それぞれアプリケーションコンテナ3150,3330の配置先ノードとして選択されたものとして説明を続ける。時刻t4では、
図6に示すように、コンテナスケジューラ機能部201が各コンテナの配置先ノード310,330を構成定義に追加してコンテナネットワーク管理機能部202へ通知する。
【0042】
時刻t5では、コンテナネットワーク管理機能部202がコンテナネットワークリスト203からネットワーク方式候補を取得する。コンテナネットワークリスト203には、
図7に一例を示すように、利用可能な全ての物理ノードの組み合わせ(ノードペア)ごとに、各ネットワーク方式(network type)の使用可否(available)、転送容量(tx rate,rx rate)、遅延(lat)、CPUやメモリの使用リソース等(cpu,mem)の複数のメトリクスの値が登録されている。
【0043】
コンテナネットワークリスト203は、後に詳述するネットワーク計測コンテナの測定結果に基づいて作成され、ノードペア(310,330)であれば、ネットワークタイプ「sriov」のようにリソース不足等でネットワークが構築できなかった場合は使用不可とマーク(availableがNo)される。
【0044】
時刻t6では、コンテナネットワーク管理機能部202が各コンテナのリソース状態をリソース状態DB204から取得する。リソース状態DB204には、
図8に示すように既存のコンテナごとに、その配置先ノードやリソース使用量を管理するコンテナリソース使用量T1と、物理ノードごとにリソース初期値を管理するノードリストT2とが登録されている。
【0045】
時刻t7では、コンテナネットワーク管理機能部202が構成定義ファイル101のネットワーク構成記述部B1で要求されているネットワーク特性に従って、コンテナネットワークリスト203をメトリクス値に基づいてソートおよびフィルタリングし、最上位に位置するネットワーク方式を選択する。
【0046】
図9は、前記時刻t7においてコンテナネットワーク管理機能部202がコンテナネットワーク方式を選択する手順を示したフローチャートである。
【0047】
ステップS1では、前記構成定義ファイル101を解析することで各コンテナの配置先ノードが抽出される。本実施形態では2つの物理ノード310,330が配置先ノードとして抽出される。ステップS2では、2つの配置先ノード310,330についてコンテナネットワークリスト203が取得される。ステップS3では、配置先ノード310,330に実装されている既存コンテナのリソース状態がリソース状態DB204から取得される。
【0048】
ステップS4では、配置先ノードの一つが今回のループ処理で注目するノードとして選択される。ステップS5では、注目ノード上で動作する全ての既存コンテナのリソースの合計値をコンテナリソース使用量テーブルT1から計算し、これをノードリストT2のリソース初期値から減じることで余剰リソース量を計算する。
【0049】
図8を参照し、今回の注目ノードが物理ノード310であれば、既存のアプリケーションコンテナ3130,3140のリソース使用量の総和をリソース初期値から減じることで余剰リソース量が計算される。
【0050】
CPUリソースであれば、アプリケーションコンテナ3130の使用量が100%、アプリケーションコンテナ3140の使用量が20%であり、その総量は120%となる。そして、ノードリストT2に登録されているノード310のCPUに関するリソース初期値は400%なので、ノード310のCPUに関する余剰リソース量は400%-120%=280%となる。転送容量(送信容量tx_rate、受信容量rx_rate)およびメモリ容量(mem)についても同様に、リソース使用量の総量をリソース初期値から減じることで余剰リソース量が計算される。
【0051】
ステップS6では、リソースごとに余剰リソース量とコンテナネットワークのリソース要求量とを比較し、コンテナネットワークリスト203の余剰リソース量が十分でないコンテナネットワーク方式の利用可否に関するステータスが利用不可へ更新される。更に、コンテナネットワークリスト203に登録されている転送容量を余剰リソース量(利用可能な転送容量)が下回る場合、コンテナネットワークリスト203の転送容量が利用可能な転送容量に更新される。
【0052】
ステップS7では、全ての配置先ノードに関してコンテナネットワークリスト203の更新が完了したか否かが判断される。注目していない配置先ノードが残っていればステップS4へ戻り、注目する配置先ノードを切り替えて上記の各処理が繰り返される。
【0053】
以上のようにして全ての配置先ノードについてコンテナネットワークリスト203の更新が完了するとステップS8へ進む。ステップS8では構成定義ファイル101が解析されて要求ネットワーク特性が抽出される。本実施形態では、ネットワーク構成記述部B1に記述されている目的関数および制約条件が抽出される。なお、複数の目的関数、制約条件を含む場合は、それぞれに対して処理が繰り返される。
【0054】
ステップS9では、注目した要求ネットワーク特性が目的関数および制約条件のいずれであるか判断される。目的関数であればステップS10へ進み、メトリクスに基づいてコンテナネットワークリスト203のソートが行われる。制約条件であればステップS11へ進み、指定されたメトリクスでコンテナネットワークリスト203のフィルタリングが行われ、要求リソース特性を充足しないコンテナネットワーク方式がリストから除外される。
【0055】
ステップS12では、全ての要求リソース特性に関する処理が終了したかが判断される。終了していなければステップS8へ戻り、注目する要求リソース特性を切り替えながら上記の各処理を繰り返す。全ての要求リソース特性に関する処理が終了するとステップS13へ進む。
【0056】
ステップS13では、コンテナネットワークリスト203が空であるか否かが判断される。空でなければステップS14へ進み、リストの先頭にあるコンテナネットワーク方式が選択される。コンテナネットワークリストが空であればステップS15へ進み、スケジュール不可としてコンテナスケジューラ機能部201へその旨が通知される。
【0057】
本実施形態では、目的関数として遅延の最小化が要求され、制約条件として転送容量が5000Mbpsであることが要求されているので、コンテナネットワークリスト203においてノードペア(310,330)が当該要求を満たすコンテナネットワーク方式として"calico_native"が選択される。
【0058】
図3へ戻り、時刻t8ではコンテナネットワーク管理機能部202が
図10に一例を示すように、構成定義ファイル101のネットワーク構成記述部B1に前記選択したコンテナネットワーク方式"calico_native"を追加し、各コンテナ構成記述部B2_1,B2_2にリソース監視コンテナの定義を追記する。本実施形態では、コンテナ3150に付随してリソース監視コンテナ3152を追加し、コンテナ3330に付随してリソース監視コンテナ3332を追加する旨が追記される。時刻t9では、更新された構成定義ファイル101がコンテナスケジューラ機能部201へ通知される。
【0059】
図4へ進み、時刻t10,t11では、
図11に示すように、コンテナオーケストレータ20のコンテナスケジューラ機能部201が前記コンテナネットワーク管理機能部202から通知された構成定義ファイル101に基づいて、配置先ノード310,330上で動作するコンテナ制御機能部311,331へコンテナの作成を要求する。本実施形態では、アプリケーションコンテナおよびリソース監視コンテナの作成が要求される。
【0060】
時刻t12では、コンテナ制御機能部311、331がそれぞれ、自身の物理ノード310,330上にアプリケーションコンテナ3150,3330およびリソース監視コンテナ3152,3332を、前記構成定義ファイル101で指定されたコンテナネットワーク方式で構築する。
【0061】
コンテナネットワークの準備が完了すると、時刻t13,t14において各コンテナ制御機能部311,331がアプリケーションコンテナ3150,3330およびリソース監視コンテナ3152,3332を起動する。本実施形態では、コンテナ制御機能部311がアプリケーションコンテナ3150およびリソース監視コンテナ3152を起動し、コンテナ制御機能部331がアプリケーションコンテナ3330およびリソース監視コンテナ3332を起動する。
【0062】
各コンテナの起動が完了すると、時刻t15においてコンテナ制御機能部311,331がそれぞれ、コンテナスケジューラ機能部201へコンテナの起動完了を通知し、アプリケーションの新規作成フローが完了する。
【0063】
図5は、各物理ノードにおけるネットワーク/リソースの監視手順を、物理ノード310に着目して示したシーケンスフローである。
【0064】
リソース監視コンテナ3152,3332は、コンテナ起動後の時刻t16以降一定時間ごとに、対応するアプリケーションコンテナ3150,3330からコンテナ使用状況を取得する。このとき、リソース監視コンテナ3152,3332は対応するアプリケーションコンテナ3150,3330と同じ名前空間上で起動しているため、リソース使用状況の取得は特権命令不要で実行できる。
【0065】
時刻t17では、リソース監視コンテナ3152,3332がアプリケーションコンテナ3150,3330から取得したリソース監視結果をコンテナネットワーク管理機能部202へ送信する。時刻t18では、コンテナネットワーク管理機能部202がリソース状態DB204のコンテナリソース使用量を前記リソース監視結果に基づいて更新する。リソース監視コンテナ3152,3332はアプリケーションコンテナ3150,3330と一体で管理され、当該アプリケーションコンテナ3150,3330が終了すると同時に終了する。
【0066】
図12は、コンテナネットワーク管理機能部202が、ネットワーク計測の結果に基づいてコンテナネットワークリスト203を作成、更新する手順を示した機能ブロック図である。コンテナネットワークリスト203はコンテナ実行基盤30の構築直後あるいは一定時間ごとに作成、更新される。
【0067】
(1) コンテナ実行基盤30に物理ノードが追加されると、該当物理ノードを一方とする全てのノードペアを対象にネットワーク計測の処理が開始され、コンテナネットワーク管理機能202は計測対象のコンテナネットワーク方式を選択する。このとき、コンテナネットワークリスト203から性能測定済みのコンテナネットワークを取得することで一部のコンテナネットワークやノードペアに対する計測処理を省略できる。
【0068】
コンテナネットワーク方式の変更にはコンテナの再起動が必要となるため、コンテナネットワーク管理機能部202は選択したコンテナネットワーク方式ごとにネットワーク計測コンテナの作成、終了を繰り返す。
【0069】
(2) コンテナネットワーク管理機能部202は、選択したコンテナネットワーク方式に基づいて、各物理ノード310,320,330に配置するネットワーク計測コンテナの構成定義を作成し、コンテナスケジューラ機能部201へコンテナ作成を要求する。
【0070】
(3) コンテナスケジューラ機能部201は、全ての物理ノード310,320,330にネットワーク計測コンテナ312,322,332が1つずつ配置されるようにコンテナの配置先を決定し、配置先ノードのコンテナ制御機能部311,321,331へコンテナ作成を要求する。
【0071】
コンテナ制御機能部311、321、331は、指定されたコンテナネットワーク方式でネットワークを構築したのち、各ネットワーク計測コンテナ312,322,332を起動する。本実施形態では、ネットワーク情報やノード情報の収集を行うために、ネットワーク計測コンテナ312,322,332は必要に応じて特権命令を実行可能な状態で起動することができる。
【0072】
各ネットワーク計測コンテナ312,322,332は、自身が配置されている物理ノードの情報を取得してネットワーク性能測定機能部3121,3221,3321を起動する。ここで取得するノード情報はリソース状態DB204のノードリストT2に相当する。
【0073】
(4) ネットワーク計測コンテナ312,322,332はコンテナネットワーク管理機能部202から測定対象となるコンテナのアドレス情報など測定に必要となる情報を取得し、この情報に基づいて、対向するネットワーク計測コンテナへ測定パケットを送信する。ネットワーク性能測定機能部3121,3221,3321は測定パケットを受信し、転送容量や遅延などのネットワーク性能を測定する。測定結果はコンテナネットワーク管理機能部202へ測送信される。
【0074】
(5) コンテナネットワーク管理機能部202は、各ネットワーク計測コンテナ312,322,332から取得したネットワーク計測の結果に基づいてコンテナネットワークリスト203およびリソース状態DB204のノードリストT2を作成、更新する。
【0075】
ネットワーク計測が終了すると、コンテナネットワーク管理機能部202はコンテナスケジューラ機能部201に対してコンテナ終了を要求し、ネットワーク計測コンテナの使用していたリソースを解放する。複数のコンテナネットワーク方式に対して計測を行う場合は上記の処理を繰り返し行い、全てのコンテナネットワーク方式について処理が完了するとネットワーク計測処理全体が完了する。以上の処理によりコンテナネットワークリストの作成、更新およびノードリストの作成、更新が実現される。
【0076】
図13は、物理ノード310に注目して各コンテナの配置例を示した図であり、アプリケーションコンテ3150,3330ごとに、その起動と共に同一の名前空間で起動、実行され、終了と共に終了するリソース監視コンテナ3152,3332がそれぞれ配置され、更にネットワーク計測期間のみ、一時的に起動、実行されるネットワーク計測コンテナ312が配置されている。
【0077】
そして、本発明によれば構成定義ファイルに追記した要求ネットワーク特性を充足できるコンテナネットワークを自動的に構築することが可能になるので、地理的あるいは経済的な格差を超えて多くの人々に安価で利便性の高いコンテナシステムを提供できるようになる。その結果、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、包括的で持続可能な産業化を推進する」や目標11「都市を包摂的、安全、レジリエントかつ持続可能にする」に貢献することが可能となる。
【符号の説明】
【0078】
10…クライアント端末,20…コンテナオーケストレータ,30…コンテナ実行基盤,201…コンテナスケジューラ機能部,202…コンテナネットワーク管理機能部,203…コンテナネットワークリスト,204…リソース状態データベース,310,320,330…物理ノード,312,322,332…ネットワーク計測コンテナ,3150,3330…アプリケーションコンテナ,3152,3332…リソース監視コンテナ,T1…コンテナリソース使用量,T2…ノードリスト