JP2020154392A - コンテナ管理装置、方法およびプログラム - Google Patents

コンテナ管理装置、方法およびプログラム Download PDF

Info

Publication number
JP2020154392A
JP2020154392A JP2019049713A JP2019049713A JP2020154392A JP 2020154392 A JP2020154392 A JP 2020154392A JP 2019049713 A JP2019049713 A JP 2019049713A JP 2019049713 A JP2019049713 A JP 2019049713A JP 2020154392 A JP2020154392 A JP 2020154392A
Authority
JP
Japan
Prior art keywords
container
node
existing node
stopped
scale
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019049713A
Other languages
English (en)
Other versions
JP7230603B2 (ja
Inventor
尾崎 哲也
Tetsuya Ozaki
哲也 尾崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2019049713A priority Critical patent/JP7230603B2/ja
Publication of JP2020154392A publication Critical patent/JP2020154392A/ja
Application granted granted Critical
Publication of JP7230603B2 publication Critical patent/JP7230603B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】コンテナのスケールアウトを実行するときに、追加するコンテナを短時間で起動することができるコンテナ管理装置を提供する。【解決手段】スケールアウト制御部71は、スケールアウト対象となるコンテナである追加対象コンテナが特定された場合に、既存のノードに追加対象コンテナを起動できるリソースがあれば、その既存のノードで追加対象コンテナを起動する。特定部72は、既存のノードに追加対象コンテナを起動できるリソースがなければ、既存のノードで起動中のコンテナのうち停止させるコンテナを選択し、当該コンテナを停止させる既存のノードを特定する。起動部73は、特定された既存のノードで、選択されたコンテナを停止させ、特定された既存のノードで追加対象コンテナを起動する。【選択図】図8

Description

本発明は、コンテナ管理装置、コンテナ管理方法およびコンテナ管理プログラムに関し、特に、コンテナのスケールアウトを管理するコンテナ管理装置、コンテナ管理方法およびコンテナ管理プログラムに関する。
一般的なコンテナ技術は、サーバ上で稼働するコンテナを管理する上で、コンテナを起動するために最低限必要なリソース量を定め、サーバの適切なリソース管理を行う。また、コンテナの負荷状況(CPU(Central Processing Unit ))使用量や通信量等の状況)に応じて、コンテナのスケールアウト制御も実現可能である。
また、特許文献1には、物理サーバのコンテナの集約度を高めるためのコンテナ管理方法が記載されている。
特許文献2には、停止させる仮想実行単位を適切に選択するための仮想化管理方法が記載されている。
特開2017−37403号公報 国際公開第2018/003031号
一般的なコンテナ技術では、コンテナのスケールアウトを実行する際に、追加するコンテナの起動に必要なリソース量を確保できない場合、新たにノード(例えば、仮想マシン)を追加し、そのノードでコンテナを起動する。そのため、追加するコンテナの起動までに時間がかかるケースがあった。
そこで、本発明は、コンテナのスケールアウトを実行するときに、追加するコンテナを短時間で起動することができるコンテナ管理装置、コンテナ管理方法およびコンテナ管理プログラムを提供することを目的とする。
本発明によるコンテナ管理装置は、スケールアウト対象となるコンテナである追加対象コンテナが特定された場合に、既存のノードに追加対象コンテナを起動できるリソースがあれば、その既存のノードで追加対象コンテナを起動するスケールアウト制御部と、既存のノードに追加対象コンテナを起動できるリソースがなければ、既存のノードで起動中のコンテナのうち停止させるコンテナを選択し、当該コンテナを停止させる既存のノードを特定する特定部と、特定された既存のノードで、選択されたコンテナを停止させ、特定された既存のノードで追加対象コンテナを起動する起動部とを備えることを特徴とする。
本発明によるコンテナ管理方法は、コンピュータが、スケールアウト対象となるコンテナである追加対象コンテナが特定された場合に、既存のノードに追加対象コンテナを起動できるリソースがあれば、その既存のノードで追加対象コンテナを起動し、既存のノードに追加対象コンテナを起動できるリソースがなければ、既存のノードで起動中のコンテナのうち停止させるコンテナを選択し、当該コンテナを停止させる既存のノードを特定し、特定された既存のノードで、選択されたコンテナを停止させ、特定された既存のノードで追加対象コンテナを起動することを特徴とする。
本発明によるコンテナ管理プログラムは、コンピュータに、スケールアウト対象となるコンテナである追加対象コンテナが特定された場合に、既存のノードに追加対象コンテナを起動できるリソースがあれば、その既存のノードで追加対象コンテナを起動するスケールアウト制御処理、既存のノードに追加対象コンテナを起動できるリソースがなければ、既存のノードで起動中のコンテナのうち停止させるコンテナを選択し、当該コンテナを停止させる既存のノードを特定する特定処理、および、特定された既存のノードで、選択されたコンテナを停止させ、特定された既存のノードで追加対象コンテナを起動する起動処理を実行させることを特徴とする。
本発明によれば、コンテナのスケールアウトを実行するときに、追加するコンテナを短時間で起動することができる。
本発明の実施形態のコンテナ管理装置の構成例を示すブロック図である。 コンテナの起動情報の具体例を示す模式図である。 コンテナの消費リソース情報(時系列データ)の具体例を示す模式図である。 コンテナのスケールアウトを実施する処理の処理経過の例を示すフローチャートである。 ステップS102の処理経過の例を示すフローチャートである。 図4および図5に例示する処理の結果の例を示す模式図である。 本発明の実施形態のコンテナ管理装置1に係るコンピュータの構成例を示す概略ブロック図である。 本発明のコンテナ管理装置の概要を示すブロック図である。
以下、本発明の実施形態を図面を参照して説明する。
図1は、本発明の実施形態のコンテナ管理装置の構成例を示すブロック図である。本実施形態のコンテナ管理装置1は、複数のコンテナ用ノード3でコンテナ304を稼働させるための管理機能を有する。
コンテナ管理装置1は、通信ネットワーク2を介して、複数のコンテナ用ノード3と通信可能に接続されている。
まず、コンテナ用ノード3について説明する。コンテナ用ノード3は、コンテナ304を稼働させるためのコンテナ制御部303を有する。コンテナ用ノード3は、例えば、サーバであるが、物理サーバまたは仮想化されたサーバ上の仮想マシン、あるいは、クラウドサービスのインスタンスであってもよい。コンテナ用ノード3は、そのコンテナ用ノード3の性能情報、および、そのコンテナ用ノード3で稼働しているコンテナ304の性能情報を収集する性能情報収集部302を有する。また、コンテナ用ノード3は、オペレーティングシステム301を有する。
コンテナ管理装置1は、コンテナ性能情報蓄積部101と、コンテナ用ノード性能情報蓄積部102と、コンテナプロファイル蓄積部103と、情報収集部104と、コンテナ性能傾向分析部105と、コンテナ性能傾向蓄積部106と、スケールアウト判定部107と、スケールアウト制御部108と、停止対象コンテナ判定部109と、コンテナプロファイル変更部110と、コンテナ用ノード管理部111と、コンテナ管理部112とを備える。
情報収集部104は、各コンテナ用ノード3の性能情報収集部302を通じて、コンテナ304の性能情報、および、コンテナ用ノード3の性能情報を収集する。そして、情報収集部104は、コンテナ304の性能情報をコンテナ性能情報蓄積部101に格納し、コンテナ用ノード3の性能情報をコンテナ用ノード性能情報蓄積部102に格納する。また、情報収集部104は、コンテナ管理部112を通じて、稼働する各コンテナ304のプロファイル情報を収集し、そのプロファイル情報をコンテナプロファイル蓄積部103に格納する。
コンテナ性能情報蓄積部101は、コンテナ304の性能情報を記憶する記憶装置である。
コンテナ用ノード性能情報蓄積部102は、コンテナ用ノード3の性能情報を記憶する記憶装置である。
コンテナプロファイル蓄積部103は、コンテナ304のプロファイル情報を記憶する記憶装置である。
コンテナ性能傾向分析部105は、コンテナ性能情報蓄積部101に格納された性能情報に基づいて、コンテナ毎に負荷のかかる時間帯を分析し、その分析結果をコンテナ性能傾向蓄積部106に格納する。
コンテナ性能傾向蓄積部106は、コンテナ性能傾向分析部105による分析結果を記憶する記憶装置である。
スケールアウト判定部107は、稼働するコンテナ304の性能情報、および、コンテナ用ノード3の性能情報と、予め定められた閾値とを比較し、それぞれのスケールアウトの実施判定を行う。
スケールアウト制御部108は、スケールアウト判定部107からスケールアウト要求があった場合に、コンテナ用ノード管理部111を通じてコンテナ用ノード3の追加や削除を行ったり、コンテナ管理部112を通じてコンテナ304の起動要求や停止要求を行ったりする。
停止対象コンテナ判定部109は、スケールアウト判定部107において、コンテナ304のスケールアウトかつコンテナ用ノード3のスケールアウトの判定がなされた場合、稼働中のコンテナの中から、停止してもシステムへの影響が少ないコンテナを選出し、そのコンテナを停止した場合にスケールアウト対象コンテナの要求リソースを確保できるか否かを判定する。停止対象コンテナ判定部109は、停止対象コンテナに関して、コンテナプロファイル変更部110の処理を経て、コンテナ管理部112を通じて停止させる。停止対象コンテナの停止後、停止対象コンテナ判定部109は、スケールアウト対象コンテナを起動する。
なお、スケールアウト対象コンテナを追加対象コンテナと称する場合もある。
コンテナプロファイル変更部110は、停止対象コンテナ判定部109によって停止すると判定されたコンテナ304を停止した場合に、起動中のコンテナであってその停止対象コンテナと同じプロファイルを持つコンテナの数が最低起動数を下回らないように、そのプロファイルを一時的に変更することで、不必要なスケールアウトの発生を防ぐ。
コンテナ用ノード管理部111は、コンテナ用ノード3の追加または削除の要求があった場合に、その要求に従って、コンテナ用ノード3の追加または削除を実施する。また、コンテナ用ノード管理部111は、現在稼働しているコンテナ用ノード3の状態を管理する。
コンテナ管理部112は、コンテナ304の追加または削除の要求があった場合に、その要求に従って、コンテナ304の追加または削除を実施する。また、コンテナ管理部112は、現在稼働しているコンテナ304のプロファイルおよび状態を管理する。
情報収集部104、コンテナプロファイル変更部110、コンテナ用ノード管理部111およびコンテナ管理部112は、例えば、コンテナ管理プログラムに従って動作するコンピュータのCPU、および、そのコンピュータの通信インタフェース(図1において図示略)によって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からコンテナ管理プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、情報収集部104、コンテナプロファイル変更部110、コンテナ用ノード管理部111およびコンテナ管理部112として動作すればよい。また、コンテナ性能傾向分析部105、スケールアウト判定部107、スケールアウト制御部108および停止対象コンテナ判定部109は、コンテナ管理プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体からコンテナ管理プログラムを読み込み、そのプログラムに従って、コンテナ性能傾向分析部105、スケールアウト判定部107、スケールアウト制御部108および停止対象コンテナ判定部109として動作すればよい。コンテナ性能情報蓄積部101、コンテナ用ノード性能情報蓄積部102、コンテナプロファイル蓄積部103およびコンテナ性能傾向蓄積部106は、例えば、コンピュータが備える記憶装置によって実現される。
次に、動作について説明する。
情報収集部104は、定期的に、各コンテナ用ノード3および稼働するコンテナ304の情報を収集し、収集した情報を、コンテナ性能情報蓄積部101、コンテナ用ノード性能情報蓄積部102およびコンテナプロファイル蓄積部103に格納する。情報収集部104が収集する情報は、例えば、以下に示す情報であるが、以下に示す情報に限定されるわけではない。
[コンテナの起動情報]
コンテナ起動情報として、例えば、各コンテナ用ノード3で起動しているコンテナのリストが挙げられる。
[コンテナ管理のためのプロファイル情報]
コンテナ管理のためのプロファイル情報として、例えば、イメージID、起動に必要なリソース量(CPU、メモリ)、コンテナ最低起動数が挙げられる。
[コンテナの消費リソース情報(時系列データ)]
コンテナの消費リソース情報として、例えば、CPUやメモリの使用量、ディスクI/O(Input/Output)量、パケット量、アクセス回数等が挙げられる。
情報収集部104は、コンテナの起動情報を、コンテナ用ノード性能情報蓄積部102に格納する。
また、情報収集部104は、コンテナの消費リソース情報(時系列データ)を、コンテナ性能情報蓄積部101に格納する。
また、情報収集部104は、コンテナ管理のためのプロファイル情報を、コンテナプロファイル蓄積部103に格納する。
図2は、コンテナの起動情報の具体例を示す模式図である。図2では、コンテナ用ノード名に対応する、コンテナID、イメージID、RequestSize(メモリ) 、RequestSize(CPU) 、ReplicaSize(Min)およびReplicaSize(Max)の組み合わせを示している。
なお、コンテナは、ライブラリや実行ファイル等を含むバイナリデータ(イメージ)に基づいて起動する。イメージIDは、このバイナリデータ(イメージ)に割り当てられたIDである。
また、RequestSize(メモリ) は、コンテナの起動のためにコンテナ用ノード3に要求される最低限必要なメモリ使用量である。同様に、RequestSize(CPU)は、コンテナの起動のためにコンテナ用ノード3に要求される最低限必要なCPU使用量である。
また、ReplicaSize(Max)は、スケールアウトによりコンテナ数を増やした場合における最大起動数(コンテナ数の上限値)である。ReplicaSize(Min)は、負荷が減った際にスケールインによりコンテナ数を減らした場合における最低起動数(コンテナ数の下限値)である。
図3は、コンテナの消費リソース情報(時系列データ)の具体例を示す模式図である。図3では、アプリケーションに対応する、イメージID、および、リソースのタイプ毎の時系列データを示している。
情報収集部104は、定期的に、上記のように例示した情報を収集し、収集した情報を、コンテナ性能情報蓄積部101、コンテナ用ノード性能情報蓄積部102およびコンテナプロファイル蓄積部103に格納する。
また、コンテナ性能傾向分析部105は、定期的に、コンテナ性能情報蓄積部101に格納された情報に基づいてコンテナの性能情報の傾向を分析し、その分析結果をコンテナ性能傾向蓄積部106に格納する。コンテナの性能情報の傾向分析方法の例として、例えば、各コンテナ304のリソース消費量を時間単位に平均化しておくことで、コンテナのオートスケール時に負荷のかかる時間帯であるかを判断する方法等が挙げられるが、傾向分析方法はこの例に限定されない。
スケールアウト判定部107は、定期的に、コンテナ性能情報蓄積部101に格納されたコンテナの最新の性能情報(例えば、CPU使用量、メモリ使用量)、および、コンテナ用ノード性能情報蓄積部102に格納されたコンテナ用ノードの最新の性能情報(例えば、CPU使用量、メモリ使用量)と、予め設定された閾値とを比較する。そして、スケールアウト判定部107は、コンテナの性能情報が閾値を超過した場合に、コンテナのスケールアウトを実施すると判定する。また、スケールアウト判定部107は、コンテナ用ノードの性能情報が閾値を超過した場合に、コンテナ用ノードのスケールアウトを実施すると判定する。なお、上記の例では、コンテナの性能情報やコンテナ用ノードの性能情報の例として、CPU使用量やメモリ使用量を例示したが、コンテナの性能情報やコンテナ用ノードの性能情報として、ネットワーク通信量、アクセス数、ディスクI/O量等を用いてもよい。また、スケールアウト判定部107は、スケールアウトを実施するか否かを判定する際、スケールアウトにおける最大起動数も参照する。
図4は、コンテナのスケールアウトを実施する処理の処理経過の例を示すフローチャートである。
コンテナのスケールアウトを実施すると判定した場合、スケールアウト判定部107は、既存のコンテナ用ノード3に追加対象コンテナを起動するために最低限必要な性能リソースがあるか否かを、コンテナ用ノード管理部111を通じて判定する(ステップS101)。
性能リソースに余剰があるコンテナ用ノード3が存在するのであれば(ステップS101のYes)、スケールアウト制御部108は、コンテナ管理部112を通じて、そのコンテナ用ノード3で追加対象コンテナを起動する(ステップS109)。
性能リソースに余剰があるコンテナ用ノード3が存在しないならば(ステップS101のNo)、停止対象コンテナ判定部109は、既存のコンテナ用ノード3上で稼働している各コンテナのプロファイル情報と消費リソース傾向とに基づいて、停止可能なコンテナを判断する(ステップS102)。なお、既存のコンテナ用ノード3上で稼働している各コンテナのプロファイル情報は、コンテナプロファイル蓄積部103に格納されている。また、既存のコンテナ用ノード3上で稼働している各コンテナの消費リソース傾向は、コンテナ性能傾向蓄積部106に格納されている。
図5は、ステップS102の処理経過の例を示すフローチャートである。ステップS102において、停止対象コンテナ判定部109は、まず、各コンテナ用ノード3で起動しているコンテナの最新情報を、コンテナ管理部112を通じて取得する(ステップS201)。
次に、停止対象コンテナ判定部109は、停止対象コンテナを抽出する(ステップS202)。停止対象コンテナの条件の例として、「コンテナプロファイルにおける最低起動数が2以上である」という条件が挙げられる。本例では、停止対象コンテナ判定部109は、「コンテナプロファイルにおける最低起動数が2以上である」という条件を満たすコンテナを停止対象コンテナとして抽出する場合を例にして説明する。上記の条件を満たすコンテナの一部を停止して、起動しているコンテナが1つになったとしても、急激な処理増加に対するレスポンスは低下するが、そのコンテナによるサービスは消失しない。
また、ステップS202において、停止対象コンテナ判定部109は、上記の条件に加えて追加条件として、停止時点での負荷が高くない(換言すれば、スケールアウトが発生しない)、あるいは、停止時点が、処理の行われていない時間帯と判定されるという条件も用いてもよい。すなわち、停止対象コンテナ判定部109は、上記の条件とこの追加条件の双方を満たすコンテナを、停止対象コンテナとして抽出してもよい。なお、停止時点での負荷が高くないか否か、あるいは、停止時点が、処理の行われていない時間帯であるか否かは、コンテナ性能傾向蓄積部106に格納されている消費リソース傾向から判定可能である。
なお、コンテナ管理装置1は、特定のコンテナが停止対象コンテナとして抽出されることを回避する(換言すれば、特定のコンテナが停止対象コンテナとして抽出されないように設定する)手段を備えていてもよい。
停止対象コンテナ判定部109は、ステップS202で抽出したコンテナ群について、コンテナ用ノード3別に、コンテナを停止することで得られるリソース量(例えば、CPU、メモリの使用可能量)を、プロファイル情報に基づいて算出する(ステップS203)。
次に、停止対象コンテナ判定部109は、コンテナ用ノード3別に、ステップS202で抽出したコンテナ(抽出したコンテナは複数であってもよい。)を停止した場合に得られるリソース量の合算値(例えば、各コンテナを停止した場合に生じるCPU使用可能量、各コンテナを停止した場合に生じるメモリ使用可能量)と、追加対処コンテナの起動のために最低限必要なリソース量(例えば、RequestSize(CPU)、RequestSize(メモリ))とを比較する。そして、停止対象コンテナ判定部109は、ステップS202で抽出したコンテナを停止した場合に得られるリソース量の合算値が、追加対処コンテナの起動のために最低限必要なリソース量を上回るコンテナ用ノード3があるか否かを判定する(ステップS204)。
ステップS202で抽出したコンテナを停止した場合に得られるリソース量の合算値が、追加対処コンテナの起動のために最低限必要なリソース量を上回るコンテナ用ノード3があるならば(ステップS204のYes)、停止対象コンテナ判定部109は、そのコンテナ用ノード3の中から、条件を満たすコンテナ用ノードを選出する(ステップS205)。
ステップS205で用いる条件は、例えば、「追加対象コンテナの起動に必要なリソース量を得るために、停止させるコンテナの数が最小となる」という条件である。本実施形態では、停止対象コンテナ判定部109は、ステップS202で抽出したコンテナを停止した場合に得られるリソース量の合算値が、追加対処コンテナの起動のために最低限必要なリソース量を上回るコンテナ用ノード3の中から、「追加対象コンテナの起動に必要なリソース量を得るために、停止させるコンテナの数が最小となる」という条件という条件を満たすコンテナ用ノード3を選出する場合を例にする。
ステップS205でこのようにコンテナ用ノード3を選出すれば、停止させるコンテナの数が少なくてよいので、コンテナ停止によるサービス品質低下を抑えることができる。
ステップS205の次に、停止対象コンテナ判定部109は、コンテナプロファイル変更部110を通じて、停止させるコンテナのプロファイルにおける最低起動数を変更し、プロファイル情報に反映させる(ステップS206)。ステップS206は、コンテナの停止を契機としたスケールアウトの発生のループを防止するための処理である。
次に、停止対象コンテナ判定部109は、ステップS205で選出したコンテナ用ノード3において、停止対処コンテナを停止させる処理を、コンテナ管理部112を通じて行う(ステップS207)。
次に、停止対象コンテナ判定部109は、ステップS205で選出したコンテナ用ノード3で、コンテナの停止により使用可能となったリソースを使用して、追加対象コンテナを起動する(ステップS208)。停止対象コンテナ判定部109は、ステップS208の処理を、コンテナ管理部112を通じて行う。
また、ステップS202で抽出したコンテナを停止した場合に得られるリソース量の合算値が、追加対処コンテナの起動のために最低限必要なリソース量を上回るコンテナ用ノード3がないならば(ステップS204のNo)、停止対象コンテナ判定部109は、コンテナを停止しないと判定する(ステップS209)。
ステップS208またはステップS209を終了した場合、ステップS102(図4参照)の処理が終了する。
ステップS208の終了によってステップS102が終了した場合、スケールアウト判定部107は、ステップS207でコンテナを停止させたコンテナ用ノード以外のコンテナ用ノード3の中に、ステップS207で停止させたコンテナを起動可能なリソースの余剰を有するコンテナ用ノード3があるか否かを判定する(ステップS103)。
ステップS207で停止させたコンテナを起動可能なリソースの余剰を有するコンテナ用ノード3がある場合(ステップS103のYes)、スケールアウト制御部108は、ステップS207で停止させたコンテナの全部または一部を、そのコンテナ用ノード3で起動する(ステップS104)。スケールアウト制御部108は、ステップS104の処理を、コンテナ管理部112を通じて行う。
次に、スケールアウト制御部108は、ステップS207で停止させたコンテナの全部を、ステップS104で起動できたか否かを判定する(ステップS105)。
ステップS207で停止させたコンテナを起動可能なリソースの余剰を有するコンテナ用ノード3がない場合(ステップS103のNo)、または、ステップS207で停止させたコンテナのうちステップS104で起動できなかったコンテナが存在する場合(ステップS105のNo)、スケールアウト制御部108は、コンテナ用ノード管理部111を通じて、新たなコンテナ用ノード3を追加する(ステップS106)。
なお、ステップS207で停止させたコンテナのうちステップS104で起動できなかったコンテナが存在しない場合(ステップS105のNo)、ステップS108に移行する。
ステップS106で新たなコンテナ用ノード3が追加され、そのコンテナ用ノード3でコンテナを起動できるようになったら、スケールアウト制御部108は、ステップS207で停止させたコンテナのうち、まだ起動していないコンテナの全てを、新たに追加されたコンテナ用ノード3で起動する(ステップS107)。スケールアウト制御部108は、ステップS107の処理を、コンテナ管理部112を通じて行う。この結果、ステップS206以前に起動していたコンテナは全て起動した状態になる。
次に、停止対象コンテナ判定部109は、コンテナプロファイル変更部110を通じて、ステップS206で変更したプロファイルを戻し、プロファイル情報に反映させる(ステップS108)。すなわち、停止対象コンテナ判定部109は、ステップS207で停止させたコンテナのプロファイルにおける最低起動数を元に戻し、プロファイル情報に反映させる。この結果、以後、スケールアウト要求があった場合にも、コンテナプロファイルに応じたコンテナの起動数を確保できる。
なお、ステップS209(図5参照)の終了によってステップS102が終了した場合には、ステップS103の判定処理をスキップして、スケールアウト制御部108が、コンテナ用ノード管理部111を通じて、新たなコンテナ用ノード3を追加する(ステップS106)。
そして、ステップS107では、スケールアウト制御部108は、コンテナ管理部112を通じて、追加対象コンテナをステップS106で追加されたコンテナ用ノード3で起動すればよい。
図4および図5に例示する処理の結果の例を、図6に示す。図6では、図1に示す例において「コンテナC」のスケールアウトを実施すると判定され、停止対象コンテナとしてコンテナBが選ばれ、コンテナおよびコンテナ用ノード3それぞれをスケールアウトした結果を示している。
本実施形態によれば、既存のコンテナ用ノード3で起動中のコンテナのうち停止させるコンテナを抽出し、そのコンテナを停止させる既存のコンテナ用ノード3を選出する。そして、そのコンテナ用ノード3で、抽出されたコンテナを停止させ、そのコンテナ用ノード3で、追加対象コンテナを起動する。従って、新たなコンテナ用ノードの起動を待つ必要がなく、追加対象コンテナを起動することができる。従って、コンテナのスケールアウトを実行するときに、追加するコンテナを短時間で起動することができる。
また、ステップS202で抽出する停止対象コンテナの条件として、例えば、「コンテナプロファイルにおける最低起動数が2以上である」という条件を用いることで、コンテナが提供するサービス品質も最低限維持したまま、停止対象コンテナを起動するノードを変更することができる。また、停止時点での負荷が高くない、あるいは、停止時点が、処理の行われていない時間帯と判定されるという条件を、追加条件として用いた場合も、コンテナが提供するサービス品質の低下を抑えることができる。
次に、上記の実施形態の変形例について説明する。
上記の実施形態において、スケールアウト判定部107およびスケールアウト制御部108は、コンテナ304のスケールインやコンテナ用ノード3のスケールインを目的とする機能を備えていてもよい。
また、コンテナ管理装置1をコントロールする運用監視装置(図示略)を介して、手動でスケールアウトの要求をコンテナ管理装置1に入力し、コンテナ管理装置1は、そのスケールアウトの要求に応じて、図4および図5に例示する処理を実行してもよい。
図7は、本発明の実施形態のコンテナ管理装置1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、通信インタフェース1006とを備える。
本発明の実施形態のコンテナ管理装置1は、コンピュータ1000によって実現される。コンテナ管理装置1の動作は、コンテナ管理プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、そのコンテナ管理プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのコンテナ管理プログラムに従って、上記の実施形態で説明した処理を実行する。なお、コンテナ管理プログラムは、オペレーティングシステム上のミドルウェアであってもよい。
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD−ROM(Compact Disk Read Only Memory )、DVD−ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、そのプログラムに従って上記の各実施形態で説明した処理を実行してもよい。
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要について説明する。図8は、本発明のコンテナ管理装置の概要を示すブロック図である。本発明のコンテナ管理装置は、スケールアウト制御部71と、特定部72と、起動部73とを備える。
スケールアウト制御部71(例えば、ステップS109を実行するスケールアウト制御部108)は、スケールアウト対象となるコンテナである追加対象コンテナが特定された場合に、既存のノードに追加対象コンテナを起動できるリソースがあれば、その既存のノードで追加対象コンテナを起動する。
特定部72(例えば、ステップS202,S205を実行する停止対象コンテナ判定部109)は、既存のノードに追加対象コンテナを起動できるリソースがなければ、既存のノードで起動中のコンテナのうち停止させるコンテナを選択し、当該コンテナを停止させる既存のノードを特定する。
起動部73(例えば、ステップS207,S208を実行する停止対象コンテナ判定部109)は、特定された既存のノードで、選択されたコンテナを停止させ、特定された既存のノードで追加対象コンテナを起動する。
そのような構成によって、コンテナのスケールアウトを実行するときに、追加するコンテナを短時間で起動することができる。
また、スケールアウト制御部71が、停止されたコンテナを起動できる既存のノードがあれば、停止されたコンテナを当該既存のノードで起動する(例えば、ステップS104を実行する)構成であってもよい。
また、スケールアウト制御部71が、停止されたコンテナを起動できる既存のノードがなければ、新たなノードを追加し、追加したノードで、停止されたコンテナを起動する(例えば、ステップS106,S107を実行する)構成であってもよい。
本発明は、コンテナのスケールアウトを管理するコンテナ管理装置に好適に適用される。
1 コンテナ管理装置
3 コンテナ用ノード
101 コンテナ性能情報蓄積部
102 コンテナ用ノード性能情報蓄積部
103 コンテナプロファイル蓄積部
104 情報収集部
105 コンテナ性能傾向分析部
106 コンテナ性能傾向蓄積部
107 スケールアウト判定部
108 スケールアウト制御部
109 停止対象コンテナ判定部
110 コンテナプロファイル変更部
111 コンテナ用ノード管理部
112 コンテナ管理部
302 性能情報収集部
303 コンテナ制御部
304 コンテナ

Claims (7)

  1. スケールアウト対象となるコンテナである追加対象コンテナが特定された場合に、既存のノードに前記追加対象コンテナを起動できるリソースがあれば、前記既存のノードで前記追加対象コンテナを起動するスケールアウト制御部と、
    既存のノードに前記追加対象コンテナを起動できるリソースがなければ、既存のノードで起動中のコンテナのうち停止させるコンテナを選択し、当該コンテナを停止させる既存のノードを特定する特定部と、
    特定された既存のノードで、選択されたコンテナを停止させ、前記特定された既存のノードで前記追加対象コンテナを起動する起動部とを備える
    ことを特徴とするコンテナ管理装置。
  2. スケールアウト制御部は、
    停止されたコンテナを起動できる既存のノードがあれば、前記停止されたコンテナを当該既存のノードで起動する
    請求項1に記載のコンテナ管理装置。
  3. スケールアウト制御部は、
    停止されたコンテナを起動できる既存のノードがなければ、新たなノードを追加し、追加したノードで、前記停止されたコンテナを起動する
    請求項2に記載のコンテナ管理装置。
  4. コンピュータが、
    スケールアウト対象となるコンテナである追加対象コンテナが特定された場合に、既存のノードに前記追加対象コンテナを起動できるリソースがあれば、前記既存のノードで前記追加対象コンテナを起動し、
    既存のノードに前記追加対象コンテナを起動できるリソースがなければ、既存のノードで起動中のコンテナのうち停止させるコンテナを選択し、当該コンテナを停止させる既存のノードを特定し、
    特定された既存のノードで、選択されたコンテナを停止させ、前記特定された既存のノードで前記追加対象コンテナを起動する
    ことを特徴とするコンテナ管理方法。
  5. コンピュータが、
    停止されたコンテナを起動できる既存のノードがあれば、前記停止されたコンテナを当該既存のノードで起動する
    請求項4に記載のコンテナ管理方法。
  6. コンピュータに、
    スケールアウト対象となるコンテナである追加対象コンテナが特定された場合に、既存のノードに前記追加対象コンテナを起動できるリソースがあれば、前記既存のノードで前記追加対象コンテナを起動するスケールアウト制御処理、
    既存のノードに前記追加対象コンテナを起動できるリソースがなければ、既存のノードで起動中のコンテナのうち停止させるコンテナを選択し、当該コンテナを停止させる既存のノードを特定する特定処理、および、
    特定された既存のノードで、選択されたコンテナを停止させ、前記特定された既存のノードで前記追加対象コンテナを起動する起動処理
    を実行させるためのコンテナ管理プログラム。
  7. コンピュータに、
    停止されたコンテナを起動できる既存のノードがあれば、前記停止されたコンテナを当該既存のノードで起動する処理
    を実行させる請求項6に記載のコンテナ管理プログラム。
JP2019049713A 2019-03-18 2019-03-18 コンテナ管理装置、方法およびプログラム Active JP7230603B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019049713A JP7230603B2 (ja) 2019-03-18 2019-03-18 コンテナ管理装置、方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019049713A JP7230603B2 (ja) 2019-03-18 2019-03-18 コンテナ管理装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2020154392A true JP2020154392A (ja) 2020-09-24
JP7230603B2 JP7230603B2 (ja) 2023-03-01

Family

ID=72558958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019049713A Active JP7230603B2 (ja) 2019-03-18 2019-03-18 コンテナ管理装置、方法およびプログラム

Country Status (1)

Country Link
JP (1) JP7230603B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017037403A (ja) * 2015-08-07 2017-02-16 株式会社日立製作所 計算機システム及びコンテナ管理方法
JP2017107274A (ja) * 2015-12-07 2017-06-15 富士通株式会社 仮想マシン増設方法、情報処理装置および仮想マシン増設システム
US20180225155A1 (en) * 2017-02-08 2018-08-09 Dell Products L.P. Workload optimization system
JP2018190355A (ja) * 2017-05-11 2018-11-29 日本電信電話株式会社 リソース管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017037403A (ja) * 2015-08-07 2017-02-16 株式会社日立製作所 計算機システム及びコンテナ管理方法
JP2017107274A (ja) * 2015-12-07 2017-06-15 富士通株式会社 仮想マシン増設方法、情報処理装置および仮想マシン増設システム
US20180225155A1 (en) * 2017-02-08 2018-08-09 Dell Products L.P. Workload optimization system
JP2018190355A (ja) * 2017-05-11 2018-11-29 日本電信電話株式会社 リソース管理方法

Also Published As

Publication number Publication date
JP7230603B2 (ja) 2023-03-01

Similar Documents

Publication Publication Date Title
TWI752994B (zh) 應用的擴容方法、裝置和系統
JP6219512B2 (ja) 仮想ハドゥープマネジャ
US8826291B2 (en) Processing system
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
WO2012056596A1 (ja) 計算機システム及び処理制御方法
US9244737B2 (en) Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium
JP6032089B2 (ja) 管理プログラム、装置及び方法
CN112650575B (zh) 资源调度方法、装置和云端服务系统
JP2011118525A (ja) サーバ管理装置とサーバ管理方法およびサーバ管理プログラム
JP2017219972A (ja) コンピュータプログラム、情報処理方法、管理ノードおよび情報処理システム
JP6962138B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP2020160775A (ja) コンテナ起動ホスト選択装置、コンテナ起動ホスト選択システム、コンテナ起動ホスト選択方法及びプログラム
US20150026694A1 (en) Method of processing information, storage medium, and information processing apparatus
JP7176633B2 (ja) 仮想化基盤制御装置、仮想化基盤制御方法および仮想化基盤制御プログラム
JP6488910B2 (ja) 制御方法、制御プログラム、及び情報処理装置
JP2020154392A (ja) コンテナ管理装置、方法およびプログラム
JP2007179246A (ja) 計算機管理方法、計算機管理プログラム、および、計算機管理サーバ
JP2014206805A (ja) 制御装置
KR20160043706A (ko) 가상 머신 스케일링 장치 및 그 방법
US11442793B1 (en) Fully dynamic virtual proxies for data protection
JP5601587B2 (ja) プロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラム
CN111090627A (zh) 基于池化的日志存储方法、装置、计算机设备及存储介质
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
JP2017037539A (ja) サーバ制御プログラム、サーバ制御方法およびサーバ制御装置
JP2020064567A (ja) 情報処理装置、仮想マシン管理プログラムおよび仮想マシン管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230130

R151 Written notification of patent or utility model registration

Ref document number: 7230603

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151