(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022173862
(43)【公開日】2022-11-22
(54)【発明の名称】コンテナ管理システム、及びコンテナ管理方法
(51)【国際特許分類】
G06F 9/455 20060101AFI20221115BHJP
【FI】
G06F9/455 150
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021079843
(22)【出願日】2021-05-10
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】一色国際特許業務法人
(72)【発明者】
【氏名】柿田 将幸
(72)【発明者】
【氏名】相樂 恭宏
(72)【発明者】
【氏名】肥村 洋輔
(72)【発明者】
【氏名】橋本 恭佑
(57)【要約】 (修正有)
【課題】複数のオペレータによるコンテナの構成情報の変更を安定的にコントロールするコンテナ管理システム及びコンテナ管理方法を提供する。
【解決手段】コンテナ管理システム100は、プロセッサ及びメモリを有し、第1のオペレータ(アプリAオペレータコンテナ104)によるコンテナの構成情報の変更の実行を検知した場合に、所定時間、第2のオペレータ(アプリBオペレータコンテナ105)によるコンテナの構成情報の変更の実行を禁止させる構成変更管理部を構成する構成変更監視コンポーネント102及び監視データストア103を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサ及びメモリを有し、
第1のオペレータによるコンテナの構成情報の変更の実行を検知した場合に、所定時間、第2のオペレータによるコンテナの構成情報の変更の実行を禁止させる構成変更管理部を備える、コンテナ管理システム。
【請求項2】
前記第2のオペレータは、所定の条件が満たされたと判定した場合に前記コンテナの構成情報の変更を実行するものであり、
前記構成変更管理部は、前記第1のオペレータによるコンテナの構成情報の変更の実行を検知した場合に、前記第2のオペレータに、前記所定時間、前記所定の条件が満たされないことを示す情報を送信する、
請求項1に記載のコンテナ管理システム。
【請求項3】
前記構成変更管理部は、
前記第1のオペレータによる第1のタイミングでのコンテナの構成情報の変更の実行を検知した場合に、前記第2のオペレータによるコンテナの構成情報の変更の要求を受信し、受信したタイミングが、前記第1のタイミングから前記所定時間経過しているか否かを判定し、前記受信したタイミングが前記第1のタイミングから前記所定時間経過していると判定した場合にのみ、前記第2のオペレータによるコンテナの構成情報の変更を実行する、
請求項1に記載のコンテナ管理システム。
【請求項4】
各前記オペレータによる前記コンテナの構成情報の変更の実行の履歴を記憶する構成情報履歴管理部を備え、
前記構成変更管理部は、前記履歴に基づき、前記第2のオペレータによるコンテナの構成情報の変更の実行を禁止させる、
請求項1に記載のコンテナ管理システム。
【請求項5】
前記構成情報の変更要求の発行元と、前記構成情報の変更要求に係るオペレータとの対応関係の履歴を記憶する対応表管理部を備え、
前記構成変更管理部は、前記コンテナの構成情報の変更要求を取得した場合に、前記対応関係の履歴に基づき、前記変更要求に含まれるオペレータ及び発行元の情報がそれぞれ前記第1のオペレータ及び前記第1のオペレータの発行元に対応するか否かを判定し、前記変更要求に含まれるオペレータ及び発行元の情報がそれぞれ前記第1のオペレータ及び前記第1のオペレータの発行元に対応すると判定した場合には、前記第1のオペレータによるコンテナの構成情報の変更の実行があったと検知する、
請求項1に記載のコンテナ管理システム。
【請求項6】
情報処理装置が、
第1のオペレータによるコンテナの構成情報の変更の実行を検知した場合に、所定時間、第2のオペレータによるコンテナの構成情報の変更の実行を禁止させる構成変更管理処理を実行する、コンテナ管理方法。
【請求項7】
前記第2のオペレータは、所定の条件が満たされたと判定した場合に前記コンテナの構成情報の変更を実行するものであり、
前記構成変更管理処理は、前記第1のオペレータによるコンテナの構成情報の変更の実行を検知した場合に、前記第2のオペレータに、前記所定時間、前記所定の条件が満たされないことを示す情報を送信する処理である、
請求項6に記載のコンテナ管理方法。
【請求項8】
前記構成変更管理処理は、
前記第1のオペレータによる第1のタイミングでのコンテナの構成情報の変更の実行を検知した場合に、前記第2のオペレータによるコンテナの構成情報の変更の要求を受信し、受信したタイミングが、前記第1のタイミングから前記所定時間経過しているか否かを判定し、前記受信したタイミングが前記第1のタイミングから前記所定時間経過していると判定した場合にのみ、前記第2のオペレータによるコンテナの構成情報の変更を実行する処理である、
請求項6に記載のコンテナ管理方法。
【請求項9】
前記情報処理装置が、
各前記オペレータによる前記コンテナの構成情報の変更の実行の履歴を記憶する構成情報履歴管理処理を実行し、
前記構成変更管理処理は、前記履歴に基づき、前記第2のオペレータによるコンテナの構成情報の変更の実行を禁止させる処理である、
請求項6に記載のコンテナ管理方法。
【請求項10】
前記情報処理装置が、
前記構成情報の変更要求の発行元と、前記構成情報の変更要求に係るオペレータとの対応関係の履歴を記憶する対応表管理処理を実行し、
前記構成変更管理処理は、前記コンテナの構成情報の変更要求を取得した場合に、前記対応関係の履歴に基づき、前記変更要求に含まれるオペレータ及び発行元の情報がそれぞれ前記第1のオペレータ及び前記第1のオペレータの発行元に対応するか否かを判定し、前記変更要求に含まれるオペレータ及び発行元の情報がそれぞれ前記第1のオペレータ及び前記第1のオペレータの発行元に対応すると判定した場合には、前記第1のオペレータによるコンテナの構成情報の変更の実行があったと検知する処理である、
請求項6に記載のコンテナ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテナ管理システム、及びコンテナ管理方法に関する。
【背景技術】
【0002】
アプリケーション(アプリ)の運用において、アプリとその実行環境の監視データを利用して、従来は人間が手作業で行っていた処理をプログラムに実行させる自動化の運用が広がっている。中でも、データストアのようなステートフルアプリを運用するために、「どのようにデプロイするのか」「何らかの問題が起きた場合にどのように対処するのか」といった、従来は開発者がスクリプトや操作手順書に記載していたようなドメイン知識を自動運用プログラムに組み込んだものを特にオペレータ(Operator)と呼ぶ。
【0003】
例えば、受け付けたリクエストに対して処理を施して返送するようなステートレスアプリの場合、オペレータは、アプリに対する負荷が高まったときに、アプリを実行している仮想マシン(Virtual Machine: VM)やコンテナのインスタンスを増やしてリクエストを
分散処理させるだけでアプリの処理能力を向上させることができる(スケールアウト)。一方で、複数のインスタンスからなるクラスタを構成しデータを分散管理するデータストアのような、ステートフルアプリを運用する場合は、負荷が高まったときにアプリを実行しているインスタンスを増やすだけでは不十分であり、オペレータはインスタンスからクラスタ内のリーダの選出やデータの再配置などアプリ固有の処理を正しい手順で実行することで、クラスタ全体の処理能力が向上し負荷を分散できる状態にできる。オペレータは、このようなアプリ固有の運用操作を実施するプログラムである。
【0004】
このようなオペレータに関して、アプリ及びその設定情報を含むコンテナの実行基盤であるKubernetes(登録商標)上でステートフルアプリのコンテナを運用する場合のオペレータプログラムの開発が活発に進められている。オープンソースソフトウェア(Open Source Software: OSS)アプリに関しては、各アプリにおいて共通性の高い運用操作を自動
化するオペレータが各OSSコミュニティによって開発され、例えばOperator Hub (https://operatorhub.io/)などを通じてインターネット上で公開されている。
【0005】
このようなオペレータ(自動運用プログラム)の運用上の問題として、独立した自動運用プログラム同士の干渉がある。例えば、オペレータの普及により互いの運用ルールを考慮していない複数のアプリとそのオペレータが共通の基盤上で動作するような状況を考える。各アプリとオペレータは独立して動作しているため、あるアプリのオペレータがコンテナの運用操作、具体的には構成情報の変更を実行したことで一時的にシステムに対する負荷が上昇し、別のアプリの性能に影響を及ぼすことがある。その場合、影響を受けたアプリのオペレータによるアプリの構成変更を伴う運用操作が誘発され、最悪の場合は個々のオペレータの運用が干渉し合って無限ループに陥る可能性がある。
【0006】
このような自動運用プログラムによる不要な運用操作を排除するための仕組みとして、例えば、特許文献1には、閾値を用いたルールベースのオートスケールにおいて、不適切な閾値設定によりスケールアウトとスケールインを繰り返してしまうフラッピング現象を防ぐために、スケールアウトを実施した後に、スケールインを実施するとき、スケールイン後の負荷状況をシミュレーションして再スケールアウトが起きそうな場合はスケールイン処理をスキップすることが開示されている。
【0007】
また、特許文献2には、メトリクスの種類と過去にメトリクス異常値が継続した時間を使って、メトリクスの異常値が検出されたときに運用操作の要否をスコアリングすること
が開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】国際公開第2018/200162号
【特許文献2】国際公開第2013/027562号
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1の技術では同一のアプリケーションの運用操作の無限ループを防ぐことができるが複数のアプリケーションにまたがって起きる運用操作の不具合に対する対策を取ることはできない。また、シミュレーションを実施するために運用操作に使うメトリクス情報を明示的に宣言させる必要がある。
【0010】
特許文献2では、メトリクスの種類と異常継続時間による重み付けだけでは、メトリクス変動の傾向が変わってしまった場合などの状況の変化に追従して正しい判定を下すことができない。
【0011】
本発明はこのような事情に鑑みてなされたもので、その目的は、複数のオペレータによるコンテナの構成情報の変更を安定的にコントロールすることが可能なコンテナ管理システム、及びコンテナ管理方法を提供することにある。
【課題を解決するための手段】
【0012】
上記課題を解決するための本発明の一つは、プロセッサ及びメモリを有し、第1のオペレータによるコンテナの構成情報の変更の実行を検知した場合に、所定時間、第2のオペレータによるコンテナの構成情報の変更の実行を禁止させる構成変更管理部を備える、コンテナ管理システム、とする。
【0013】
また、上記課題を解決するための本発明の一つは、情報処理装置が、第1のオペレータによるコンテナの構成情報の変更の実行を検知した場合に、所定時間、第2のオペレータによるコンテナの構成情報の変更の実行を禁止させる構成変更管理処理を実行する、コンテナ管理方法、とする。
【発明の効果】
【0014】
本発明によれば、複数のオペレータによるコンテナの構成情報の変更を安定的にコントロールすることができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0015】
【
図1】第1実施形態に係るコンテナ管理システムの構成の一例を示すブロック図である。
【
図2】構成変更監視コンポーネントが有する機能の一例を説明するブロック図である。
【
図4】監視データストアが有する機能の一例を示すブロック図である。
【
図7】コンテナオーケストレータ、構成変更監視コンポーネント、監視データストア、及びコンテナが備えるハードウェアの一例を説明する図である。
【
図8】OP-SA対応表更新処理の一例を説明するシーケンス図である。
【
図9】新規リソース作成通知におけるリソース操作情報表の一例である。
【
図10】OP-SA対応表更新実行処理の一例を説明するフローチャートである。
【
図11】構成情報変更管理処理の一例を説明するシーケンス図である。
【
図12】構成変更要求通知におけるリソース操作情報表の一例である。
【
図13】構成変更監視処理の一例を説明するフローチャートである。
【
図14】構成変更履歴更新処理の一例を説明するフローチャートである。
【
図15】メトリクスデータ送信処理の一例を説明するフローチャートである。
【
図16】構成変更抑制処理の詳細を説明するフローチャートである。
【
図17】第2実施形態に係る構成変更監視コンポーネントが有する機能の一例を示すブロック図である。
【
図18】第2実施形態に係る監視データストアが有する機能の一例を示すブロック図である。
【
図19】第2実施形態に係る構成情報管理処理を示すシーケンス図である。
【
図20】第2実施形態に係る構成変更監視処理の詳細を示すフローチャートである。
【
図21】第2実施形態に係るメトリクスデータ送信処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【0016】
-第1実施形態-
<システム構成>
図1は、第1実施形態に係るコンテナ管理システム100の構成の一例を示すブロック図である。コンテナ管理システム100は、コンテナオーケストレータ101、構成変更監視コンポーネント102、監視データストア103、及びコンテナ130(複数のオペレータコンテナ110及び複数のアプリコンテナ120)を含んで構成され、これらの装置の間は、ネットワーク108により通信可能に接続される。ネットワーク108は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット
、又は専用線等の有線若しくは無線の通信ネットワークである。
【0017】
本実施形態では、オペレータコンテナ110は、アプリAオペレータコンテナ104、及びアプリBオペレータコンテナ105を含む。また、本実施形態では、アプリコンテナ120は、アプリAコンテナ106及びアプリBコンテナ107を含む。なお、アプリAコンテナ106及びアプリBコンテナ107は複数のコンテナを含んでいでもよい。また、これらの各コンテナ130は、対応する1つの情報処理装置として構成されていてもよいし、情報処理装置の一部を構成するコンポーネント(データ)であってもよいし、複数の情報処理装置によって構成されるコンポーネント(データ)であってもよい。本実施形態では、各コンテナは、対応する1つの情報処理装置として構成されているものとする。
【0018】
各コンテナ130は、アプリケーション、そのアプリケーションの設定情報、及びその他の設定情報であるコンテナを記憶している。このうち、アプリコンテナ120は、アプリケーションのコンテナを記憶している。オペレータコンテナ110は、アプリコンテナ120におけるコンテナの構成情報を管理するプログラムであるオペレータのコンテナを記憶している。
【0019】
コンテナオーケストレータ101は、各コンテナ130が保持するコンテナの構成情報を管理しており、各コンテナ130が所定の構成で動作するように、各コンテナ130の起動及び停止を制御する。具体的には、コンテナオーケストレータ101は、各コンテナ130に対して、構成情報の変更を命令する制御命令を送信する。
【0020】
構成変更監視コンポーネント102は、コンテナオーケストレータ101から送信され
た制御命令をフックし、構成情報の変更の履歴として取得して記憶する。構成変更監視コンポーネント102の詳細は後述する。
【0021】
監視データストア103は、各アプリコンテナ120の性能を評価するためのパラメータであるメトリクスデータを監視データとして取得し蓄積する。メトリクスデータは、構成情報の変更を行うための条件が満たされているか否かを判定するために、各オペレータコンテナ110によって用いられる情報である。
【0022】
オペレータコンテナ110は、監視データストア103に蓄積された監視データを参照する。オペレータコンテナ110は、監視データに含まれるメトリクスデータの異常値を検出すると、コンテナオーケストレータ101に対して、アプリコンテナ120の構成情報の変更を要求する。
【0023】
このように、本実施形態では、構成変更監視コンポーネント102及び監視データストア103が、構成情報の変更を統括的に管理する構成変更管理部を構成している。
【0024】
(構成変更監視コンポーネント)
次に、
図2は、構成変更監視コンポーネント102が有する機能の一例を説明するブロック図である。構構成変更監視コンポーネント102は、対応表更新処理部202、及び構成変更監視処理部203を備える。また、構成変更監視コンポーネント102は、OP-SA対応表201を記憶している。
【0025】
OP-SA対応表201(オペレータ-サービスアカウント対応表)は、コンテナオーケストレータ101に対する構成情報の変更要求の発行元である各サービスアカウントと、各オペレータとの対応を記憶したデータである。
【0026】
(OP-SA対応表)
図3は、OP-SA対応表201の一例を示す図である。OP-SA対応表201は、オペレータの識別子が設定されるオペレータ識別子20101、及び、オペレータに紐付けられるサービスアカウントの識別子が設定されるサービスアカウント識別子20102の各データ項目を有する。
【0027】
次に、
図2に示すように、OP-SA対応表更新処理部202は、コンテナオーケストレータ101から送信された、新たなオペレータコンテナ110を生成するための構成情報の生成の要求を含む制御命令をフックし、そのオペレータと制御命令に含まれるサービスアカウントの識別子とを対応づけてOP-SA対応表201に記憶する。
【0028】
構成変更監視処理部203は、コンテナオーケストレータ101から送信された、構成情報の変更要求を含む制御命令をフックして、その制御命令を取得する。さらに、構成変更監視処理部203は、取得した制御命令からアプリケーションの構成情報の変更内容に関する情報を抽出して、監視データストア103に、その構成情報の変更を通知する通知情報を送信する。
【0029】
(監視データストア)
次に、
図4は、監視データストア103が有する機能の一例を示すブロック図である。監視データストア103は、メトリクスデータ送信処理部803、構成変更抑止判定処理部804、及び構成変更履歴更新処理部805の各機能部を有する。また、監視データストア103は、メトリクスデータ表801を記憶する。
【0030】
メトリクスデータ表801は、各コンテナ130のメトリクスデータを記憶している。
構成変更操作履歴表802は、構成変更監視コンポーネント102から送信された通知情報を記憶したデータである。
ここで、メトリクスデータ表801及び構成変更操作履歴表802について説明する。
【0031】
(メトリクスデータ表)
図5は、メトリクスデータ表801の一例を示す図である。メトリクスデータ表801は、メトリクスデータが取得された時刻が設定される時刻80101、取得されたメトリクスの識別子が設定されるメトリック識別子80102、及び、取得されたメトリクスデータの値が設定される値80103の各データ項目を含む。
【0032】
(構成変更操作履歴表)
図6は、構成変更操作履歴表802の一例である。構成変更操作履歴表802は、構成変更監視コンポーネント102から送信されてきた通知情報を記憶している。
【0033】
すなわち、構成変更操作履歴表802は、通知情報の識別子が設定される通知情報識別子、通知情報が示す構成情報の変更の要求元(例えば、オペレータ、その他のユーザ端末等)の識別子が設定されるオペレータ識別子、通知情報の送信元の識別子(サービスアカウント等)が設定される要求元識別子、通知情報により特定される変更後の構成情報が設定される更新後情報、構成情報の変更の要求のタイミング(例えば、通知情報の受信時刻若しくは送信時刻、又はアプリ構成情報変更要求の送信時刻若しくは受信時刻等でもよい。以下、発生日時という。)が設定される発生日時80203、及び、上記要求元がオペレータの場合にそのオペレータ以外のオペレータによる構成情報の変更を禁止する時期の期限(構成情報の変更を遅延させる時間を示す情報)が設定される変更抑制判定失効日時の各データ項目から構成される。なお、この期限は、すべてのオペレータに対して同じとしてもよいし、各オペレータの処理ごとに異ならせてもよい。
【0034】
次に、
図4に示すメトリクスデータ送信処理部803は、各オペレータコンテナ110に対してメトリクスデータを送信する。
【0035】
構成変更抑止判定処理部804は、メトリクスデータ送信処理部803がメトリクスデータを送信する際に、構成変更操作履歴表802を参照することで、一定時間前の時刻から現在時刻までの間に、オペレータが構成情報の変更を実行していたか否かを判定し、実行されていたときは構成変更を抑止する(遅延させる)メトリクスデータを送信するか否かを判定する。
【0036】
構成変更履歴更新処理部805は、構成変更監視コンポーネント102から受信した通知情報が示す、コンテナの構成情報の変更の履歴を構成変更操作履歴表802に記憶する。
【0037】
ここで、
図7は、コンテナオーケストレータ101、構成変更監視コンポーネント102、監視データストア103、及びコンテナ130が備えるハードウェアの一例を説明する図である。これらのコンポーネントは、CPU(Central Processing Unit)、MPU
(Micro Processing Unit)、又はGPU(Graphics Processing Unit)等のプロセッサ
1と、ROM(Read Only Memory)、又はRAM(Random Access Memory)等の主記憶装置2と、ハードディスクドライブ(Hard Disk Drive)、フラッシュメモリ(Flash Memory)、又はSSD(Solid State Drive)等の補助記憶装置3と、キーボード、マウス、カードリーダ、又はタッチパネル等の入力装置4と、液晶ディスプレイ(Liquid Crystal Display: LCD)、音声出力装置(スピーカ)、又は印字装置等の出力装置5と、ネットワ
ークインタフェースカード(Network Interface Card: NIC)、無線通信モジュール、U
SB(Universal Serial Interface)モジュール、又はシリアル通信モジュール等の通信
装置6とを備える。
【0038】
これらのコンポーネントの機能は、プロセッサ1が、主記憶装置2又は補助記憶装置3に格納されているプログラムを読み出して実行することにより実現される。また上記のプログラムは、例えば、記録媒体に記録して配布することができる。
続いて、コンテナ管理システム100が実行する処理について説明する。
【0039】
コンテナ管理システム100は、OP-SA対応表201を生成すると共にオペレータコンテナ110を作成するOP-SA対応表更新処理と、作成された各オペレータコンテナ110が行う構成情報の変更を管理する構成情報変更管理処理とを実行する。構成情報変更管理処理は、あるオペレータによる構成情報の変更によって別のオペレータの構成情報の変更が誘発されることを防ぐための処理である。
【0040】
<OP-SA対応表更新処理>
図8は、OP-SA対応表更新処理の一例を説明するシーケンス図である。この処理は、例えば、コンテナオーケストレータ101にユーザから、オペレータの新規作成の入力が行われたことを契機に開始される。ここでは、アプリAのオペレータの新規作成の入力が行われたものとする。
【0041】
まず、コンテナオーケストレータ101は、アプリAオペレータコンテナ104の作成のために、リソース操作情報表401を含む新規リソース作成通知を構成変更監視コンポーネント102に送信する(s101)。
【0042】
(リソース操作表)
図9は、新規リソース作成通知におけるリソース操作情報表401の一例である。リソース操作情報表401は、新規リソース作成通知に係る通知の識別子が設定される通知情報識別子、通知の種類が設定される情報種類、操作(新規作成)の対象となるリソース(構成情報)の識別子が設定される対象リソース識別子、操作の対象となるリソースが所属しているカテゴリが設定される名前空間、操作の種類(新規作成)が設定されるオペレーション種別、通知の要求元の識別子が設定される要求元識別子40101、操作の対象となるリソースを説明するための情報が設定されるメタデータ40102、操作(作成)後の構成情報の状態を表す情報が設定される更新後情報、作成前の状態を表す情報が設定される更新前情報、及び、リソースの操作が要求された時刻を表す情報(発生日時等)が設定される発生日時、の各データ項目を含んで構成される。
【0043】
次に、
図8に示すように構成変更監視コンポーネント102は、コンテナオーケストレータ101から受信した新規リソース作成通知に基づき、OP-SA対応表201を更新する処理であるOP-SA対応表更新実行処理s102を実行する。OP-SA対応表更新実行処理s102の詳細は後述する。なお、ここでは、構成変更監視コンポーネント102は、OP-SA対応表更新実行処理s102により、OP-SA対応表201に対して
図3に示す行R20103のデータを追加したものとする。
【0044】
構成変更監視コンポーネント102は、OP-SA対応表201を更新すると、コンテナオーケストレータ101に、処理続行許可を送信する(s103)。
【0045】
コンテナオーケストレータ101は、処理続行許可を受信すると、アプリAオペレータコンテナ104に対して所定の指示情報を送信し、アプリAオペレータコンテナ104はコンテナの作成処理を実施する(s104)。この処理によって、アプリAオペレータコンテナ104のインスタンス(コンテナの実体)が作成される(s105)。
ここで、OP-SA対応表更新実行処理s102の詳細を説明する。
【0046】
図10は、OP-SA対応表更新実行処理s102の一例を説明するフローチャートである。構成変更監視コンポーネント102は、コンテナオーケストレータ101から新規リソース作成通知を受信する(S1001)。
【0047】
構成変更監視コンポーネント102は、受信した新規リソース作成通知に基づき、リソースの生成の要求元がオペレータか否かを判定する(S1002)。
【0048】
例えば、構成変更監視コンポーネント102は、リソース操作情報表401に含まれているメタデータ40102が示すリソースタイプが「operator」であればオペレータであると判定し、それ以外であればオペレータではないと判定する。また、例えば、構成変更監視コンポーネント102は、対象リソース識別子等を参照し、メタデータ40102が示すリソースが、コンテナオーケストレータ101に対して構成情報の変更を実施するリソースであればオペレータと判定する。これは、コンテナが作成された後は、コンテナオーケストレータ101に対してコンテナの構成情報の変更の制御を実施するのがオペレータの特徴的な振る舞いであるからである。
【0049】
作成するリソースがオペレータである場合は(S1002:YES)、構成変更監視コンポーネント102はS1003の処理を実行し、作成するリソースがオペレータでない場合は(S1002:NO)、OP-SA対応表更新実行処理s102は終了する。
【0050】
S1003において構成変更監視コンポーネント102は、OP-SA対応表201に、S1002で特定したオペレータに対応するサービスアカウントの情報が存在するか否かを判定する。
【0051】
例えば、構成変更監視コンポーネント102は、リソース操作情報表401に含まれている要求元識別子40101を抽出し、抽出した要求元識別子40101を、OP-SA対応表201の各行のサービスアカウント識別子20102と照会し、両者が一致する行があるか否かを判定する。
【0052】
対応するサービスアカウントの情報がOP-SA対応表201に存在する場合は(S1003:YES)、OP-SA対応表更新実行処理s102は終了し、対応するサービスアカウントの情報がOP-SA対応表201に存在しない場合は(S1003:NO)、構成変更監視コンポーネント102はS1004の処理を実行する。
【0053】
S1004において構成変更監視コンポーネント102は、S1002で特定したオペレータに対応するサービスアカウントの情報をOP-SA対応表201に登録する。具体的には、例えば、構成変更監視コンポーネント102は、リソース操作情報表401のメタデータ40102からオペレータ識別子を抽出し、抽出したオペレータ識別子をOP-SA対応表201の新たな行のオペレータ識別子20101に格納し、S1003で抽出した要求元識別子40101を新たな行のサービスアカウント識別子20202に格納する。以上でOP-SA対応表更新実行処理s102は終了する。
次に、構成情報変更管理処理について説明する。
【0054】
<全体処理>
図11は、構成情報変更管理処理の一例を説明するシーケンス図である。構成情報変更管理処理は、例えば、OP-SA対応表更新処理により、各オペレータコンテナ110において各アプリのコンテナが作成された後に実行される。ここでは、アプリAオペレータコンテナ104におけるコンテナの作成、及びアプリBオペレータコンテナ105におけるコンテナの作成が行われたものとする。
【0055】
監視データストア103は、アプリAコンテナ106におけるアプリAのコンテナの現在のメトリクスデータをアプリAオペレータコンテナ104に定期的に送信するメトリクスデータ送信処理s1を実行している。
【0056】
同様に、監視データストア103は、アプリBコンテナ107におけるアプリBのコンテナの現在のメトリクスデータをアプリBオペレータコンテナ105に定期的に送信するメトリクスデータ送信処理s1を実行している。ここで、アプリAオペレータコンテナ104が、監視データストア103から、メトリック識別子「container-xbkvf8fe-responsetime」に係るメトリクスデータを受信しているものとする。
【0057】
アプリAオペレータコンテナ104は、監視データストア103から取得したメトリクスデータの変動に基づき、アプリAの応答性能が低下していることを検知する(s2)。ここでは、時刻t0(2021-03-02T09:30:00Z)の時点で検知が行われたとする。
【0058】
アプリAオペレータコンテナ104は、アプリAの処理能力を増強して性能低下を解消するため、コンテナオーケストレータ101に対してアプリBオペレータコンテナ105の構成情報の変更(ここでは、コンテナ数の増加)を行うためのアプリ構成情報変更要求を送信する(s3)。
【0059】
コンテナオーケストレータ101は、アプリ構成情報変更要求を受信すると、構成情報の変更を試行する。そして、コンテナオーケストレータ101は、構成情報の変更を示すリソース操作情報表501を生成し、生成したリソース操作情報表501を含む構成変更要求通知を構成変更監視コンポーネント102に送信する(s4)。
【0060】
(リソース操作情報表)
図12は、構成変更要求通知におけるリソース操作情報表501の一例である。構成変更要求通知におけるリソース操作情報表501は、新規リソース作成通知におけるリソース操作情報表401と同様のデータ構成を備える。構成変更要求通知におけるリソース操作情報表501は、新規リソース作成通知におけるリソース操作情報表401と比較すると、オペレーション種別、メタデータの内容、更新前情報の有無等が異なる。
【0061】
次に、
図11に示すように構成変更監視コンポーネント102は、構成変更要求通知を受信すると、構成変更要求通知に含まれるリソース操作情報表501に基づき、構成情報の変更の要求元(発行元)がオペレータであることを確認する構成変更監視処理s5を実行し、構成情報の変更の要求元がオペレータでない場合には処理を終了する。この際、構成変更監視コンポーネント102は、コンテナオーケストレータ101による構成変更の続行を許可する処理続行許可通知を、コンテナオーケストレータ101に送信する(s7)。
【0062】
また、構成変更監視コンポーネント102は、構成情報の変更の要求元がオペレータであることを確認すると、監視データストア103に、オペレータ(ここではアプリAオペレータコンテナ104)による構成情報の変更の要求があったことを示す通知(オペレータ変更要求通知)を送信する(s6)。この通知は、監視データストア103が記憶している構成変更操作履歴表802と同様のデータ構成を有し、変更抑制判定失効日時を含んだ情報である。ここでは、
図6に示す構成変更操作履歴表802の行R80201と同様の情報がオペレータ変更要求通知により送信されたとする。
【0063】
コンテナオーケストレータ101は、構成変更監視コンポーネント102から処理続行許可通知を受信すると、アプリコンテナ120(ここではアプリAコンテナ106)におけるコンテナの構成情報を変更(例えば、コンテナ数の増加)を実行させるための指示である構成変更要求をアプリコンテナ120(ここではアプリAコンテナ106)に送信する構成変更処理を実行する(s8)。
【0064】
アプリAコンテナ106は、構成変更要求を受信すると、アプリAのコンテナ数を増加させる(s9)。例えば、アプリAコンテナ106は、新規に作成したアプリAのインスタンスに対する初期化処理、データ再配置等の、構成変更に関する処理を実行する。
【0065】
一方、監視データストア103は、構成変更監視コンポーネント102から、オペレータ変更要求通知を受信すると、受信したオペレータ変更要求通知で構成変更操作履歴表802を更新する構成変更操作履歴更新処理s10を実行する。ここでは、例えば、構成変更操作履歴表802における、
図6に示す行R80201の内容が追加される。
【0066】
監視データストア103は、各オペレータコンテナ110に対してメトリクスデータ送信処理s1を実行中であるが、アプリAオペレータコンテナ104が送信しているメトリクスデータと同種類の、アプリBオペレータコンテナ105に対するメトリクスデータ(ここでは、メトリック識別子「container-xbkvf8fe-responsetime」のメトリクスデータ)の送信に関して、以下の処理を行う。
【0067】
すなわち、監視データストア103は、構成変更操作履歴表802を参照し、アプリBのオペレータの変更抑制判定失効日時t2(ここでは、行R80201の「2021-03-02T09:40:00Z」)が到来するまでは、現在のメトリクスデータではなく、アプリAのオペレータによる構成情報の変更要求(s3乃至s4)の直前のタイミングで送信されたメトリクスデータ(ここでは、行R80102の発生日時が示すタイミングの直前のメトリクスデータ)を送信する(s1a)。
【0068】
これにより、アプリBのオペレータの構成情報の変更が抑制される。すなわち、メトリック識別子「container-xbkvf8fe-responsetime」のメトリクスデータについて、アプリAオペレータコンテナ104によるアプリAの構成情報の変更により(s3)アプリBオペレータが取得するメトリクスデータの内容が悪化した状況となっても、アプリAオペレータ104による構成変更が行われる直前のメトリクスデータがアプリBオペレータコンテナ105に送信されることで、アプリBオペレータコンテナ105はそのような悪化の状況を検出することができず、構成情報の変更の運用操作は実施されない。すなわち、アプリAオペレータコンテナ104による構成情報の変更に基づくメトリクスデータの悪化が一時的なものであって構成情報を変更する必要性が低い場合には、そのような構成情報の変更を防ぐことができる。
【0069】
一方、変更抑制判定失効日時t2以降は、実際に計測された現在のメトリクスデータがアプリBオペレータコンテナ105に送信されるため(s1b)、変更抑制判定失効日時t2より後の時刻t3の時点では、アプリAオペレータコンテナ104による構成情報の変更に基づくアプリの一時的な性能低下が終了し、メトリクスデータの水準が元に戻っているので、アプリAコンテナ106に対する過大な構成情報の変更を避けることができる。なお、この時刻t3の時点においてもメトリクスデータの水準が悪化したままであるならアプリBオペレータコンテナ105は構成情報の変更を要求することができるため、アプリBコンテナ107の性能が低下したままになることはない。
【0070】
以上のような処理による、アプリAオペレータコンテナ104によるアプリAコンテナ106の構成情報の変更の後の、アプリBオペレータコンテナ105による構成情報の変
更が抑止される。
以下、構成変更監視処理s5、構成変更履歴更新処理s10、及びメトリクスデータ送信処理s1の詳細を説明する。
【0071】
<構成変更監視処理>
図13は、構成変更監視処理s5の一例を説明するフローチャートである。構成変更監視処理s5は、オペレータコンテナ110による構成情報の変更の要求を検知し、監視データストア103にこれを通知する処理である。
【0072】
構成変更監視コンポーネント102は、コンテナオーケストレータ101から、リソース操作情報表501を含む構成変更要求通知を受信する(S701)。構成変更監視コンポーネント102は、構成変更要求通知を受信すると、コンテナオーケストレータ101に対して、処理続行許可通知を返信する(S702)。
【0073】
また、構成変更監視コンポーネント102は、s701で受信した構成変更要求通知に基づき、構成変更要求通知の要求元がオペレータであるか否かを判定する(S703)。具体的には、構成変更監視コンポーネントは、構成変更要求通知に含まれているリソース操作情報501の要求元識別子50101を抽出し、抽出した内容が、OP-SA対応表201の各行のサービスアカウント識別子20102のいずれかと一致するか否かを確認する。
【0074】
構成変更要求通知の要求元がオペレータである場合は(S703:YES)、構成変更監視コンポーネント102はS704の処理を実行し、構成変更要求通知の要求元がオペレータでない場合は(S703:NO)、構成変更監視コンポーネント102は構成変更監視処理s5を終了する。
【0075】
S704において構成変更監視コンポーネント102は、オペレータによる構成情報の変更の要求があったことを示すオペレータ変更要求通知を監視データストア103に送信し、構成変更監視処理s5を終了する。
【0076】
なお、オペレータ変更要求通知には、構成変更操作履歴表802の各行のデータ構成に対応するデータが含まれる。具体的には、通知情報識別子、オペレータ識別子、要求元識別子、更新後情報、及び発生日時には、S701にて受信したリソース操作情報表501から抽出した値が設定される。変更抑制判定失効日時80202には、オペレータごとに設定された上記発生日時から任意の時間経過した時刻が設定される。
【0077】
例えば、アプリAオペレータコンテナ104による構成情報の変更(コンテナ数の変更)が「2021-03-02T09:30:00Z」に実行され、S701において、
図12に示すリソース操作情報表501を含む構成変更要求通知に含まれるデータが、コンテナオーケストレータ101から構成変更監視コンポーネント102に送信されたとする。これにより、S704において、
図6に示す構成変更操作履歴表802の行R80201と同内容のデータが、構成変更監視コンポーネント102から監視データストア103に通知される。そして、
図6に示す構成変更操作履歴表802の変更抑制判定失効日時80202がアプリAオペレータコンテナ104に係る構成情報の変更から所定時間後(ここでは10分後)の「2021-03-02T09:40:00Z」に設定される。
【0078】
<構成変更履歴更新処理>
次に、
図14は、構成変更履歴更新処理s10の一例を説明するフローチャートである。構成変更履歴更新処理s10は、監視データストア103が、構成変更監視コンポーネント102から受信したオペレータ変更要求通知に含まれる構成情報の変更の情報を構成
変更操作履歴表802に追加する処理である。
【0079】
監視データストア103は、構成変更監視コンポーネント102から、オペレータ変更要求通知を受信する(S1201)。なお、オペレータ変更要求通知には、前記のように構成変更操作履歴表802と同様のデータ構造を有する。
【0080】
監視データストア103は、S1201で受信したデータを構構成変更操作履歴表802に記憶する(S1202)。例えば、監視データストア103は、前記のS704にて説明したデータを受信した場合、
図6に示す構成変更操作履歴表802に、行R80201に示すデータを追加する。以上で構成変更履歴更新処理s10は終了する。
【0081】
<メトリクスデータ送信処理>
図15は、メトリクスデータ送信処理s1の一例を説明するフローチャートである。メトリクスデータ送信処理は、各オペレータコンテナ110に対して現在のメトリクスデータを送信し、または、抑制判定失効日時に基づき過去のメトリクスデータを送信する処理である。
【0082】
なお、トリクスデータ送信処理s1の開始は、例えば、メトリクスデータ表801が更新されたことを契機に開始される。この場合、監視データストア103が更新データを送信するプッシュ型のイベントが契機であってもよいし、オペレータコンテナ110が、監視データストア103に更新データを要求するプル型のイベントが契機であってもよい。ここでは、時刻「2021-03-02T09:32:00Z」に、アプリBオペレータコンテナ105によってメトリック識別子「container-xbkvf8fe-responsetime」である最新のメトリクスデータの送信が要求された場合を説明する。
【0083】
監視データストア103は、アプリBオペレータコンテナ105から、メトリクスデータを送信するための所定リクエストを受信する(S1201)。例えば、このリクエストには、アプリBオペレータコンテナ105が要求するメトリックデータのメトリック識別子「container-xbkvf8fe-responsetime」が含まれる。
【0084】
監視データストア103は、リクエストを受信すると、このリクエストに対応する最新のメトリクスデータをメトリクスデータ表801から取得する(S1202)。
図5の例では、メトリクスデータ表801における、メトリック識別子が「container-xbkvf8fe-responsetime」である行のうち時刻が最新の行R80101を取得する。
【0085】
監視データストア103は、S1202で取得したメトリクスデータ(送信対象メトリクスデータ)を必要に応じて(抑制判定失効日時に応じて)変更する構成変更抑制処理S1203を実行する。具体的には、監視データストア103は、メトリクスデータの送信先(例えば、アプリBオペレータコンテナ105)のオペレータ識別子(例えば、「appB-opr」)、及びメトリック識別子(例えば、「container-xbkvf8fe-responsetime」)を引数として構成変更抑制処理S1203を呼び出す。構成変更抑制処理S1203の詳細は後述する。
【0086】
監視データストア103は、S1203で変更した(又は変更しなかった)メトリクスデータを、オペレータコンテナ110に送信する。例えば、監視データストア103は、変更したメトリクスデータをアプリBオペレータコンテナ105に送信する。以上でメトリクスデータ送信処理s1は終了する。
ここで構成変更抑制処理S1203の詳細を説明する。
【0087】
<構成変更抑制処理>
図16は、構成変更抑制処理S1203の詳細を説明するフローチャートである。
【0088】
監視データストア103は、構成変更操作履歴表802から、送信対象メトリクスデータの送信先のオペレータと異なる他のオペレータであって、その変更抑制判定失効日時がまだ到来していないオペレータを検索する(なお、変更抑制判定失効日時がまだ到来していない全てのオペレータを対象としてもよい)。
【0089】
具体的には、監視データストア103は、構成変更操作履歴表802を参照して、引数として渡されたオペレータ識別子とは異なるオペレータ識別子が設定され、変更抑制判定失効日時80202が現在時刻よりも未来である行を検索する。
【0090】
変更抑制判定失効日時がまだ到来していない他のオペレータを検索できた場合は(S1301:YES)、監視データストア103はS1032の処理を実行し、変更抑制判定失効日時がまだ到来していない他のオペレータを検索できなかった場合は(S1301:NO)、構成変更抑制処理S1203は終了する(送信対象メトリクスデータの更新は行わない)。
【0091】
S1302において監視データストア103は、送信対象メトリクスデータを、S1301で特定した構成情報の変更が実施される前のメトリクスデータに変更し、構成変更抑制処理S1203は終了する。
【0092】
例えば、監視データストア103は、時刻「2021-03-02T09:32:00Z」において構成変更操作履歴表802を参照し、
図6に示す構成変更操作履歴表802に、他のオペレータA「appA-opr」が時刻「2021-03-02T09:30:00Z」で行った構成情報の変更(行R80201)が有効な状態で存在した(行R80201の変更抑制判定失効日時80202が未到来)と判定する。この場合、監視データストア103はメトリクスデータ表801を参照して時刻「2021-03-02T09:30:00Z」以前の最新の時刻に係る行R80102を取得し、取得した行R80102のデータで送信対象メトリクスデータを書き換える。
【0093】
このように、構成変更抑制処理S1203は、あるオペレータがあるアプリの構成情報の変更を行おうとする際、過去の所定時間以内に他のオペレータによる当該アプリの構成情報の変更履歴が存在した場合は、その構成情報の変更を抑制する。
【0094】
以上のように、本実施形態のコンテナ管理システム100は、第1のオペレータ(例えば、アプリAオペレータコンテナ104)によるコンテナの構成情報の変更の実行を検知した場合に、所定時間(例えば、構成情報の変更の発生日時から変更抑制判定失効日時まで)、第2のオペレータ(例えば、アプリBオペレータコンテナ105)によるコンテナの構成情報の変更の実行を禁止させる。
【0095】
特に、第1実施形態のコンテナ管理システム100では、アプリBオペレータコンテナ105(アプリAオペレータコンテナ104も同様)は、メトリクスデータに基づき応答性能が低下したと判定した場合にコンテナの構成情報の変更を実行するものであり、構成変更監視コンポーネント102及び監視データストア103は、第1のオペレータ(例えば、アプリAオペレータコンテナ104)によるコンテナの構成情報の変更の実行を検知した場合に、第2のオペレータに(例えば、アプリBオペレータコンテナ105)、所定時間、応答性能が低下していないことを示すメトリクスデータを送信する。
【0096】
これにより、第2のオペレータは所定時間、構成情報の変更を要求することがなく、第1のオペレータによる構成情報の変更に起因する、第2のオペレータによる構成情報の変更が抑制される。
【0097】
すなわち、例えば、オペレータAによる運用操作に起因する一時的なメトリクス変動によって、別のオペレータBの運用操作が誘発されることを阻止し、運用操作の無限ループやリソースの過剰利用を抑制することができる。また、抑制期間を有限にしていることにより、メトリクス変動が一時的なものではなかった場合に、オペレータBの運用操作が実施されないことを防ぐことができる。
【0098】
このように、本実施形態のコンテナ管理システム100によれば、複数のオペレータによるコンテナの構成情報の変更を安定的にコントロールすることができる。
【0099】
また、本実施形態のコンテナ管理システム100は、各オペレータによるコンテナの構成情報の変更の実行の履歴を記憶する構成変更操作履歴表802を備えており、この構成変更操作履歴表802に基づき、第2のオペレータによるコンテナの構成情報の変更の実行を禁止させる。このように、各オペレータによる構成情報の変更履歴を管理することで、多数のオペレータが存在するコンテナ管理システム100であっても、コンテナの構成情報の変更を安定的にコントロールすることができる。
【0100】
また、本実施形態のコンテナ管理システム100は、構成情報の変更要求の発行元と、構成情報の変更要求に係るオペレータとの対応関係の履歴を記憶したOP-SA対応表201を記憶しており、コンテナの構成情報の変更要求を取得した場合に、OP-SA対応表201に基づき、第1のオペレータによるコンテナの構成情報の変更の実行があったと検知する。すなわち、オペレータ以外の発行元(ユーザアカウント等)に基づく構成情報の変更をコントロール外とすることで、柔軟なシステム運用が可能となる。
【0101】
-第2実施形態-
次に、本発明の第2実施形態について説明する。第2実施形態に係るコンテナ管理システム100は、構成変更操作履歴表802を有するコンポーネントが、第1実施形態のように監視データストア103ではなく、構成変更監視コンポーネント102である。これにより、例えば、コンテナ管理システム100における実行基盤の監視のために外部システム(例えば、SaaS(Software as a Service))を利用している等により、監視デ
ータストア103の機能を拡張できない場合においても、第1実施形態と同様に、構成情報の変更の抑制を行うことができる。
【0102】
本実施形態では、構成変更監視コンポーネント102のみが、構成情報の変更をコントロールする構成変更管理部を構成する。
【0103】
まず、第2実施形態に係るコンテナ管理システム100の構成は第1実施形態と同一である。
【0104】
<構成変更監視コンポーネント>
図17は、第2実施形態に係る構成変更監視コンポーネント102が有する機能の一例を示すブロック図である。
【0105】
同図に示すOP-SA対応表201、及びOP-SA対応表更新処理部202は第1実施形態と同様である。構成変更操作履歴表802は、第1実施形態に係る監視データストア103が記憶している構成変更操作履歴表802と同様である。
【0106】
構成変更監視処理部1501は、第1実施形態に係る監視データストア103の構成変更履歴更新処理部805と同様である。この構成変更監視処理部1501は、コンテナオーケストレータ101から送信されたコンテナの制御命令をフックして、そのコンテナの構成情報の変更内容を参照することができる。また、この構成変更監視処理部1501は、参照した変更内容に応じて構成情報の変更の実行の可否を判定し、その判定結果をコンテナオーケストレータ101に返送する。
【0107】
図18は、第2実施形態に係る監視データストア103が有する機能の一例を示すブロック図である。
【0108】
メトリクスデータ表301は、第1実施形態に係るメトリクスデータ表801と同様である。
【0109】
メトリクスデータ送信処理部1801は、第1実施形態に係るメトリクスデータ送信処理部803と類似し、各オペレータコンテナ110(アプリAオペレータコンテナ104、アプリBオペレータコンテナ105)に対してメトリクスデータを送信する。
【0110】
図19は、第2実施形態に係る構成情報管理処理を示すシーケンス図である。まず、同図に示すメトリクスデータ送信処理s1、アプリAオペレータコンテナ104によるアプリAの応答性能が低下していることの検知(s2)、アプリAオペレータコンテナ104によるアプリ構成情報変更要求の送信(s3)、及び、コンテナオーケストレータ101による構成変更要求通知の送信(s4)は第1実施形態と同様である。
【0111】
一方、構成変更監視コンポーネント102は、構成変更監視処理s51を実行している。
【0112】
すなわち、構成変更監視コンポーネント102は、コンテナオーケストレータ101からの構成変更要求通知の受信を監視している。構成変更監視コンポーネント102は、構成変更要求通知を受信すると、構成情報の変更の要求元がオペレータであることを確認し、要求元がオペレータである場合は、構成変更操作履歴表802を参照し、過去所定時間以内にオペレータによる構成情報の変更があったか否かを確認する。この際、構成変更監視コンポーネント102は、第1実施形態と同様に、処理続行許可通知を、コンテナオーケストレータ101に送信する(s7)。以上の構成変更監視処理s51の詳細は後述する。
【0113】
構成変更監視コンポーネント102から処理続行許可通知を受信したコンテナオーケストレータ101は、第1実施形態と同様に、アプリAコンテナ106におけるアプリAのコンテナの構成情報を変更する(例えば、コンテナ数を増加する)ための指示である構成変更要求を送信する構成変更処理を実行する(s8)。
【0114】
アプリAコンテナ106は、第1実施形態と同様に、構成変更要求を受信すると、アプリAのコンテナ数を増加させる(s9)。
【0115】
以下では、構成変更監視コンポーネント102は、構成変更監視処理s51において、構成変更操作履歴表802に、過去所定時間以内にオペレータによる構成情報の変更が存在せず、
図6に示す構成変更操作履歴表802の行R80201に、s4で受信した構成変更要求通知に係る構成情報の変更の情報を追加したものとする。
【0116】
監視データストア103は、アプリBオペレータコンテナ105を含む各オペレータ110に対してメトリクスデータを定期的に送信するメトリクスデータ送信処理s1を実行
している。具体的には、監視データストア103は、メトリクスデータを送信する際は、構成変更操作履歴表802を参照し、これまで受信したメトリクスデータ(ここでは、メトリック識別子「container-xbkvf8fe-responsetime」のメトリクスデータ)のうち、直近のメトリクスデータを送信する。
【0117】
アプリBオペレータコンテナ105は、監視データストア103から受信したメトリクスデータによりアプリBの応答性能が低下していることを検知する(s14)。ここでは、時刻t4(2021-03-02T09:36:00Z)において、メトリック識別子「container-xbkvf8fe-responsetime」のメトリクスデータに関して、アプリAオペレータコンテナ104によるアプリAコンテナ106の構成情報の変更の影響により、アプリBコンテナ107の応答性能が低下したものとする。
【0118】
すると、アプリBオペレータコンテナ105は、アプリBコンテナ107の処理能力を増強して性能低下を解消するため、コンテナオーケストレータ101に対してアプリBコンテナ107の構成情報を変更(例えば、コンテナ数の増加)させるためのアプリ構成情報変更要求を送信する(s15)。
【0119】
コンテナオーケストレータ101は、アプリ構成情報変更要求を受信すると、s3と同様に、自身が記憶している構成情報の変更を試行する。そして、コンテナオーケストレータ101は、構成情報の変更の情報であるリソース操作情報表501を生成し、生成したリソース操作情報表501を含む構成変更要求通知を構成変更監視コンポーネント102に送信する(s17)。
【0120】
一方、構成変更監視コンポーネント102は、構成変更監視処理s51を実行中である。
【0121】
すなわち、まず、構成変更監視コンポーネント102は、コンテナオーケストレータ101から、アプリBコンテナ107に係る構成変更要求通知を受信すると、過去所定時間以内の、各オペレータコンテナ110による構成情報の変更の履歴の有無を確認することで、各オペレータコンテナ110による変更抑制判定失効日時が過去であるか否かを確認する。
【0122】
例えば、構成変更監視コンポーネント102は、構成変更操作履歴表802から、メトリック識別子「container-xbkvf8fe-responsetime」のメトリクスデータに係る行R80201の変更抑制判定失効日時80202が過去の時刻であるか否かを確認する。
【0123】
変更抑制判定失効日時が過去でない場合は、構成変更監視コンポーネント102は、コンテナオーケストレータ101に、構成情報の変更を行わない旨の却下通知を送信する。却下通知を受信したコンテナオーケストレータ101は、アプリBコンテナ107の構成情報の変更(コンテナ数の増加)を行わない。
【0124】
一方、変更抑制判定失効日時が過去である場合は、構成変更監視コンポーネント102は、コンテナオーケストレータ101に、構成情報の変更を実行する許可通知を送信する。許可通知を受信したコンテナオーケストレータ101は、アプリBコンテナ107の構成情報の変更(コンテナ数の増加)を実行する。
【0125】
なお、構成変更監視コンポーネント102は、変更抑制判定失効日時以降に、コンテナオーケストレータ101からアプリBコンテナ107に係る構成変更要求通知を受信した場合には、構成情報の変更を実行する。すなわち、アプリBコンテナ107の構成情報の
変更が行われない状態が継続し続けることはなく、不都合は生じない。
【0126】
以上のように、アプリAオペレータコンテナ104によるアプリAコンテナ106の構成情報の変更の後は、一定時間、アプリBオペレータコンテナ105による構成情報の変更が抑止、すなわち変更が遅延されている。
以下、構成変更監視処理s51の詳細を説明する。
【0127】
<構成変更監視処理>
図20は、第2実施形態に係る構成変更監視処理s51の詳細を示すフローチャートである。
【0128】
構成変更監視コンポーネント102は、リソース操作情報表501を含む構成変更要求通知を受信する(S1701)。
【0129】
構成変更監視コンポーネント102は、s1701で受信した構成変更要求通知に基づき、構成変更要求通知の送信元がオペレータであるか否かを判定する(s1702)。具体的には、構成変更監視コンポーネント102は、構成変更要求通知に含まれているリソース操作情報表501の要求元識別子50101を抽出し、抽出した内容が、OP-SA対応表201の各行のサービスアカウント識別子20102のいずれかと一致するか否かを判定する。
【0130】
構成変更要求通知の送信元がオペレータである場合は(s1703:YES)、構成変更監視コンポーネント102はs1704の処理を実行し、構成変更要求通知の送信元がオペレータでない場合は(s1703:NO)、構成変更監視コンポーネント102は構成変更監視処理s51を終了する。
【0131】
S1703において構成変更監視コンポーネント102は、構成変更操作履歴表802を参照することで、構成変更要求通知の要求元のオペレータと異なる、過去所定時間以内に構成情報の変更を行ったオペレータが存在するか否かを確認する(なお、過去所定時間以内に構成情報の変更を行った全てのオペレータとしてもよい)。例えば、構成変更監視コンポーネント102は、構成変更操作履歴表802のオペレータ識別子を参照して、構成変更要求通知の要求元のオペレータと異なるオペレータのレコードを抽出し、抽出したレコードの変更抑制判定失効日時80202が示す日時が現在未だ到来していないレコードがあるか否かを検索する。
【0132】
過去所定時間以内に構成情報の変更を行った他オペレータが存在する場合は(S1703:YES)、構成変更監視コンポーネント102はS1704の処理を実行し、過去所定時間以内に構成情報の変更を行った他オペレータが存在しない場合は(S1703:NO)、構成変更監視コンポーネント102はS1705の処理を実行する。
【0133】
S1705において構成変更監視コンポーネント102は、コンテナオーケストレータ101に対して、構成情報の変更を却下する通知を返信する。その後、構成変更監視処理s51は終了する。
【0134】
S1704において構成変更監視コンポーネント102は、構成変更要求通知が示す構成情報の変更を、構成変更操作履歴表802に追加する。
【0135】
具体的には、構成変更監視コンポーネント102は、構成変更操作履歴表802の通知情報識別子、オペレータ識別子、要求元識別子、更新後情報、及び発生日時80203には、S1701にて受信したリソース操作情報表501から抽出した値を設定する。変更
抑制判定失効日時80202には、オペレータごとに決定された所定の時間を発生日時から経過させた時刻が設定される。
【0136】
そして、構成変更監視コンポーネント102は、コンテナオーケストレータ101に構成情報の変更の許可の通知を返信する(S1706)。その後、構成変更監視処理s51は終了する。
【0137】
例えば、アプリAオペレータコンテナ104による構成情報の変更(コンテナ数の変更)が、時刻「2021-03-02T09:30:00Z」に実施されるとする(発生日時)。すると、S1701においては、
図12に示すリソース操作情報表501を含む構成変更要求通知に含まれるデータが、コンテナオーケストレータ101から構成変更監視コンポーネント102に送信される。その後、S1705においては、
図6に示す構成変更操作履歴表802の行R80201にデータが追加される。ここで、
図6に示す変更抑制判定失効日時80202がアプリAオペレータコンテナ104に係る構成情報の変更から所定時間後(5分後)の時刻「2021-03-02T09:35:00Z」に設定されている。なお、この所定時間は、すべてのオペレータのすべての処理に対して同じとしてもよいし、各オペレータの処理ごとに異ならせてもよい。
【0138】
このように、構成変更監視処理s51は、オペレータによる構成情報の変更イベントを検出し、過去所定時間以内に他のオペレータによる構成情報の変更履歴が存在した場合はコンテナオーケストレータ101における構成情報の変更を中止させ、構成情報の変更履歴が存在しない場合はコンテナオーケストレータ101における構成情報の変更処理を続行させる。
<メトリクスデータ送信処理>
図20は、第2実施形態に係るメトリクスデータ送信処理s1の一例を説明するフローチャートである。なお、メトリクスデータ送信処理s11の開始のタイミングは、第1実施形態と同様である。ここでは、時刻「2021-03-02T09:32:00Z」に、アプリBオペレータコンテナ105によってメトリック識別子「container-xbkvf8fe-responsetime」である最新のメトリクスデータの送信が要求された場合を説明する。
【0139】
監視データストア103は、第1実施形態と同様に、アプリBオペレータコンテナ105から、メトリクスデータを送信するためのリクエストを受信する(S1901)。例えば、このリクエストには、アプリBオペレータコンテナ105が要求するメトリックのメトリック識別子「container-xbkvf8fe-responsetime」が含まれる。
【0140】
監視データストア103は、第1実施形態と同様に、リクエストを受信すると、このリクエストに対応する最新のメトリクスデータをメトリクスデータ表801から取得する(S1902)。
図20の例では、メトリクスデータ表801における、メトリック識別子が「container-xbkvf8fe-responsetime」である行のうち時刻が最新の行R80101を取得する。
【0141】
監視データストア103は、S1902で取得したメトリクスデータを、オペレータコンテナ110に送信する。例えば、監視データストア103は、メトリクスデータをアプリBオペレータコンテナ105に送信する。以上でメトリクスデータ送信処理s1は終了する。
【0142】
以上のように、第2実施形態に係るコンテナ管理システム100は、第1のオペレータ(例えば、アプリAオペレータ104)によるその発生日時でのコンテナの構成情報の変
更の実行を検知した場合に、第2のオペレータ(例えば、アプリBオペレータ105)によるコンテナの構成情報の変更の要求を受信し、受信したタイミングが、変更抑制判定失効日時を経過している場合にのみ、第2のオペレータによるコンテナの構成情報の変更を実行する。
【0143】
これにより、変更抑制判定失効日時以前に第2のオペレータから要求された構成情報の要求は却下され、複数のオペレータによるコンテナの構成情報の変更が安定的にコントロールされることとなる。
【0144】
本発明は以上に説明した実施形態に限定されるものではなく、様々な変形例が含まれる。上記した実施形態は本発明のより良い理解のために詳細に説明したものであり、必ずしも説明の全ての構成を備えるものに限定されるものではない。
【0145】
例えば、各実施例の各装置が備える各機能の一部は他の装置に設けてもよいし、別装置が備える機能を同一の装置に設けてもよい。
【0146】
また、本実施形態の構成情報はコンテナにおける構成情報を想定したが、それ以外のリソースに関する構成情報であっても、本発明のコンテナ管理システムは適用可能である。例えば、仮想マシン(Virtual Machine)の構成情報であっても適用可能である。
【符号の説明】
【0147】
100 コンテナ管理システム、101 コンテナオーケストレータ、102 構成変更監視コンポーネント、103 監視データストア、130 コンテナ、110 オペレータコンテナ、120 アプリコンテナ
【手続補正書】
【提出日】2021-06-17
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0045
【補正方法】変更
【補正の内容】
【0045】
コンテナオーケストレータ101は、処理続行許可を受信すると、コンテナの作成処理を実施する(s104)。この処理によって、アプリAオペレータコンテナ104のインスタンス(コンテナの実体)が作成される(s105)。
ここで、OP-SA対応表更新実行処理s102の詳細を説明する。
【手続補正2】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】