JP7459014B2 - コンテナ管理装置、及びコンテナ管理プログラム - Google Patents

コンテナ管理装置、及びコンテナ管理プログラム Download PDF

Info

Publication number
JP7459014B2
JP7459014B2 JP2021084145A JP2021084145A JP7459014B2 JP 7459014 B2 JP7459014 B2 JP 7459014B2 JP 2021084145 A JP2021084145 A JP 2021084145A JP 2021084145 A JP2021084145 A JP 2021084145A JP 7459014 B2 JP7459014 B2 JP 7459014B2
Authority
JP
Japan
Prior art keywords
workload
microservice
service
containers
container management
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.)
Active
Application number
JP2021084145A
Other languages
English (en)
Other versions
JP2022177712A (ja
Inventor
忠翰 李
ビョングォン チェ
ジンウ パク
ドンス ハン
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2021084145A priority Critical patent/JP7459014B2/ja
Priority to US17/745,069 priority patent/US20220374268A1/en
Publication of JP2022177712A publication Critical patent/JP2022177712A/ja
Application granted granted Critical
Publication of JP7459014B2 publication Critical patent/JP7459014B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、コンテナ管理装置、及びコンテナ管理プログラムに関する。
従来技術として、各々のマイクロサービスにおけるリソースのワークロード(処理負荷)に合わせて、コンテナ(Pod)を動的に削減、及び増設して、マイクロサービスにおけるリソース量を制御して処理を行う技術が提案されている(例えば、非特許文献1参照)。
当該技術では、各々のマイクロサービスにおいてリソースのワークロードの閾値を設定し、ワークロードが閾値を超えた場合、マイクロサービス毎にコンテナを増設してリソース量を増やす制御を行う。
"Kubernetes"、[令和3年3月10日検索]、インターネット<URL: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/>
ところで、近年、各々のアプリケーションを配置したマイクロサービスをそれぞれ接続し、接続されたマイクロサービス間において連携して処理を行うサービスが提供されている。当該サービスでは、マイクロサービス間をワークロードが伝搬しながら処理を行っている。
しかしながら、非特許文献1では、マイクロサービスに生じるワークロードに合わせてコンテナの増設を行うため、ワークロードが急激に変動した場合、ワークロードがマイクロサービスの末端まで伝搬するのに時間を要し、各々のマイクロサービスにおけるワークロードが即座に把握できないことがある。そのため、当該サービスは、各々のマイクロサービスに適切なリソース量を即座に割り当てることができず、全体的なサービスのサービス品質(QoS:Quality of Service)の低下を抑制できるとは限らなかった。
本発明は、急にワークロードが変動した場合であっても、全体的なサービスのサービス品質の低下を抑制できるコンテナ管理装置及びコンテナ管理プログラムを提供することを目的とする。
請求項1に記載のコンテナ管理装置は、処理を行うためのコンテナが配置されたマイクロサービスを各々接続したサービスにおいて、前記サービスに係るワークロード、前記マイクロサービスがどのように接続されているかに関する情報である接続情報、及び前記ワークロードに係る各々の処理がマイクロサービス間を伝搬するサービスチェインを取得する取得部と、各々のマイクロサービスにおけるワークロード、及びリソース使用量の関係を表す予測モデルを用いて、取得した前記ワークロード、前記接続情報、及び前記サービスチェインからマイクロサービス毎のリソース使用量を導出し、コンテナの数を予測する予測部と、予測された前記マイクロサービス毎のコンテナの数に応じて、マイクロサービスに同一契機に配置するコンテナを制御する制御部と、を備えている。
コンテナ管理装置は、取得部が、サービスに係るワークロード、マイクロサービスがどのように接続されているかに関する接続情報、及びワークロードが伝搬するサービスチェインを取得する。コンテナ管理装置は、予測部がマイクロサービスにおけるワークロード、及びリソース使用量の関係を表す予測モデルを用いて、サービスに係るワークロード、接続情報、及びサービスチェインからリソースの使用量を導出し、コンテナの数を予測する。コンテナ管理装置は、制御部が、予測されたコンテナの数に応じて、マイクロサービスに同一契機に配置するコンテナを制御する制御する。当該コンテナ管理装置によれば、急にワークロードが変動した場合であっても、全体的なサービスのサービス品質の低下を抑制できる。
請求項2に記載のコンテナ管理装置は、請求項1に記載のコンテナ管理装置において、前記取得部は、過去のマイクロサービス毎のワークロード、及びリソース使用量の情報であるリソース情報をさらに取得し、前記リソース情報を用いて、前記予測モデルを生成するモデル生成部をさらに備える。
請求項2に記載のコンテナ管理装置では、過去のマイクロサービス毎のワークロード、及びリソース使用量であるリソース情報をさらに取得し、モデル生成部がリソース情報を用いて予測モデルを生成する。当該コンテナ管理装置によれば、過去のワークロードに基づいて、コンテナを配置することができる。
請求項3に記載のコンテナ管理装置は、請求項2に記載のコンテナ管理装置において、前記予測モデルは、予め定められた回帰モデル、又はガウス過程によって定められた回帰モデルである。
請求項3に記載のコンテナ管理装置によれば、各々のマイクロサービスにおけるリソース使用量を予測することができる。
請求項4に記載のコンテナ管理装置は、請求項3に記載のコンテナ管理装置において、前記モデル生成部は、前記リソース情報のデータ量に応じて、予め定められた回帰モデル、又はガウス過程によって定められた回帰モデルを選択する。
請求項4に記載のコンテナ管理装置によれば、過去のワークロードのデータ量に応じて精度の高い予測モデルを選択することができる。
請求項5に記載のコンテナ管理装置は、請求項1から請求項4の何れか1項に記載のコンテナ管理装置において、前記予測部は、前記サービスチェインから処理が伝搬するマイクロサービスを特定して、各々のマイクロサービスのワークロードを推定し、前記予測モデルを用いて、推定した前記マイクロサービス毎のワークロードから、前記リソース使用量を導出する。
請求項5に記載のコンテナ管理装置によれば、マイクロサービス間の接続関係を考慮してコンテナを配置することができる。
本発明によれば、急にワークロードが変動した場合であっても、全体的なサービスのサービス品質の低下を抑制できる。
本実施形態に係る複数のマイクロサービスによって構成されたサービスが提供する画面の一例を示す正面図である。 本実施形態に係る複数のマイクロサービスによって構成されたサービスのネットワークの一例を示す模式図である。 本実施形態に係るコンテナ管理装置のハードウェア構成の一例を示すブロック図である。 本実施形態に係るコンテナ管理装置の機能構成の一例を示すブロック図である。 本実施形態に係るワークロード、及びリソース使用量の関係の一例を示すグラフである。 本実施形態に係るガウス過程の説明に供する処理負荷(ワークロード)及びリソース使用量の関係の一例を示すグラフである。 本実施形態に係るコンテナの数を予測する処理の流れの一例を示すフローチャートである。
以下、図面を参照して、本発明を実施するための形態例を詳細に説明する。本発明は、サービスに生じるワークロード(処理負荷)に応じて、サービス全体のマイクロサービスに、処理を実行するコンテナを略同時に配置(スケールアウト)する制御を行うコンテナ管理装置10についてなされたものである。ここで、本実施形態に係るコンテナとは、サーバのメモリ及びCPU等のリソースを複数に分割して割り当てたアプリケーションの実行環境である。なお、本実施形態に係る「略同時」は「同一契機」の一例である。
まず、図1、及び図2を参照して、本実施形態に係るサービス、及びマイクロサービスについて説明する。なお、本実施形態では、サービスが処理として、画面を表示するアプリケーションが実行された場合、図1に示す商品の詳細画面100を表示する形態について説明する。一例として図1に示すように、商品の詳細画面100は、商品詳細領域110、商品レビュー領域120、及び商品の評価値領域130を備えている。
サービスは、商品の詳細画面100、商品詳細領域110、商品レビュー領域120、及び商品の評価値領域130の各々を表示する処理を行うマイクロサービスを備えている。サービスは、各々のマイクロサービスが順に処理を実行することによって、サービスの処理として商品の詳細画面100が表示される。一例として図2に示すように、各々のマイクロサービスは、それぞれ接続され、各々のマイクロサービス間を処理が伝搬することによって一連の処理を実行する。
図2は、本実施形態に係るサービスのネットワークの一例を示す模式図である。図2に示すように、サービス140は、複数のマイクロサービス160が接続されて構成されている。例えば、サービス140が処理として、画面を表示するアプリケーションが実行された場合、マイクロサービス160Aは、商品の詳細画面100を表示する処理を行い、マイクロサービス160Bは、商品詳細領域110を表示する処理を行う。また、マイクロサービス160Cは、商品レビュー領域120を表示する処理を行い、マイクロサービス160Dは、商品の評価値領域130を表示する処理を行う。
サービス140は、商品の詳細画面100を表示するアプリケーションが実行された場合、サービスの接続情報、及びサービスチェインに基づいて、各々のマイクロサービスに処理を伝搬させて、上述した処理を実行させる。
ここで、接続情報とは、全体のサービスの中で各々のマイクロサービスがどのように接続されているか(ネットワークトポロジー)に関する情報である。なお、本実施形態に係るサービスのネットワークは、ツリー型である形態について説明する。しかし、これに限定されない。サービスのネットワークは、バス型、スター型、リング型、及びコネクト型等の如何なるネットワークであってもよい。
また、サービスチェインは、非特許文献1のKubernetesにおける後述するIngress150の分類器によって分類される。Ingressは、例えば、サービスに係るWEBブラウザやアプリケーションが実行され、サービス140にワークロードが生じた際に、接続情報を用いて、ワークロードに係る処理に応じたマイクロサービスを選定する。換言すると、サービスチェインには、接続情報に基づいて、ワークロードに係る処理を実行するマイクロサービス、及びワークロードが伝搬するマイクロサービスの順番が設定されている。
例えば、図2に示すサービス140が処理として商品の詳細画面100を表示するアプリケーションが実行された場合、Ingress150の分類器は、接続情報に基づいて、ワークロードをサービスチェイン170A、及びサービスチェイン170Bに分類する。サービスチェイン170Aは、フロントエンドであるマイクロサービス160Aから、バックエンドであるマイクロサービス160Bへ処理を伝搬するフローを示している。また、サービスチェイン170Bは、フロントエンドであるマイクロサービス160Aから、マイクロサービス160Cを経由して、バックエンドであるマイクロサービス160Dへ処理を伝搬するフローを示している。
サービス140は、サービスチェイン170A、及びサービスチェイン170Bに基づいて、サービス140における各々のマイクロサービス160に処理を実行させることによってサービス全体の処理を実行する。
従来技術では、各々のマイクロサービス160にワークロードが伝搬した際に、マイクロサービスが処理を行うために必要なリソースが、設定したリソースの閾値以上であるか否かを判定し、コンテナを配置するか否かを判定して、コンテナを制御している。本実施形態に係るコンテナ管理装置10は、サービス140(例えば、マイクロサービス160A)にワークロードが生じた際に、サービス140全体の各々のマイクロサービス160における必要なコンテナの数を予測して、コンテナの配置を制御する。
次に、図3を参照して、本実施形態に係るコンテナ管理装置10のハードウェア構成について説明する。図3は、本実施形態に係るコンテナ管理装置10のハードウェア構成の一例を示すブロック図である。
コンテナ管理装置10は、サービスに生じるワークロード(処理負荷)に応じて、サービス全体のマイクロサービスに、略同時にコンテナ配置する制御を行うサーバ、又は端末である形態について説明する。
図3に示すように、本実施形態に係るコンテナ管理装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、モニタ16、及び通信インターフェース(通信I/F)17を含んで構成されている。CPU11、ROM12、RAM13、ストレージ14、入力部15、モニタ16、及び通信I/F17の各々は、バス18により相互に接続されている。
CPU11は、コンテナ管理装置10の全体を統括し、制御する。ROM12は、本実施形態で用いるコンテナ管理プログラムを含む各種プログラム及びデータ等を記憶している。RAM13は、各種プログラムの実行時のワークエリアとして用いられるメモリである。CPU11は、ROM12に記憶されたプログラムをRAM13に展開して実行することにより、サービスに生じるワークロードに応じて、マイクロサービスにコンテナを配置する処理を行う。ストレージ14は、一例としてHDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリ等である。なお、ストレージ14には、コンテナ管理プログラム等を記憶してもよい。入力部15は、文字の入力等を受け付けるマウス、及びキーボード等である。モニタ16は、文字及び画像等を表示する。通信I/F17は、データの送受信を行う。
次に、図4を参照して、コンテナ管理装置10の機能構成について説明する。図4は、本実施形態に係るコンテナ管理装置10の機能的な構成の一例を示すブロック図である。
図4に示すように、コンテナ管理装置10は、取得部21、モデル生成部22、記憶部23、予測部24、及び制御部25を備えている。また、取得部21は、ワークロード取得部21A、接続情報取得部21B、サービスチェイン取得部21C、及びリソース情報取得部21Dを備えている。CPU11がコンテナ管理プログラムを実行することで、取得部21、モデル生成部22、記憶部23、予測部24、及び制御部25として機能する。
取得部21は、現にサービスに生じるワークロード、サービスの接続情報(ネットワークトポロジー)、及びワークロードに係るサービスチェインを取得する。
具体的には、ワークロード取得部21Aは、現にサービスに生じているワークロードに関する情報を取得する。例えば、ワークロード取得部21Aは、ワークロードに関する情報として、単位時間当たりのトランザクション量(TPS:Transactoins Per Second)を取得する。ここで、トランザクションとは、例えば、WEBブラウザやアプリケーションの画面を表示する指示を受けてから画面を表示するまでの処理を一つの単位とした一連の処理である。
接続情報取得部21Bは、サービスの接続情報(ネットワークトポロジー)を取得する。
サービスチェイン取得部21Cは、ワークロード、及び接続情報を用いて生成された、ワークロードがマイクロサービス間を伝搬するサービスチェインを取得する。
リソース情報取得部21Dは、各々のマイクロサービスにおける過去のワークロード、及びリソース使用量を示す情報であるリソース情報を取得する。
モデル生成部22は、取得したリソース情報を用いて、マイクロサービス毎にワークロード、及びリソース使用量の関係を示す予測モデルを生成する。具体的には、モデル生成部22は、予測モデルとして、マイクロサービス毎に予め定められた線形回帰モデルとして、一例として図5に示すグラフを生成する。
図5は、本実施形態に係るワークロード、及びリソース使用量の関係の一例を示すグラフである。図5の各々のグラフにおける横軸はマイクロサービスに生じたワークロードであり、縦軸は、ワークロードに対応するリソース使用量(CPU使用率)である。
図5(a)は、商品の詳細画面100を表示する処理を実行するマイクロサービス160Aに係るグラフであり、図5(b)は、商品詳細領域110を表示する処理を実行するマイクロサービス160Bに係るグラフである。また、図5(c)は、商品レビュー領域120を表示する処理を実行するマイクロサービス160Cに係るグラフであり、図5(d)は、商品の評価値領域130を表示する処理を実行するマイクロサービス160Dに係るグラフである。
なお、本実施形態に係るモデル生成部22は、線形回帰モデルを生成する形態について説明した。しかし、これに限定されない。モデル生成部22は、非線形回帰モデルを生成してもよいし、ガウス過程によって定められた回帰モデルを生成してもよいし、如何なる回帰モデルを生成してもよい。
例えば、一例として図6に示すように、ガウス過程による回帰モデルは、変数に対する観測値の相関を考慮する事によって、未知の変数に対しても観測値を補間及び予測する事が可能なモデルである。ガウス過程による回帰モデルは、一般的に変数と観測値との相関をガウス分布によって決定するというもので、離散的な観測値を確率的に連続的に補間ができるのみならず、予測誤差を算出可能である。なお、図6に示す回帰線30が補完された観測値を示し、網掛けされた領域31が予測誤差を示す。
また、リソース情報の特徴である統計値及び確率分布を用いて、他の予測モデルを生成してもよい。他の予測モデルは、例えば、過去のワークロードと、対応するコンテナの数と、の統計値及び確率分布から、必要なコンテナの数を予測するベイジアンモデルであってもよい。また、他の予測モデルは、過去にコンテナを配置したコンテナの数の時系列を考慮して、必要なコンテナの数を予測する自己回帰モデルであってもよい。
また、本実施形態に係るモデル生成部22は、予め定められた予測モデルを生成する形態について説明した。しかし、これに限定されない。モデル生成部22によって生成する予測モデルが選択されてもよい。例えば、リソース情報のデータ量に応じて、線形回帰モデル、又はガウス過程による回帰モデルを選択してもよい。具体的には、モデル生成部22は、取得したリソース情報のデータ量が予め定められた閾値より多い場合、線形回帰モデルを生成し、リソース情報のデータ量が予め定められた閾値以下である場合、ガウス過程による回帰モデルを生成してもよい。
記憶部23は、モデル生成部22によって生成された予測モデル23Aを記憶する。
予測部24は、記憶部23に記憶されている予測モデル23Aを用いて、取得したワークロード、接続情報、及びサービスチェインからマイクロサービス毎に必要なコンテナの数を予測する。
具体的には、予測部24は、取得したサービスチェインから処理が伝搬するマイクロサービスを特定し、ワークロード、及びサービスチェインを用いて、各々のマイクロサービスに係るワークロードを推定する。予測部24は、記憶部23に記憶されている予測モデル23Aを用いて、マイクロサービス毎に、推定したワークロードに対するリソース使用量を導出し、マイクロサービス毎に必要なコンテナの数を予測する。
なお、1つのコンテナに割り当てられるリソース使用量は、予め設定されているものとする。例えば、1コンテナに対して、100millicoreのリソース使用量を割り当てる設定がされている場合において、予測部24は、マイクロサービスに必要なリソース使用量を500millicoreと導出した場合、必要なコンテナの数は5つと予測する。
制御部25は、予測したコンテナの数に応じて、コンテナを複数のマイクロサービスに略同時に配置する制御を行う。具体的には、制御部25は、マイクロサービスに現に配置されているコンテナの数が予測したコンテナの数より少ない場合、対応するマイクロサービスに、予測した数のコンテナを配置する。
なお、本実施形態に係る制御部25は、マイクロサービスに現に配置されているコンテナの数が予測したコンテナの数より少ない場合、コンテナを配置する制御を行う形態について説明した。しかし、これに限定されない。マイクロサービスに現に配置されているコンテナの数が予測したコンテナの数より多い場合、コンテナを削減する制御を行ってもよい。
(制御の流れ)
次に、図7を参照して、本実施形態に係るコンテナ管理装置10の作用について説明する。図7は、本実施形態に係るコンテナの数を予測する処理の一例を示すフローチャートである。CPU11がROM12又はストレージ14からコンテナ管理プログラムを読み出し、実行することによって、図7に示すコンテナ管理プログラムが実行される。図7に示すコンテナ管理プログラムは、例えば、コンテナの数を予測する指示が入力された場合、実行される。
ステップS101において、CPU11は、マイクロサービス毎における過去のワークロード、及び過去のリソース使用量であるリソース情報を取得する。
ステップS102において、CPU11は、リソース情報を用いて、マイクロサービス毎に、ワークロード、及びリソース使用量の関係を示す予測モデルを生成し、記憶部23に記憶する。
ステップS103において、CPU11は、サービスにワークロードが生じたか否かの判定を行う。サービスにワークロードが生じた場合(ステップS103:YES)、CPU11は、ステップS104に移行する。一方、サービスにワークロードが生じていない場合(ステップS103:NO)、CPU11は、サービスにワークロードが生じるまで待機する。
ステップS104において、CPU11は、現にサービスに生じているワークロード、ワークロードのサービスチェイン、及びサービスの接続情報を取得する。
ステップS105において、CPU11は、ワークロード、サービスチェイン、及び接続情報を用いて、マイクロサービス毎の現在のワークロードを推定する。
ステップS106において、CPU11は、マイクロサービス毎の予測モデルを用いて、リソース使用量を導出し、必要なコンテナの数を予測する。
ステップS107において、CPU11は、予測したコンテナの数に応じて、コンテナを略同時に配置する。
ステップS108において、CPU11は、処理を終了するか否かの判定を行う。処理を終了する場合(ステップS108:YES)、CPU11は、処理を終了する。一方、処理を終了しない場合(ステップS108:NO)、CPU11は、ステップS101に移行して、リソース情報を取得する。
(第1の実施形態のまとめ)
本実施形態のコンテナ管理装置10は、取得部21がリソース情報、ワークロード、サービスチェイン、及び接続情報を取得し、モデル生成部22がリソース情報を用いて、マイクロサービス毎のワークロード、及びリソース使用量の関係を示す予測モデルを生成する。コンテナ管理装置10は、予測部24が生成した予測モデルを用いて、ワークロード、サービスチェイン、及び接続情報からマイクロサービス毎にワークロードに対応するためのコンテナの数を予測し、制御部25が予測したコンテナの数に応じて、コンテナを配置する。本実施形態に係るコンテナ管理装置10は、サービスにワークロードが生じた際に、マイクロサービス毎に必要となるコンテナの数を予測して、各々のマイクロサービスに略同時にコンテナを配置する。
以上、本実施形態によれば、急にワークロードが変動した場合であっても、全体的なサービスのサービス品質の低下を抑制できる。
[備考]
なお、本実施形態では、Kubernetesを用いて、コンテナを管理する形態について説明した。しかし、これに限定されない。例えば、Docker Enterprise、及びMesos等のコンテナの配置(オートスケール)を制御するアプリケーションであれば、如何なるアプリケーションであってもよい。
また、本実施形態に係るリソース使用量は、CPU使用率(millicore)である形態について説明した。しかし、これに限定されない。リソース使用量は、メモリであってもよい。
また、本実施形態では、リソース情報を取得して回帰モデルを生成する形態について説明した。しかし、これに限定されない。予測部24が推定したマイクロサービス毎のワークロードを用いて、予測モデルが生成されてもよい。例えば、コンテナ管理装置10は、リソース情報に、予測部24が推定したマイクロサービス毎のワークロードを加えて、予測モデルを生成してもよい。予測部24が推定したマイクロサービス毎のワークロードを加えることによって、最新の情報を反映した予測モデルが生成される。
なお、上記実施形態でCPU11がソフトウェア(プログラム)を読み込んで実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、上述した処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
また、上記実施形態において、各プログラムはコンピュータが読み取り可能な非一時的記録媒体に予め記憶(インストール)されている態様で説明した。例えば、CPU11における制御プログラムはROM12に予め記憶されている。しかしこれに限らず、各プログラムは、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
10 コンテナ管理装置
21 取得部
22 モデル生成部
24 予測部
25 制御部
140 サービス
160 マイクロサービス
170 サービスチェイン

Claims (6)

  1. 処理を行うためのコンテナが配置されたマイクロサービスを各々接続したサービスにおいて、前記サービスに係るワークロード、前記マイクロサービスがどのように接続されているかに関する情報である接続情報、及び前記ワークロードに係る各々の処理がマイクロサービス間を伝搬するサービスチェインを取得する取得部と、
    各々のマイクロサービスにおけるワークロード、及びリソース使用量の関係を表す予測モデルを用いて、取得した前記ワークロード、前記接続情報、及び前記サービスチェインからマイクロサービス毎のリソース使用量を導出し、コンテナの数を予測する予測部と、
    予測された前記マイクロサービス毎のコンテナの数に応じて、各々のマイクロサービスに同一契機に配置するコンテナを制御する制御部と、
    を備えたコンテナ管理装置。
  2. 前記取得部は、過去のマイクロサービス毎のワークロード、及びリソース使用量の情報であるリソース情報をさらに取得し、
    前記リソース情報を用いて、前記予測モデルを生成するモデル生成部をさらに備える
    請求項1に記載のコンテナ管理装置。
  3. 前記予測モデルは、予め定められた回帰モデル、又はガウス過程によって定められた回帰モデルである請求項2に記載のコンテナ管理装置。
  4. 前記モデル生成部は、前記リソース情報のデータ量に応じて、予め定められた回帰モデル、又はガウス過程によって定められた回帰モデルを選択する請求項3に記載のコンテナ管理装置。
  5. 前記予測部は、前記サービスチェインから処理が伝搬するマイクロサービスを特定して、各々のマイクロサービスのワークロードを推定し、前記予測モデルを用いて、推定した前記マイクロサービス毎のワークロードから、前記リソース使用量を導出する請求項1から請求項4の何れか1項に記載のコンテナ管理装置。
  6. 処理を行うためのコンテナが配置されたマイクロサービスを各々接続したサービスにおいて、前記サービスに係るワークロード、前記マイクロサービスがどのように接続されているかに関する情報である接続情報、及び前記ワークロードに係る各々の処理がマイクロサービス間を伝搬するサービスチェインを取得する取得ステップと、
    各々のマイクロサービスにおけるワークロード、及びリソース使用量の関係を表す予測モデルを用いて、取得した前記ワークロード、前記接続情報、及び前記サービスチェインからマイクロサービス毎のリソース使用量を導出し、コンテナの数を予測する予測ステップと、
    予測された前記マイクロサービス毎のコンテナの数に応じて、マイクロサービスに同一契機に配置するコンテナを制御する制御ステップと、
    をコンピュータに実行させるためのコンテナ管理プログラム。
JP2021084145A 2021-05-18 2021-05-18 コンテナ管理装置、及びコンテナ管理プログラム Active JP7459014B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021084145A JP7459014B2 (ja) 2021-05-18 2021-05-18 コンテナ管理装置、及びコンテナ管理プログラム
US17/745,069 US20220374268A1 (en) 2021-05-18 2022-05-16 Container management device and storage medium storing container management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021084145A JP7459014B2 (ja) 2021-05-18 2021-05-18 コンテナ管理装置、及びコンテナ管理プログラム

Publications (2)

Publication Number Publication Date
JP2022177712A JP2022177712A (ja) 2022-12-01
JP7459014B2 true JP7459014B2 (ja) 2024-04-01

Family

ID=84102794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021084145A Active JP7459014B2 (ja) 2021-05-18 2021-05-18 コンテナ管理装置、及びコンテナ管理プログラム

Country Status (2)

Country Link
US (1) US20220374268A1 (ja)
JP (1) JP7459014B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016048536A (ja) 2014-08-27 2016-04-07 財團法人資訊工業策進會 クラスタコンピューティングシステム用のマスタデバイス、スレーブデバイスおよびそのコンピューティング方法
CN111913803A (zh) 2020-07-21 2020-11-10 哈尔滨工程大学 一种基于akx混合模型的服务负载细粒度预测方法
JP2022549405A (ja) 2019-09-30 2022-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016048536A (ja) 2014-08-27 2016-04-07 財團法人資訊工業策進會 クラスタコンピューティングシステム用のマスタデバイス、スレーブデバイスおよびそのコンピューティング方法
JP2022549405A (ja) 2019-09-30 2022-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム
CN111913803A (zh) 2020-07-21 2020-11-10 哈尔滨工程大学 一种基于akx混合模型的服务负载细粒度预测方法

Also Published As

Publication number Publication date
US20220374268A1 (en) 2022-11-24
JP2022177712A (ja) 2022-12-01

Similar Documents

Publication Publication Date Title
US9916135B2 (en) Scaling a cloud infrastructure
US9124498B2 (en) System and method for identifying optimal cloud configuration in black-box environments to achieve target throughput with best price based on performance capability benchmarking
JP6493400B2 (ja) サービスチェーン管理装置、サービスチェーン管理システム、サービスチェーン管理方法、及び、プログラム
US7702497B2 (en) Method for recommending upgrade components for a computer system
US20160380908A1 (en) Resource Prediction for Cloud Computing
CN109901921B (zh) 任务队列执行时间预测方法、装置及实现装置
US20120203536A1 (en) Method and system for software behaviour management
JP4705484B2 (ja) 性能監視装置、性能監視方法及びプログラム
US20170116034A1 (en) Systems and methods for service demand based performance prediction with varying workloads
JP2008171235A (ja) システム構成変更ルール生成システム、方法およびプログラム
JP5109799B2 (ja) 情報処理システム、負荷制御方法、および負荷制御プログラム
Shariffdeen et al. Workload and resource aware proactive auto-scaler for paas cloud
JP7459014B2 (ja) コンテナ管理装置、及びコンテナ管理プログラム
WO2016084327A1 (ja) 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム
JP2015108877A (ja) 予測時間分布生成装置、制御方法、及びプログラム
JP5636922B2 (ja) 性能予測装置、性能予測方法およびプログラム
JP2008171234A (ja) システム構成候補導出装置、方法およびプログラム
JP2007265244A (ja) ウェブシステムの性能監視装置
JP6163926B2 (ja) 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
Amiri et al. Cost-aware multidimensional auto-scaling of service-and cloud-based dynamic routing to prevent system overload
US9465374B2 (en) Computer system performance management with control variables, performance metrics and/or desirability functions
WO2013070226A1 (en) Computer system performance management with control variables, performance metrics and/or desirability functions
EP3330854A1 (en) Automatic selection of infrastructure on a hybrid cloud environment
Amiri et al. Cost-Aware Multifaceted Reconfiguration of Service-and Cloud-Based Dynamic Routing Applications
US20240160470A1 (en) Method of deploying microservice and edge device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221215

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: 20240220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240319

R150 Certificate of patent or registration of utility model

Ref document number: 7459014

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150