IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特許7578735クラスター、クラスターの管理方法およびクラスター管理プログラム
<>
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図1
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図2
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図3
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図4
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図5
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図6
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図7
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図8
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図9
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図10
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図11
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図12
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図13
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図14
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図15
  • 特許-クラスター、クラスターの管理方法およびクラスター管理プログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-28
(45)【発行日】2024-11-06
(54)【発明の名称】クラスター、クラスターの管理方法およびクラスター管理プログラム
(51)【国際特許分類】
   G06F 11/20 20060101AFI20241029BHJP
   H04L 61/4511 20220101ALI20241029BHJP
【FI】
G06F11/20 623
H04L61/4511
【請求項の数】 12
(21)【出願番号】P 2023014130
(22)【出願日】2023-02-01
(65)【公開番号】P2024109375
(43)【公開日】2024-08-14
【審査請求日】2023-07-04
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】金城 教幸
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2007-156569(JP,A)
【文献】米国特許出願公開第2015/0295834(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/20
H04L 61/4511
(57)【特許請求の範囲】
【請求項1】
ネットワークに接続されているクライアント端末からの要求に応じて実行するプログラムを格納する記憶部と、前記プログラムを実行するプロセッサと、を有する複数のノードを備えるクラスターにおけるクラスターの管理方法であって、
前記プロセッサは、
代替クラスターが格納している少なくとも1つの代替プログラムを、クラスターが格納している少なくとも1つの対象プログラムの代替で実行する場合に、
前記クライアント端末から送信された前記対象プログラムへの要求を取得すると、
前記対象プログラムへの要求に応じて前記代替プログラムを実行するように、前記対象プログラムへの要求を前記代替クラスターに転送する、要求転送処理を実行する、
クラスターの管理方法。
【請求項2】
請求項1に記載のクラスターの管理方法であって、
前記クラスターは、少なくとも1つのワーカーポッドを有しており、
前記要求転送処理にて、全ての前記ワーカーポッドのプログラムへの要求を、前記対象プログラムへの要求として、前記代替クラスターに転送する、
クラスターの管理方法。
【請求項3】
請求項2に記載のクラスターの管理方法であって、
前記クラスター及び前代替クラスターは、それぞれ異なるIPアドレスが割り当てられており、
DNSサーバは、前記クラスターのドメイン名に対して前記クラスターのIPアドレスを対応付けたDNSレコードを保存しており、
前記プロセッサは、さらに、
代替クラスターが有する代替プログラムを、前記対象プログラムの代替で実行する場合に、
前記DNSサーバに保存されている前記DNSレコードを、前記クラスターのドメイン名に対して前記代替クラスターのIPアドレスを対応付けたDNSレコードに書き換える旨の情報を含むDNSレコード更新情報を、前記DNSサーバに送信するDNSレコード変更処理を、実行する、
クラスターの管理方法。
【請求項4】
請求項3に記載のクラスターの管理方法であって、
前記代替クラスターのプロセッサは、
代替クラスターが有する代替プログラムを、前記対象プログラムの代替で実行する場合に、
前記代替プログラムの実行に問題がある否かを判定する代替プログラム判定処理を実行し、
前記代替プログラム判定処理にて、前記代替プログラムの実行に問題があると判定した場合には、DNSレコード更新処理を実行し、
前記代替プログラム判定処理にて、前記代替プログラムの実行に問題があると判定した場合には、転送を停止する旨の情報を含む転送中止情報を、前記クラスターに送信する、転送中止要求処理を実行し、
前記クラスターの前記プロセッサは、さらに、
前記転送中止情報を受け取ると、前記対象プログラムへの要求を前記代替クラスターに転送する前記要求転送処理の実行を停止する、転送中止処理を実行する、
クラスターの管理方法。
【請求項5】
請求項4に記載のクラスターの管理方法であって、
前記要求転送処理は、前記クラスターに設けられた転送ポッドが実行し、
前記クラスターの前記プロセッサは、
所定の時間間隔の間に、前記クライアント端末から前記クラスターに送信された前記対象プログラムへの要求のデータ量を取得し、
取得した前記クライアント端末から前記クラスターに送信された前記対象プログラムへの要求のデータ量が、所定のデータ送信量下限値よりも小さい場合に、転送ポッドを削除する、転送ポッド削除処理を実行する
クラスターの管理方法。
【請求項6】
請求項1に記載のクラスターの管理方法であって、
前記要求転送処理は、前記クラスターに設けられた転送ポッドが実行する、
クラスターの管理方法。
【請求項7】
請求項6に記載のクラスターの管理方法であって、
前記プロセッサは、さらに、
所定の時間間隔の間に、前記クライアント端末から前記クラスターに送信された前記対象プログラムへの要求のデータ量を取得し、
取得した前記クライアント端末から前記クラスターに送信された前記対象プログラムへの要求のデータ量が、所定のデータ送信量下限値よりも小さい場合に、転送ポッドを削除する、転送ポッド削除処理を実行する
クラスターの管理方法。
【請求項8】
請求項1に記載のクラスターの管理方法であって、
前記代替クラスターのプロセッサは、
代替クラスターが有する代替プログラムを、前記対象プログラムの代替で実行する場合に、
前記代替プログラムの実行に問題がある否かを判定する代替プログラム判定処理を実行し、
前記代替プログラム判定処理にて、前記代替プログラムの実行に問題があると判定した場合には、転送を停止する旨の情報を含む転送中止情報を、前記クラスターに送信する、転送中止要求処理を実行し、
前記クラスターの前記プロセッサは、さらに、
前記転送中止情報を受け取ると、前記対象プログラムへの要求に応じて前記代替プログラムを実行するように、前記対象プログラムへの要求を前記代替クラスターに転送する前記要求転送処理の実行を停止する、転送中止処理を実行する、
クラスターの管理方法。
【請求項9】
請求項8に記載のクラスターの管理方法であって、
前記代替クラスターの前記プロセッサは、
前記代替プログラムのエラーの頻度を取得し、
取得した前記代替プログラムのエラーの頻度が、所定のエラー頻度上限値よりも高い場合に、前記代替プログラムの実行に問題があると判定する、第1代替プログラム問題検出処理を実行する、
クラスターの管理方法。
【請求項10】
請求項8に記載のクラスターの管理方法であって、
前記代替クラスターの前記プロセッサは、
前記クラスターから前記代替クラスターに転送される前記対象プログラムへの要求のデータ量を取得し、
取得した前記クラスターから前記代替クラスターに転送される前記対象プログラムへの要求の転送速度が、所定のデータ転送速度上限値よりも大きい場合に、前記代替プログラムの実行に問題があると判定する、第2代替プログラム問題検出処理を実行する、
クラスターの管理方法。
【請求項11】
ネットワークに接続されているクライアント端末からの要求に応じて実行するプログラムを格納する記憶部と、前記プログラムを実行するプロセッサと、を有する複数のノードを備えるクラスターであって、
代替クラスターが格納している少なくともの1つの代替プログラムを、クラスターが格納している少なくとも1つの対象プログラムの代替で実行する場合に、
前記クライアント端末から送信された前記対象プログラムへの要求を取得すると、
前記対象プログラムへの要求に応じて前記代替プログラムを実行するように、前記対象プログラムへの要求を前記代替クラスターに転送する、要求転送処理を実行する、
クラスター。
【請求項12】
ネットワークに接続されているクライアント端末からの要求に応じて実行するプログラムを格納する記憶部と、前記プログラムを実行するプロセッサと、を有する複数のノードを備えるクラスターに実行させるクラスター管理プログラムであって、
前記プロセッサに、
前記クライアント端末から送信された対象プログラムへの要求を取得すると、
前記対象プログラムへの要求に応じて代替プログラムを実行するように、前記対象プログラムへの要求を代替クラスターに転送する、要求転送処理を実行させる、
クラスター管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラスター、クラスターの管理方法およびクラスター管理プログラムに関する。
【背景技術】
【0002】
クラスターと呼ばれるシステムが用いられている。クラスターは、複数のコンピュータをまとめて、あたかも1台のコンピュータの様に動作させるシステムである。多くの場合、クラスターは、ネットワークに接続されている。そして、ユーザは、クライアント端末にネットワークを介してクラスターに接続させ、クライアント端末を操作して、クラスターのソフトウェアを使用することができる。
【0003】
クラスターの構成要素であるコンピュータのうちのいくつかが障害などで故障して停止する場合であっても、ユーザは、クライアント端末を使用して、クラスターを使用できる。そして、故障したコンピュータの修理や交換を行う間も、ユーザは、クライアント端末を使用して、クラスターを使用できる。
【0004】
クラスターの構成要素であるサーバで作動するプログラムを変更する場合がある。例えば、サーバのオペレーティングシステムのアップデートや、サーバのアプリケーションのアップデートや、新たにサーバにソフトウェアを導入する場合がある。そして、クラスターのサーバで作動するプログラムの構成を変更する場合に、不具合が生じることを抑制する技術がある。例えば、特許文献1に記載されている技術では、コンテナを用いる本番サーバで、使用しているコンテナイメージのバージョンよりも、新しいバージョンのコンテナイメージがリリースされている場合に、新しいバージョンのコンテナイメージを検証用サーバで使用する。そして、特許文献1に記載されている技術では、その際に、新しいバージョンのコンテナイメージの動作の監視と検証を行う。従って、特許文献1に記載されている技術を用いれば、本番サーバで使用しているバージョンよりも新しいバージョンのコンテナイメージを、本番サーバに用いる前に、新しいバージョンのコンテナイメージが問題なく使用できるか否かの検証はできる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-56986号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、特許文献1に記載されている技術では、本番サーバから、本番サーバの構成の一部を変更した別のサーバに切り替えて使用する場合を想定していない。従って、特許文献1に記載されている技術を用いても、本番サーバから、本番サーバの構成の一部を変更した別のサーバに切り替えて使用する場合に生じる問題に対して、対処できない。
【0007】
例えば、従来、第1のクラスターを、第2のクラスターに切り替えて使用する場合には、次の様に、DNSサーバに保存されている第1のクラスターのドメイン名のDNSレコード(以下、「第1DNSレコード」と称する)を書き換える。切り替える前は、DNSサーバの、第1DNSレコードには、第1のクラスターのドメイン名と、第1のクラスターのIPアドレスと、が対応付けて保存されている。クライアント端末が、第1のクラスターのドメイン名を用いて、第1のクラスターにアクセスしようとすると、DNSサーバの第1DNSレコードに保存されている第1のクラスターのIPアドレスが参照され、クライアント端末は第1のクラスターにアクセスできる。
【0008】
切り替える際、DNSサーバの第1DNSレコードに、第1のクラスターのドメイン名と、第2のクラスターのIPアドレスとを対応付けて保存する。その結果、クライアント端末が、第1のクラスターのドメイン名を用いて、第1のクラスターにアクセスしようとすると、DNSサーバの第1DNSレコードに保存されている第2のクラスターのIPアドレスが参照され、クライアント端末は第2のクラスターにアクセスできる。この様に、第1DNSレコードに保存されているIPアドレスを変更することで、第1のクラスターから第2のクラスターに切り替えることができる。
【0009】
ところで、数多くのDNSサーバが存在する。全てのDNSサーバの第1DNSレコードを、直ちに変更することは容易ではない。全てのDNSサーバの、第1DNSレコードの変更が完了するまで、クライアント端末が、第1のクラスターのドメイン名を用いて、第1のクラスターにアクセスしようとして、第1DNSレコードが変更されていないDNSサーバの、第1DNSレコードを参照し、第1のクラスターにアクセスするおそれがある。従って、一部のDNSサーバの第1DNSレコードを書き換えたとしても、全てのDNSサーバの、第1DNSレコードの変更が完了するまで、第1クラスターから第2クラスターに切り替えることが完了しない。
【0010】
さらに、クライアント端末は、通常、DNSレコードを保存しているキャッシュを有する。そして、キャッシュに保存されている第1DNSレコードの変更が完了するまで、クライアント端末は、第1のクラスターにアクセスしようとすると、第1のクラスターにアクセスする。すなわち、クライアント端末のキャッシュに保存されている第1DNSレコードの変更が完了するまで、第1のクラスターから第2のクラスターに切り替えることが完了しない。
【0011】
この様に、従来のクラスターを切り替える方法では、DNSサーバのDNSレコードを変更しても、直ちにクラスターの切り替えが完了できないおそれがある。また、従来のクラスターを切り替える方法では、クラスター単位の切り替えはできても、アプリケーション(プログラム)単位での切り替えはできない。
【0012】
そこで、本発明の目的は、クラスターの切り替えをより早く行うことができる、クラスター、クラスターの管理方法およびクラスター管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
上記目的を達成するため、本発明のクラスターの管理方法の一態様は、ネットワークに接続されているクライアント端末からの要求に応じて実行するプログラムを格納する記憶部と、前記プログラムを実行するプロセッサと、を有する複数のノードを備えるクラスターにおけるクラスターの管理方法であって、前記プロセッサは、代替クラスターが格納している少なくとも1つの代替プログラムを、クラスターが格納している少なくとも1つの対象プログラムの代替で実行する場合に、前記クライアント端末から送信された前記対象プログラムへの要求を取得すると、前記対象プログラムへの要求に応じて前記代替プログラムを実行するように、前記対象プログラムへの要求を前記代替クラスターに転送する、要求転送処理を実行する。
【0014】
また、本発明のクラスターの一態様は、ネットワークに接続されているクライアント端末からの要求に応じて実行するプログラムを格納する記憶部と、前記プログラムを実行するプロセッサと、を有する複数のノードを備えるクラスターであって、代替クラスターが格納している少なくトンの1つの代替プログラムを、クラスターが格納している少なくとも1つの対象プログラムの代替で実行する場合に、前記クライアント端末から送信された前記対象プログラムへの要求を取得すると、前記対象プログラムへの要求に応じて前記代替プログラムを実行するように、前記対象プログラムへの要求を前記代替クラスターに転送する、要求転送処理を実行する。
【発明の効果】
【0015】
本発明の代表的な形態によれば、クラスターの切り替えをより早く行うことができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0016】
図1図1は、実施例のクラスターシステムの構成の概要を示すブロック図である。
図2図2は、ワーカーノード200Aのハードウェア構成例を示すブロック図である。
図3図3は、ワーカーポッド230の機能構成例を示すブロック図である。
図4図4は、リクエストキューに格納されているデータの一例を示す図である。
図5図5は、クラスター1Aを使用し、代替クラスター1Bを使用していない状態(切り替え前の状態)の構成を説明する説明図である。
図6図6は、実施例の(A)クラスター1Aを代替クラスター1Bに切り替える手順の例を示すフローチャートである。
図7】は、ステップS101にて、転送ポッド210A、210Bがデプロイされた状態を示す説明図である。
図8図8は、ステップS102にて、ロードバランサー300A、300Bおよびルーターポッド220A、220Bが設定された状態を示す説明図である。
図9図9は、ステップS103にて、転送ポッド210Aが設定された状態を示す説明図である。
図10図10は、ステップS107にて、DNSサーバ600が設定された状態を示す説明図である。
図11図11は、ステップS110にて、ロードバランサー300A、300Bが設定され、転送ポッド210A、転送ポッド210Bが削除された状態を示す説明図である。
図12図12は、(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える手順を実行する前の状態(切り替え前の状態)の構成を説明する説明図である。
図13図13は、(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える手順の例を示すフローチャートである。
図14図14は、ステップS201にて、転送ポッド210A、210Bがデプロイされた状態を示す説明図である。
図15図15は、ステップS202にて、ロードバランサー300A、300Bおよびルーターポッド220A、220Bが設定された状態を示す説明図である。
図16図16は、ステップS203にて、転送ポッド210Aが設定された状態を示す説明図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0018】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0019】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0020】
本明細書等において、各種情報の例として、「XXテーブル」との表現にて説明することがあるが、「XXリスト」、「XXキュー」等のデータ構造で表現されてもよい。また、「XXテーブル」は、「XX情報」としてもよい。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
【0021】
<<システム構成>>
図1は、実施例のクラスターシステム1000の構成の概要を示すブロック図である。図1に示すように、クラスターシステム1000は、クラスター1Aと、ロードバランサー300Aと、代替クラスター1Bと、ロードバランサー300Bとを有する。クラスターシステム1000は、ネットワークNWを介して、クライアント端末500と、600と、に接続されている。
【0022】
クラスターは、複数のコンピュータをまとめて、あたかも1台のコンピュータの様に動作させるシステムである。クラスターは、複数のノードを有する。ノードは、仮想的または物理的なコンピュータである。また、ノードには、コンテナやポッドが作成されている。コンテナは、ソフトウェアを含む仮想的なOS環境である。また、ポッドは、1つ以上のコンテナを含む。ポッドには、1つ以上のボリュームを含むものもある。
【0023】
クラスター1Aは、ロードバランサー300Aや、クライアント端末500や、DNSサーバ600や、代替クラスター1Bに、ネットワークNWを介して接続されている。代替クラスター1Bは、クラスター1Aの代替に使用するクラスターである。代替クラスター1Bは、クラスター1Aと同様の構成を有する。
【0024】
クラスター1Aは、1つのマスターノード100Aと、複数のワーカーノード200Aと、を有する。クラスター1Aは、クラスターの一種である。本実施例では、クラスター1Aは、クラスターの例として、仮想的なOS環境(コンテナ)をポッドの形態で複数のサーバに作成して運用するクラスターである。
【0025】
マスターノード100Aおよびワーカーノード200Aは、ノードであり、記憶装置およびプロセッサを備えている。マスターノード100Aおよびワーカーノード200Aは、例えばPCやサーバコンピューターのような一般的な情報処理装置で実現できる。また、ワーカーノード200Aは1つ以上あればよい。
【0026】
マスターノード100Aは、複数のワーカーノード200Aを管理する。図1に示すように、ワーカーノード200Aそれぞれには、ポッドとして、転送ポッド210Aや、ルーターポッド220Aや、ワーカーポッド230A1~ワーカーポッド230Anが作成(デプロイ)されている。ワーカーポッド230A~ワーカーポッド230Anの総称を「ワーカーポッド230A」と呼ぶ。ワーカーポッド230A1~230Anそれぞれの数は、1つ以上であればよい。
【0027】
マスターノード100Aは、複数のワーカーノード200Aのポッド(転送ポッド210Aや、ルーターポッド220Aや、ワーカーポッド230A)を管理するコントロールプレーン110Aを有する。コントロールプレーン110Aを構成するプログラムは1つ以上のプログラムを実行して実現されている。
【0028】
転送ポッド210Aは、クラスター1Aの代替として代替クラスター1Bを用いる場合に、ワーカーポッド230Aに対するクライアント端末500からの要求を、代替クラスター1Bに転送するポッドである。ルーターポッド220Aは、クライアント端末500からの要求を、負荷が比較的かかっていないワーカーポッド230Aに転送するポッドである。ルーターポッド220Aの転送先は、ルーターポッド220Aが作成されているワーカーノード200A以外のワーカーノード200Aのワーカーポッド230Aでもよい。ワーカーポッド230Aはプログラムを含み、クライアント端末500からの要求に応じて、処理を実行するポッドである。転送ポッド210Aと、代替クラスター1Bの転送ポッド210Bとの総称を「転送ポッド210」と呼ぶ。また、ルーターポッド220Aと、代替クラスター1Bのルーターポッド220Bとの総称を、「ルーターポッド220」と呼ぶ。
【0029】
ロードバランサー300Aは、クライアント端末500からの要求を、負荷が比較的かかっていないワーカーノード200Aに転送する。ロードバランサー300Aと、ロードバランサー300Bとの総称を「ロードバランサー300」と呼ぶ。
【0030】
マスターノード100Aおよびワーカーノード200Aそれぞれと、ロードバランサー300A、300Bと、クライアント端末500と、DNSサーバ600とには、IPアドレスが割り当てられている。そして、ノードに作成されているポッド(転送ポッド210A、210Bと、ルーターポッド220A、220Bと、ワーカーポッド230A、230B)それぞれには、ポート番号が割り当てられている。
【0031】
クラスター1Aに対してドメイン名(例えば、「example.com」)が割り当てられている。また、複数のワーカーポッド230Aのうちで、同一構成のワーカーポッド230Aには、同一のサブドメイン名(例えば、「app1」)が割り当てられている。
【0032】
DNSサーバ600において、クラスター1Aのドメイン名(例えば、「example.com」)は、ロードバランサー300AのIPアドレスに対応付けられている。そして、ワーカーポッド230Aのドメイン名は、クラスター1Aのドメイン名に、ワーカーポッド230Aのサブドメイン名を加えたドメイン名(例えば、「app1.example.com」)である。ワーカーポッド230A1~ワーカーポッド230Anのうちで、ユーザが使用するワーカーポッド230は、ワーカーポッド230のドメイン名(例えば、「app1.example.com」)で指定できる。
【0033】
DNSサーバ600は、クラスターのドメイン名に対して、クラスターのIPアドレスを対応付けた情報を含むDNSレコード601を保存している。図1等では、多数のDNSレコードを省略して、クラスター1Aに関するDNSレコード601を示した。
【0034】
ネットワークNWは、有線のネットワークでもよいし、無線のネットワークでもよい。また、ネットワークNWは、インターネットのようなグローバルネットワークであってもよい。
【0035】
ユーザは、次の様に、クライアント端末500を操作して、ワーカーポッド230Aの有するプログラムを実行することができる。ここで、ワーカーポッド230Aの有するプログラムに対する命令と、ワーカーポッド230Aのドメイン名とを含む情報を、「ワーカーポッド230Aへの要求」と称する。
【0036】
ユーザは、クライアント端末500を操作して、ワーカーポッド230Aへの要求を、ワーカーポッド230Aのドメイン名(例えば、「app1.example.com」)で指定される宛先に送信する。すると、DNSサーバ600等が参照されて、ワーカーポッド230への要求は、ロードバランサー300Aに送信される。
【0037】
ロードバランサー300Aは、ワーカーポッド230Aへの要求を受信すると、ワーカーノード200Aのうちで、負荷が比較的かかっていないワーカーノード200Aに、ワーカーポッド230Aへの要求を転送する。
【0038】
ワーカーノード200Aでは、通常、ルーターポッド220Aがワーカーポッド230Aへの要求を受信して、ワーカーポッド230Aへの要求で指定されているワーカーポッド230Aのうちで、負荷が比較的かかっていないワーカーポッド230Aに、ワーカーポッド230Aへの要求を送信する。
【0039】
ワーカーポッド230Aは、ワーカーポッド230Aへの要求を受信すると、ワーカーポッド230Aへの要求に応じた処理を、ワーカーポッド230Aが有するプログラムが実行する。
【0040】
代替クラスター1Bをクラスター1Aの代わりに試しに使用して、代替クラスター1Bに問題がなければ、クラスター1Aの代わりに代替クラスター1Bを使用する場合がある。この様に、代替クラスター1Bをクラスター1Aの代わりに用いる場合には、以下で詳細を説明するように、ワーカーノード200Aでは、ルーターポッド220Aがワーカーポッド230Aへの要求を受信する代わりに、転送ポッド210Aが受信する。
【0041】
代替クラスター1Bは、クラスター1Aと同様に、コントロールプレーン110Bを有するマスターノード100Bと、転送ポッド210B、ルーターポッド220B、ワーカーポッド230B(230B1~230Bn)を有するワーカーノード200Bと、を備えている。
【0042】
<ワーカーノード200Aのハードウェア構成、図2
図2はワーカーノード200Aのハードウェア構成例を示すブロック図である。図2に示すように、ワーカーノード200Aは、プロセッサ21、主記憶装置22、副記憶装置23、入力装置24、出力装置25、ネットワークI/F26、これらを接続するバス27を有している。ワーカーノード200Aは、例えばPCやサーバコンピューターのような一般的な情報処理装置で実現できる。
【0043】
プロセッサ21は、副記憶装置23に記憶されたデータやプログラムを主記憶装置22に読み出して、プログラムによって定められた処理を実行する。図1を用いて上述した転送ポッド210Aは、副記憶装置23に記憶されている転送ポッドイメージ210Aaを主記憶装置22にデプロイ(配置)したものである。同様に、ルーターポッド220A、ワーカーポッド230A1~230Anは、副記憶装置23に記憶されているルーターポッドイメージ220Aa、ワーカーポッドイメージ230A1a~230Anaを、主記憶装置22にデプロイ(配置)したものである。これらのポッド(転送ポッド210A、ルーターポッド220A、ワーカーポッド230A1~230An)のデプロイは、マスターノード100Aのコントロールプレーン110Aの指示によって実行される。
【0044】
また、転送ポッドイメージ210Aa、ルーターポッドイメージ220Aa、ワーカーポッドイメージ230A1a~230Anaが保存されている場所は、ワーカーノード200Aとした。転送ポッドイメージ210Aa、ルーターポッドイメージ220Aa、ワーカーポッドイメージ230A1a~230Anaが保存されている場所は、コントロールプレーン110Aが読み出せる場所であればよい。
【0045】
主記憶装置22は、RAMなどで、揮発性記憶素子を有し、プロセッサ21が実行するプログラムや、データを記憶する。
【0046】
副記憶装置23は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで、不揮発性記憶素子を有し、プログラムやデータ等を記憶する装置である。副記憶装置23は、転送ポッドイメージ210Aa、ルーターポッドイメージ220Aa、ワーカーポッドイメージ230A1a~230Ana等を格納している。
【0047】
入力装置24は、キーボードやマウスなどのユーザの操作を受け付ける装置であり、ユーザの操作により入力された情報を取得する。出力装置25は、ディスプレイなど情報を出力する装置であり、例えば画面への表示により情報をユーザに提示する。なお、ワーカーノード200Aは、入力装置24および出力装置25を兼ねるタッチパネルを備えても良い。
【0048】
ネットワークI/F26は、マスターノード100A、ロードバランサー300A、300B、代替クラスター1B、クライアント端末500、DNSサーバ600等の装置と、ネットワークNWを介してデータを送受信可能なインターフェース(送受信装置)である。ワーカーノード200Aは、ネットワークI/F26を用いて、ネットワークNWに接続されている、マスターノード100A、ロードバランサー300A、300B、代替クラスター1B、クライアント端末500、DNSサーバ600等の装置とデータの送受信を行うことができる。
【0049】
マスターノード100Aと、代替クラスター1Bのマスターノード100Bおよびワーカーノード200Bと、ロードバランサー300A、300Bと、クライアント端末500と、DNSサーバ600とは、ワーカーノード200Aと同様に、例えばPCやサーバコンピューターのような一般的な情報処理装置で実現できる。
【0050】
<転送ポッド210の構成、図3
図3は、転送ポッド210Aの構成の概要を示すブロック図である。図3に示すように、転送ポッド210Aは、受信API部211と、キュー部212と、転送API部213と、プロキシ部214と、監視部215とを備えている。
【0051】
受信API部211は、転送ポッド210Aに向けて送信されたワーカーポッド230Aへの要求を受信する。受信API部211は、ワーカーポッド230Aへの要求の受信を待機する。受信API部211は、ワーカーポッド230Aへの要求を受信すると、受信したワーカーポッド230Aへの要求を、キュー部212のリクエストキューに保存する。
【0052】
キュー部212は、ワーカーポッド230Aへの要求を保存するリクエストキューを有する。そしてキュー部212は、リクエストキューに保存したワーカーポッド230Aへの要求を、転送API部213の問い合わせに応じて、転送API部213に送信する。
【0053】
図4は、リクエストキューに格納されているデータの一例を示す図である。図4に示すように、リクエストキューに保存されている情報には、ワーカーポッド230Aへの要求を受信した受信時刻401と、ワーカーポッド230Aへの要求を送信した送信元ホストのアドレス402と、ワーカーポッド230Aへの要求を転送ポッド210Aに転送した転送元のポート番号403と、転送先のワーカーポッド230Aのドメイン名である宛先ホスト404と、転送先のワーカーポッド230Aのポート番号である宛先ポート405と、ワーカーポッド230Aへの要求に含まれるワーカーポッド230Aへの命令であるリクエストメソッド406と、ワーカーポッド230Aのドメイン名に関するリクエストURL407と、を含む。
【0054】
転送API部213は、図3に示すように、キュー部212のリクエストキューに、未処理のワーカーポッド230Aへの要求が保存されているか否かを問い合わせる。そして、転送API部213は、未処理のワーカーポッド230Aへの要求がリクエストキューに保存されている場合には、リクエストキューから未処理のワーカーポッド230Aへの要求を取得して、プロキシ部214に送信する。
【0055】
プロキシ部214は、転送API部213から、ワーカーポッド230Aへの要求を受信する。また、監視部215から送信された転送先情報に基づいて算出した、ワーカーポッド230Aへの要求の送信先に、受信したワーカーポッド230Aへの要求を転送する。
【0056】
監視部215は、キュー部212、ワーカーポッド230A、ロードバランサー300Aを監視する。すなわち、監視部215は、キュー部212のリクエストキューに蓄積されている未処理のワーカーポッド230Aへの要求のデータ量をキュー部212から取得する。また、監視部215は、ワーカーポッド230Aが有するプログラムを実行して発生するエラーの頻度を、ワーカーポッド230Aから取得する。そして、監視部215は、クライアント端末500からロードバランサー300A(クラスター1A)に送信されたワーカーポッド230への要求(対象プログラムへの要求)のデータ量を、ロードバランサー300Aから取得する。
【0057】
また、監視部215は、未処理のワーカーポッド230Aへの要求の転送先が「ロードバランサー300」の旨を受信すると、未処理のワーカーポッド230Aへの要求の転送先を「ロードバランサー300」にする旨の転送先情報を、プロキシ部214に送信する。同様に、監視部215は、未処理のワーカーポッド230Aへの要求の転送先を「ルーターポッド220A」にする旨を受信すると、未処理のワーカーポッド230Aへの要求の転送先を「ルーターポッド220A」にする旨の転送先情報を、プロキシ部214に送信する。
【0058】
<<処理手順>>
次に、(A)クラスター1Aを代替クラスター1Bに切り替える手順(図6図11参照)、(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える手順(図12図16参照)について説明する。
【0059】
図5は、クラスター1Aを使用し、代替クラスター1Bを使用していない状態(切り替え前の状態)の構成を説明する説明図である。図5に示すように、切り替え前の状態では、クラスター1Aのおよび代替クラスター1Bには、転送ポッド210(転送ポッド210A、210B)は作成されていない。
【0060】
<(A)クラスター1Aを代替クラスター1Bに切り替える手順、図6図11
(A)クラスター1Aを代替クラスター1Bに切り替える場合には、次の場合がある。例えば、クラスター1Aのコンテナ基盤のアップデートのために、クラスター1Aのコンテナ基盤をアップデートしたシステムを代替クラスター1Bに構築する場合がある。そして、以下に説明するように、代替クラスター1Bをクラスター1Aの代わりに試験的に使用して、代替クラスター1Bに問題がなければ、クラスター1Aの代わりに代替クラスター1Bを使用する。
【0061】
クラスター1Aを代替クラスター1Bに切り替える準備として、代替クラスター1Bの設定や構成の変更を完了した後に、以下に説明する、(A)クラスター1Aを代替クラスター1Bに切り替える手順で、クラスター1Aを代替クラスター1Bに切り替えることができる。
図6は、(A)クラスター1Aを代替クラスター1Bに切り替える手順の例を示すフローチャートである。
【0062】
まず、クラスター1Aに転送ポッド210Aをデプロイし、代替クラスター1Bに転送ポッド210Bをデプロイする(ステップS101)。すなわち、クラスター1Aでは、マスターノード100Aのコントロールプレーン110Aは、ワーカーノード200Aそれぞれに対して、転送ポッドイメージ210Aa(図2参照)を用いて、転送ポッド210Aをデプロイする。また、代替クラスター1Bでは、マスターノード100Bのコントロールプレーン110Bは、ワーカーノード200Bそれぞれで、転送ポッドイメージ210Ba(図示省略)を用いて、転送ポッド210Bをデプロイする。
【0063】
図7は、ステップS101にて、転送ポッド210A、210Bがデプロイされた状態を示す説明図である。ここで、クライアント端末500が送信した、ワーカーポッド230Aへの要求は、ロードバランサー300Aが受信する。そして、ロードバランサー300Aは、ワーカーポッド230Aへの要求を、ワーカーノード200Aのルーターポッド220Aに送信する。ここで、転送ポッド210Aは、ワーカーポッド230Aへの要求を受信しない。ルーターポッド220Aは、ワーカーポッド230Aへの要求を、ワーカーポッド230Aに転送する。ワーカーポッド230Aは、ワーカーポッド230Aへの要求に応じた処理を実行する。
【0064】
次に、クライアント端末500が送信した、ワーカーポッド230Aへの要求を、ロードバランサー300Aおよび転送ポッド210Aを介して、ルーターポッド220Aが受信するように、ロードバランサー300Aおよび転送ポッド210Aを設定し、代替クラスター1Bのロードバランサー300Bおよび転送ポッド210Bも同様に設定する(ステップS102)。
【0065】
図8は、ステップS102にて、ロードバランサー300A、300Bおよびルーターポッド220A、220Bが設定された状態を示す説明図である。ステップS102にて、クラスター1Aでは、マスターノード100Aのコントロールプレーン110Aは、転送ポッド210Aが、ワーカーポッド230Aへの要求を受信すると、受信したワーカーポッド230Aへの要求をルーターポッド220Aに送信するように、転送ポッド210Aを設定する。この時点では、クライアント端末500が送信した、ワーカーポッド230Aへの要求は、ロードバランサー300Aおよびルーターポッド220Aを介して、ワーカーポッド230Aに送信される。従って、この時点では、ワーカーポッド230Aへの要求は、転送ポッド210Aに送信されず、ワーカーポッド230Aに送信されるため、ワーカーポッド230Aは、ワーカーポッド230Aへの要求に応じた処理を実行できる。
【0066】
さらに、マスターノード100Aのコントロールプレーン110Aは、ロードバランサー300Aが、ワーカーポッド230Aへの要求を受信すると、ロードバランサー300Aが、受信したワーカーポッド230Aへの要求を転送ポッド210Aに送信するように、ロードバランサー300Aを設定する。以上の結果、クライアント端末500が送信したワーカーポッド230Aへの要求は、ロードバランサー300A、転送ポッド210Aおよびルーターポッド220Aを介してワーカーポッド230Aに送信される。
【0067】
また、代替クラスター1Bでは、上記と同様に、マスターノード100Bのコントロールプレーン110Bが、転送ポッド210Bおよびロードバランサー300Bを設定する。すなわち、マスターノード100Bのコントロールプレーン110Bは、転送ポッド210Bが、ワーカーポッド230Aへの要求を受信すると、受信したワーカーポッド230Aへの要求をルーターポッド220Bに送信するように、転送ポッド210Bを設定する。また、マスターノード100Bは、ロードバランサー300Bが、ワーカーポッド230Aへの要求を受信すると、ロードバランサー300Bが、受信したワーカーポッド230Aへの要求を転送ポッド210Bに送信するように、ロードバランサー300Bを設定する。
【0068】
次に、クラスター1Aにて、マスターノード100Aは、転送ポッド210Aがワーカーポッド230Aへの要求をロードバランサー300Bに転送するように、転送ポッド210Aを設定する(ステップS103)。
【0069】
図9は、ステップS103にて、転送ポッド210Aが設定された状態を示す説明図である。図9に示すように、クライアント端末500が送信したワーカーポッド230Aへの要求は、ロードバランサー300A、転送ポッド210Aおよびロードバランサー300B、転送ポッド210B、ルーターポッド220Bを介して、代替クラスター1Bのワーカーポッド230Bに転送される。そして、ワーカーポッド230Bは、ワーカーポッド230Aへの要求に応じた処理を実行する。
【0070】
次に、代替クラスター1Bのワーカーノード200Bそれぞれで、転送ポッド210Bは、ワーカーポッド230が有する代替プログラムの実行に問題があるか否かを判定する(ステップS104)。代替プログラムとは、ワーカーポッド230Aへの要求に応じて実行されるワーカーポッド230Bのプログラムである。代替プログラムの実行に問題があると判定した場合(ステップS104:Yes)は、ステップS105に進み、続くステップS106にて代替クラスター1Bの使用を停止する。一方、代替プログラムの実行に問題がないと判定した場合(ステップS104:No)は、ステップS107に進む。
【0071】
転送ポッド210Bは、次の2つの条件を少なくとも一つを満たす場合に、ワーカーポッド230が有する代替プログラムの実行に問題があると判定(ステップS204:Yes)する。また、転送ポッド210Bは、次の2つの条件を両方とも満たさない場合に、ワーカーポッド230が有する代替プログラムの実行に問題がないと判定(ステップS104:No)する。
(条件1)ワーカーポッド230Bが有するプログラム(代替プログラム)を実行して発生するエラーの頻度が、所定のエラー頻度上限値よりも高い場合。この場合は、代替クラスター1Bのワーカーポッド230Bに問題がある。図3を用いて上述した様に、転送ポッド210Bそれぞれの監視部215は、自身が存在するワーカーノード200Bのワーカーポッド230B1~230Bn(全てのワーカーポッド230B)のエラーの頻度を取得する。ここで、ワーカーポッド230B1~230Bn(全てのワーカーポッド230B)それぞれのエラーの頻度は、ワーカーポッド230B1~230Bn(全てのワーカーポッド230B)それぞれの有する代替プログラムのエラー頻度である。さらに、監視部215は、取得したエラー頻度(代替プログラムのエラーの頻度)が、所定のエラー頻度上限値よりも高い場合に、代替プログラムの実行に問題があると判定する。そして、ワーカーポッド230B1~230Bnの監視部15のうちで、少なくとも1つの監視部15が、代替プログラムの実行に問題があると判定した場合に、「代替プログラムの実行に問題がある」と判定する。
(条件2)クラスター1Aから代替クラスター1Bに転送されるワーカーポッド230Aへの要求(対象プログラムへの要求)の転送速度が、所定のデータ転送速度上限値よりも大きい場合。図3を用いて上述した様に、転送ポッド210Bの監視部215は、キュー部212のリクエストキューに保存されているワーカーポッド230Aへの要求のデータ量を、クラスター1Aから代替クラスター1Bに転送されるワーカーポッド230Aへの要求(対象プログラムへの要求)の転送速度とみなす。そして、監視部215は、キュー部212に保存されているワーカーポッド230Aへの要求のデータ量が、所定のデータ転送速度上限値よりも大きい場合に、ワーカーポッド230B1~230Bn(全てのワーカーポッド230B)が、ワーカーポッド230Aへの要求に応じた処理をしきれてないと考えることができるため、監視部215は、代替プログラムの実行に問題があると判定する。ここで、ワーカーポッド230B1~230Bnの監視部15のうちで、すべての監視部15が、所定の時間間隔で代替プログラムの実行に問題があるか否かを判定する。そしてワーカーポッド230B1~230Bnの監視部15のうちで、すべての少なくとも1つの監視部15が、所定の時間間隔の間に、代替プログラムの実行に問題があると判定した場合に、「代替プログラムの実行に問題がある」と判定する。
【0072】
次に、代替クラスター1Bの転送ポッド210Bのプロキシ部214は、転送を停止する旨の情報を含む転送中止情報を、クラスター1Aの転送ポッド210Aに向けて送信する(ステップS105)。ステップS105の処理は、ステップS104にて、転送ポッド210Bが、ワーカーポッド230が有する代替プログラムの実行に問題があると判定した場合(ステップS104:Yes)に実行される処理である。ステップS105では、代替クラスター1Bの転送ポッド210Bのプロキシ部214は、クラスター1Aのマスターノード100Aのコントロールプレーン110Aに向けて、転送を停止する旨の情報を含む転送中止情報を送信する。コントロールプレーン110Aは、転送中止情報を受信すると、ワーカーノード200Aそれぞれの転送ポッド210Aに向けて転送中止情報を送信する。
【0073】
次に、クラスター1Aのワーカーノード200それぞれの転送ポッド210Aは、コントロールプレーン110Aから、転送中止情報を受信すると、転送ポッド210Aが受信したワーカーポッド230Aへの要求をルーターポッド220Aに転送するように設定して、転送ポッド210Aが受信したワーカーポッド230Aへの要求をロードバランサー300B(代替クラスター1B)に転送することを中止し、処理を終了する(ステップS106)。これにより、図8を用いて上述したように、ワーカーポッド230Aへの要求は、ロードバランサー300A、転送ポッド210A、ルーターポッド220Aを介して、ワーカーポッド230Aに送信される。
【0074】
以上で説明したステップS104からステップS106の処理によって、ワーカーノード200Bの転送ポッド210Bが、代替プログラムの実行に問題があると判定した場合(ステップS104:Yes)に、ワーカーポッド230Aへの要求がクラスター1Aから代替クラスター1Bに転送することを中止する。そして、クラスター1Aのワーカーノード200のワーカーポッド230A1~230An(全てのワーカーポッド230A)で、ワーカーポッド230Aへの要求に応じた処理を実行する。
【0075】
次に、DNSサーバ600のDNSレコード601を、クラスター1Aのドメイン名と代替クラスター1BのIPアドレスとを対応付けるように変更する(ステップS107)。すなわち、代替クラスター1Bの転送ポッド210Bうちで、少なくとも1つの転送ポッド210Bは、DNSサーバ600に保存されているDNSレコード601を、クラスターのドメイン名に対して代替クラスター1BのIPアドレスを対応付けたDNSレコードに書き換える旨の情報を含むDNSレコード更新情報を、DNSサーバ600に送信する。DNSサーバ600は、DNSレコード更新情報を受信すると、DNSレコード601を、クラスター1Aのドメイン名と代替クラスター1BのIPアドレスとを対応付けるように変更する。
【0076】
ステップS107のDNSレコード601(クラスター1Aのドメイン名と、IPアドレスとを対応づけて保存しているレコード)を変更する処理によって、クライアント端末500が、ワーカーポッド230Aへの要求を送信する送信先を、クラスター1Aから代替クラスター1Bに変更する。その結果、クラスター1Aのワーカーポッド230Aへの要求に対する処理を実行するクラスターが、クラスター1Aから代替クラスター1Bに切り替わる。
【0077】
しかし、DNSサーバ600として、数多くのDNSサーバが存在するため、全てのDNSサーバのDNSレコード601を直ちに変更することは容易ではない。全てのDNSサーバの、DNSレコード601の変更が完了するまで、クライアント端末500が、ワーカーポッド230Aへの要求(クラスター1Aのドメイン名を含む)を送信しても、DNSレコード601が変更されていないDNSサーバの、DNSレコード601を参照し、クラスター1Aにアクセスするおそれがある。従って、ステップS107の処理を実行することで、クライアント端末500が、ワーカーポッド230Aへの要求を送信する送信先を、クラスター1Aから代替クラスター1Bに変更したとしても、全てのDNSサーバの、DNSレコード601の変更が完了するまでは、クラスター1Aから代替クラスター1Bに切り替えることが完了しない。
【0078】
これに対して、ステップS103の処理の実行後は、クラスター1Aに向けて送信された、全てのワーカーポッド230Aへの要求を、転送ポッド210Aが、代替クラスター1Bに転送する。このため、ステップS103の処理を実行することで、ワーカーポッド230Aへの要求に対する処理を実行するクラスターを、クラスター1Aから代替クラスター1Bに、直ちに切り替えることができる。
【0079】
ステップS103にて、ワーカーポッド230Aへの要求に対する処理を実行するクラスターを、クラスター1Aから代替クラスター1Bに直ちに切り替えた後に、ステップS104にて、ワーカーポッド230の代替プログラムの実行に問題がないと判定した場合(ステップS104:No)には、ステップS107の処理を実行する。ステップS107の処理によって、クライアント端末500が、ワーカーポッド230Aへの要求を送信する送信先を、クラスター1Aから代替クラスター1Bに変更する。このため、ステップS107の処理の後、必要な時間(例えば、数十分)が経過後転送ポッド210Aが、ワーカーポッド230Aへの要求を転送する必要がなくなる。
【0080】
また、ワーカーポッド230の代替プログラムの実行に問題がないと判定した場合(ステップS104:No)に、DNSサーバ600のDNSレコード601を変更するかわりに、ステップS105およびステップS106にて、ワーカーポッド230Aのワーカーポッド230Aへの要求の転送を中止することで、ワーカーポッド230Aを用いて、ワーカーポッド230Aへの要求に対する処理を実行するクラスターを、代替クラスター1Bからクラスター1Aに切り替える(ステップS105およびS106)。ここで、転送ポッド210Aおよび転送ポッド210Bの設定を変更することで、代替クラスター1Bからクラスター1Aへの切り替えるため、切り替えは比較的速やかに完了できる。
【0081】
図10は、ステップS107にて、DNSサーバ600が設定された状態を示す説明図である。図10に示すように、DNSサーバ600のDNSレコード601は、クラスター1Aのドメイン名と代替クラスター1BのIPアドレスとを対応付けた情報を保存している。
【0082】
次に、クラスター1Aが、ワーカーポッド230への要求を受信しているか否かを判定する(ステップS108)。クラスター1Aが、ワーカーポッド230への要求を受信していると判定した場合(ステップS108:Yes)は、ステップS109に進む。一方、クラスター1Aが、ワーカーポッド230への要求を受信していないと判定した場合(ステップS108:No)は、ステップS110に進み、クラスター1Aの転送ポッド210A、210Bを削除する。
【0083】
ここで、クラスター1Aのワーカーポッド230A1~230An(全てのワーカーポッド230A)のうちの少なくとも1つの監視部215(図3参照)は、所定の時間間隔の間に、クライアント端末500からロードバランサー300A(クラスター1A)に送信された対象プログラムへの要求のデータ量を、ロードバランサー300Aを監視して取得する。そして、監視部215は、取得したクライアント端末500からロードバランサー300A(クラスター1A)に送信された対象プログラムへの要求のデータ量が、所定のデータ送信量下限値よりも小さい場合に、クラスター1Aが、ワーカーポッド230への要求を受信していないと判定する。一方、監視部215は、取得したクライアント端末500からクラスター1Aに送信された対象プログラムへの要求のデータ量が、所定のデータ送信量下限値以上の場合に、クラスター1Aが、ワーカーポッド230への要求を受信していると判定する。
【0084】
次に、クラスター1Aの転送ポッド210Aの監視部215は、所定時間待機し、ステップS108の処理を実行する(ステップS109)。ここで、ステップS108およびステップS109の処理を繰り返すことで、クラスター1Aが、ワーカーポッド230への要求を受信していないと判定(ステップS108:No)できるまで、所定時間毎に、ステップS108にてワーカーポッド230への要求を受信しているか否かの判定を行う。
【0085】
次に、ロードバランサー300A、300Bの設定を戻し、クラスター1Aの転送ポッド210Aおよび代替クラスター1Bの転送ポッド210Bを削除し、処理を終了する(ステップS110)。すなわち、クラスター1Aのマスターノード100Aは、ロードバランサー300Aが、ワーカーポッド230Aへの要求を受信すると、受信したワーカーポッド230Aへの要求をルーターポッド220Aに送信するように、ロードバランサー300Aを設定する。同様に代替クラスター1Bのマスターノード100Bのコントロールプレーン110Bは、ロードバランサー300Bを設定する。
【0086】
図11は、ステップS110にて、ロードバランサー300A、300Bが設定され、転送ポッド210A、転送ポッド210Bが削除された状態を示す説明図である。図11に示すように、クライアント端末500が送信したワーカーポッド230Aへの要求は、ロードバランサー300Bおよびルーターポッド220Bを介してワーカーポッド230Bに送信される。
【0087】
以上で説明したステップS108およびステップS110の処理により、ワーカーノード200のプロセッサは、所定の時間間隔の間に、クライアント端末500からクラスター1Aに送信された対象プログラムへの要求のデータ量を取得し、取得したクライアント端末500からクラスター1Aに送信された対象プログラムへの要求のデータ量が、所定のデータ送信量下限値よりも小さい場合に、転送ポッドを削除する。
【0088】
なお、ステップS103の処理により、図9および図10において、転送ポッド210Aは、次の要求転送処理を実行している。すなわち、要求転送処理では、代替クラスター1Bが格納している少なくとも1つのワーカーポッド230Bのプログラム(代替プログラム)を、クラスター1Aが格納している少なくとも1つのワーカーポッド230Aのプログラム(対象プログラム)の代替で実行する場合に、クライアント端末500から送信されたワーカーポッド230Aへの要求(対象プログラムへの要求)を取得すると、ワーカーポッド230Aへの要求(対象プログラムへの要求)に応じてワーカーポッド230Bのプログラム(代替プログラム)を実行するように、ワーカーポッド230Aへの要求(対象プログラムへの要求)を代替クラスター1Bに転送する。
【0089】
また、ステップS104の処理は、次の代替プログラム判定処理を含む。すなわち、代替プログラム判定処理では、ステップS104で、転送ポッド210Bが、代替クラスター1Bのワーカーポッド230Bのプログラム(代替プログラム)の実行に問題があるか否かの判定を行う処理を実行している。
【0090】
また、ステップS104の処理は、次の第1代替プログラム問題検出処理を含む。すなわち、第1代替プログラム問題検出処理では、ステップS104で、ワーカーポッド230Bのエラーの頻度(ワーカーポッド230Bの有する代替プログラムのエラー頻度)が、所定のエラー頻度上限値よりも高い場合に、ワーカーポッド230Bの代替プログラムの実行に問題があると判定する。
【0091】
また、ステップS104の処理は、次の第2代替プログラム問題検出処理を含む。なわち、第2代替プログラム問題検出処理では、ステップS104で、クラスター1Aから代替クラスター1Bに転送されるワーカーポッド230Aへの要求(対象プログラムへの要求)の転送速度が、所定のデータ転送速度上限値よりも大きい場合に、ワーカーポッド230Bの代替プログラムの実行に問題があると判定する。
【0092】
また、ステップS107の処理は、次のDNSレコード変更処理を含む。すなわち、DNSレコード変更処理では、ステップS107で、転送ポッド210Bは、転送ポッド210DNSサーバ600に保存されているDNSレコード601を、クラスター1Aのドメイン名に対して代替クラスター1BのIPアドレスを対応付けたDNSレコード601に書き換える旨の情報を含むDNSレコード更新情報を、DNSサーバ600に送信する。
【0093】
また、ステップS105の処理は、次の転送中止要求処理を含む。すなわち、転送中止要求処理では、代替クラスター1Bのワーカーポッド230Bのプログラム(代替プログラム)の実行に問題があると判定した場合(図6のフローチャートのステップS104:Yes)には、転送を停止する旨の情報を含む転送中止情報を、クラスター1Aの転送ポッド210Aに送信する。
【0094】
また、ステップS106の処理は、次の転送中止処理を含む。すなわち、転送中止処理では、クラスター1Aの転送ポッド210A(プロセッサ21)は、転送中止情報を受け取ると、ワーカーポッド230Aへの要求の転送(対象プログラムへの要求を代替クラスターに転送する要求転送処理の実行)を停止する。
【0095】
また、ステップS108およびS110の処理は、次の転送ポッド削除処理を含む。すなわち、転送ポッド削除処理では、ステップS108およびS110では、所定の時間間隔の間に、クライアント端末500からクラスター1Aに送信されたワーカーポッド230Aへの要求(対象プログラムへの要求)のデータ量を取得する(ステップS108)。そして、取得したクライアント端末500からクラスター1Aに送信されたワーカーポッド230Aへの要求(対象プログラムへの要求)のデータ量が、所定のデータ送信量下限値よりも小さい場合に、転送ポッドを削除する(ステップS110)。
【0096】
<(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える手順、図12図16
図6図11を用いて上述した、(A)クラスター1Aを代替クラスター1Bに切り替える手順では、クラスター単位で、切り替えを行っている。以下に説明する(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える場合は、ワーカーポッド230(プログラム)単位で、切り替える場合である。この場合の以下の説明および図面において、クラスター1Aのワーカーポッド230のうちのワーカーポッド230Axから、代替クラスター1Bのワーカーポッド230Bxに切り替える。すなわち、ワーカーポッド230Axは、切り替え元のワーカーポッド230である。また、ワーカーポッド230Bxは、切り替え先のワーカーポッド230である。
【0097】
(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える手順を実行する前に、代替クラスター1Bの設定やワーカーポッド230Bxのデプロイを完了する。
【0098】
図12は、(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える手順を実行する前の状態(切り替え前の状態)の構成を説明する説明図である。図12に示すように、切り替え前の状態では、クラスター1Aのおよび代替クラスター1Bには、転送ポッド210(転送ポッド210A、210B)が作成されていない
図13は、(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える手順の例を示すフローチャートである。
【0099】
まず、クラスター1Aに転送ポッド210Aをデプロイし、代替クラスター1Bに転送ポッド210Bをデプロイする(ステップS201)。すなわち、クラスター1Aでは、マスターノード100Aのコントロールプレーン110Aは、ワーカーノード200Aそれぞれで、転送ポッドイメージ210Aaを用いて、転送ポッド210Aをデプロイする。また、代替クラスター1Bでは、マスターノード100Bのコントロールプレーン110Bは、ワーカーノード200Bそれぞれで、転送ポッドイメージ210Baを用いて、転送ポッド210Bをデプロイする。
【0100】
図14は、ステップS201にて、転送ポッド210A、210Bがデプロイされた状態を示す説明図である。ここで、クライアント端末500が送信した、ワーカーポッド230Axへの要求は、ロードバランサー300Aが受信する。そして、ロードバランサー300Aは、ワーカーポッド230Axへの要求を、ワーカーノード200Aのルーターポッド220Aに送信する。ルーターポッド220Aは、ワーカーポッド230Axへの要求を、ワーカーポッド230Axに転送する。ワーカーポッド230Axは、ワーカーポッド230Axへの要求に応じた処理を実行する。
【0101】
次に、クライアント端末500が送信した、ワーカーポッド230Axへの要求を、ロードバランサー300Axおよび転送ポッド210Axを介して、ルーターポッド220Axが受信するように、ロードバランサー300Axおよび転送ポッド210Axを設定し、代替クラスター1Bのロードバランサー300Bxおよび転送ポッド210Bxも同様に設定する(ステップS202)
図15は、ステップS202にて、ロードバランサー300A、300Bおよびルーターポッド220A、220Bが設定された状態を示す説明図である。ステップS202にて、クラスター1Aでは、マスターノード100Aのコントロールプレーン110Aは、転送ポッド210Aが、ワーカーポッド230Axへの要求を受信すると、受信したワーカーポッド230Axへの要求をルーターポッド220Aに送信するように、転送ポッド210Aを設定する。この時点では、クライアント端末500が送信した、ワーカーポッド230Axへの要求は、ロードバランサー300Aおよびルーターポッド220Aを介して、ワーカーポッド230Axに送信される。従って、この時点では、ワーカーポッド230Axへの要求は、転送ポッド210Aに送信されず、ワーカーポッド230Axに送信されるため、ワーカーポッド230Axは、ワーカーポッド230Aへの要求に応じた処理を実行できる。
【0102】
さらに、マスターノード100Aのコントロールプレーン110Aは、ロードバランサー300Aが、ワーカーポッド230Axへの要求を受信すると、ロードバランサー300Aが、受信したワーカーポッド230Axへの要求を転送ポッド210Aに送信するように、ロードバランサー300Aを設定する。以上の結果、クライアント端末500が送信したワーカーポッド230Axへの要求は、ロードバランサー300A、転送ポッド210Aおよびルーターポッド220Aを介してワーカーポッド230Axに送信される。
【0103】
また、代替クラスター1Bでは、上記と同様に、マスターノード100Bのコントロールプレーン110Bが、転送ポッド210Bおよびロードバランサー300Bを設定する。すなわち、マスターノード100Bのコントロールプレーン110Bは、転送ポッド210Bが、ワーカーポッド230Axへの要求を受信すると、受信したワーカーポッド230Axへの要求をルーターポッド220Bに送信するように、転送ポッド210Bを設定する。また、マスターノード100Bは、ロードバランサー300Bが、ワーカーポッド230Axへの要求を受信すると、ロードバランサー300Bが、受信したワーカーポッド230Axへの要求を転送ポッド210Bに送信するように、ロードバランサー300Bを設定する。
【0104】
次に、クラスター1Aにて、マスターノード100Aは、転送ポッド210Aがワーカーポッド230Axへの要求をロードバランサー300Bに転送するように、転送ポッド210Aを設定する(ステップS203)。
【0105】
図16は、ステップS203にて、転送ポッド210Aが設定された状態を示す説明図である。図16に示すように、クライアント端末500が送信したワーカーポッド230Axへの要求は、ロードバランサー300A、転送ポッド210Aおよびロードバランサー300B、転送ポッド210B、ルーターポッド220Bを介して、代替クラスター1Bのワーカーポッド230Bxに転送される。そして、ワーカーポッド230Bxは、ワーカーポッド230Axへの要求に応じた処理を実行する。
【0106】
次に、代替クラスター1Bのワーカーノード200Bそれぞれで、転送ポッド210Bは、ワーカーポッド230Bxが有する代替プログラムの実行に問題があるか否かを判定する(ステップS204)。代替プログラムとは、ワーカーポッド230Axへの要求に応じて実行されるワーカーポッド230Bxのプログラムである。代替プログラムの実行に問題があると判定した場合(ステップS204:Yes)は、ステップS205に進み、代替クラスター1Bの使用を停止する。一方、代替プログラムの実行に問題がないと判定した場合(ステップS205:No)は、処理を終了する。
【0107】
転送ポッド210Bは、次の2つの条件を少なくとも一つを満たす場合に、ワーカーポッド230Bxが有する代替プログラムの実行に問題があると判定(ステップS204:Yes)する。また、転送ポッド210Bは、次の2つの条件を両方とも満たさない場合に、ワーカーポッド230が有する代替プログラムの実行に問題がないと判定(ステップS104:No)する。
(条件1)ワーカーポッド230Bxが有するプログラム(代替プログラム)を実行して発生するエラーの頻度が、所定のエラー頻度上限値よりも高い場合。この場合は、代替クラスター1Bのワーカーポッド230Bxに問題がある。図3を用いて上述した様に、転送ポッド210Bそれぞれの監視部215は、自身が存在するワーカーノード200Bのワーカーポッド230Bxのエラーの頻度を取得する。ここで、ワーカーポッド230Bxのエラーの頻度は、ワーカーポッド230Bxの有する代替プログラムのエラー頻度である。さらに、監視部215は、取得したエラー頻度(代替プログラムのエラーの頻度)が、所定のエラー頻度上限値よりも高い場合に、代替プログラムの実行に問題があると判定する。そして、ワーカーポッド230Bxの監視部15のうちで、少なくとも1つの監視部15が、代替プログラムの実行に問題があると判定した場合に、「代替プログラムの実行に問題がある」と判定する。
(条件2)クラスター1Aから代替クラスター1Bに転送されるワーカーポッド230Axへの要求(対象プログラムへの要求)の転送速度が、所定のデータ転送速度上限値よりも大きい場合。図3を用いて上述した様に、転送ポッド210Bの監視部215は、キュー部212のリクエストキューに保存されているワーカーポッド230Axへの要求のデータ量を、クラスター1Aから代替クラスター1Bに転送されるワーカーポッド230Axへの要求(対象プログラムへの要求)の転送速度とみなす。そして、監視部215は、キュー部212に保存されているワーカーポッド230Axへの要求のデータ量が、所定のデータ転送速度上限値よりも大きい場合に、ワーカーポッド230Bxが、ワーカーポッド230Aへの要求に応じた処理をしきれてないと考えることができるため、監視部215は、代替プログラムの実行に問題があると判定する。ここで、ワーカーポッド230Bxの監視部15のうちで、すべての監視部15が、所定の時間間隔で代替プログラムの実行に問題があるか否かを判定する。そしてワーカーポッド230Bxの監視部15のうちで、すべての少なくとも1つの監視部15が、所定の時間間隔の間に、代替プログラムの実行に問題があると判定した場合に、「代替プログラムの実行に問題がある」と判定する。
【0108】
次に、代替クラスター1Bの転送ポッド210Bのプロキシ部214は、転送を停止する旨の情報を含む転送中止情報を、クラスター1Aの転送ポッド210Aに向けて送信する(ステップS205)。ステップS205では、代替クラスター1Bの転送ポッド210Bのプロキシ部214は、クラスター1Aのマスターノード100Aのコントロールプレーン110Aに向けて、転送を停止する旨の情報を含む転送中止情報を送信する。コントロールプレーン110Aは、転送中止情報を受信すると、ワーカーノード200Aそれぞれの転送ポッド210Aに向けて転送中止情報を送信する。
【0109】
次に、クラスター1Aのワーカーノード200それぞれの転送ポッド210Aは、コントロールプレーン110Aから、転送中止情報を受信すると、転送ポッド210Aが受信したワーカーポッド230Axへの要求をルーターポッド220Aに転送するように設定して、転送ポッド210Aが受信したワーカーポッド230Axへの要求をロードバランサー300B(代替クラスター1B)に転送することを中止し、処理を終了する(ステップS206)。これにより、図8を用いて上述したように、ワーカーポッド230Axへの要求は、ロードバランサー300A、転送ポッド210A、ルーターポッド220Aを介して、ワーカーポッド230Axに送信される。
【0110】
また、以上で説明したステップS204からステップS206の処理によって、ワーカーノード200Bの転送ポッド210Bが、代替プログラムの実行に問題があると判定した場合(ステップS204:Yes)に、ワーカーポッド230Axへの要求がクラスター1Aから代替クラスター1Bに転送することを中止する。そして、クラスター1Aのワーカーノード200のワーカーポッド230Axが、ワーカーポッド230Axへの要求に応じた処理を実行する。
【0111】
なお、ステップS206の処理を実行した後、ロードバランサー300Aが、ワーカーポッド230Axへの要求をルーターポッド220Aに転送するように設定し、さらに、転送ポッド210A、210Bを削除してもよい。
【0112】
なお、ステップS203の処理により、図16において、転送ポッド210Aは、次の要求転送処理を実行している。すなわち、要求転送処理では、代替クラスター1Bが格納している少なくとも1つのワーカーポッド230Bxのプログラム(代替プログラム)を、クラスター1Aが格納している少なくとも1つのワーカーポッド230Axのプログラム(対象プログラム)の代替で実行する場合に、クライアント端末500から送信されたワーカーポッド230Axへの要求(対象プログラムへの要求)を取得すると、ワーカーポッド230Axへの要求(対象プログラムへの要求)に応じてワーカーポッド230Bxのプログラム(代替プログラム)を実行するように、ワーカーポッド230Axへの要求(対象プログラムへの要求)を代替クラスター1Bに転送する。
【0113】
また、ステップS204の処理は、次の代替プログラム判定処理を含む。すなわち、代替プログラム判定処理では、ステップS204で、転送ポッド210Bが、代替クラスター1Bのワーカーポッド230Bxのプログラム(代替プログラム)の実行に問題があるか否かの判定を行う処理を実行している。
【0114】
また、ステップS204の処理は、次の第1代替プログラム問題検出処理を含む。すなわち、第1代替プログラム問題検出処理では、ステップS204で、ワーカーポッド230Bxのエラーの頻度(ワーカーポッド230Bxの有する代替プログラムのエラー頻度)が、所定のエラー頻度上限値よりも高い場合に、ワーカーポッド230Bxの代替プログラムの実行に問題があると判定する。
【0115】
また、ステップS204の処理は、次の第2代替プログラム問題検出処理を含む。すなわち、第2代替プログラム問題検出処理では、ステップS204で、クラスター1Aから代替クラスター1Bに転送されるワーカーポッド230Axへの要求(対象プログラムへの要求)の転送速度が、所定のデータ転送速度上限値よりも大きい場合に、ワーカーポッド230Bxの代替プログラムの実行に問題があると判定する。
【0116】
また、ステップS205の処理は、次の転送中止要求処理を含む。すなわち、転送中止要求処理では、代替クラスター1Bのワーカーポッド230Bxのプログラム(代替プログラム)の実行に問題があると判定した場合(図13のフローチャートのステップS204:Yes)には、転送を停止する旨の情報を含む転送中止情報を、クラスター1Aの転送ポッド210Aに送信する。
【0117】
また、ステップS206の処理は、次の転送中止処理を含む。すなわち、転送中止処理では、クラスター1Aの転送ポッド210A(プロセッサ21)は、転送中止情報を受け取ると、ワーカーポッド230Axへの要求の転送(対象プログラムへの要求を代替クラスターに転送する要求転送処理の実行)を停止する。
<発明の効果>
このように、実施例において、(A)クラスター1Aを代替クラスター1Bに切り替える手順(図6参照)および(B)クラスター1Aのワーカーポッド230Axを、代替クラスター1Bのワーカーポッド230Bに切り替える手順(図13参照)は、本発明のクラスターの管理方法である。
【0118】
クラスターの管理方法は、ワーカーポッド230Aへの要求(対象プログラムへの要求)に応じて、代替クラスター1Bのワーカーポッド230Bのプログラム(代替プログラム)を実行するように、ワーカーポッド230Aへの要求(対象プログラムへの要求)を、代替クラスター1Bに転送する(図6のフローチャートのステップS103、図13のフローチャートのステップS203参照)する。
【0119】
ここで、クライアント端末が、ワーカーポッド230Aへの要求(対象プログラムへの要求)を、クラスター1Aに送信すると、ワーカーポッド230Aへの要求(対象プログラムへの要求)は、代替クラスター1Bに転送される。このため、確実に、代替クラスター1Bが格納しているワーカーポッド230Bのプログラム(代替プログラム)を、クラスター1Aが格納しているワーカーポッド230Aのプログラムの代替で、使用できる。従って、本発明のクラスターの管理方法は、クラスターの切り替えをより早く行うことができる。
【0120】
なお、ここでのクラスター1Aのプログラムから、代替クラスター1Bの代替プログラムへの切り替えは、クラスター1Aの有する全てのプログラムから、代替クラスター1Bの有する全てのプログラムに切り替える、クラスターの切り替えでもよい。
【0121】
また、切り替え前のクラスター1Aに、セキュリティーホール等の不具合が発見された場合、クラスター1Aから代替クラスター1Bに速やかかつ確実に切り替えることができる。これにより、本発明のクラスターの管理方法は、クラスターを使用する際のセキュリティリスクの低減等の安全性を高めることができる。また、代替クラスター1Bに切り替えた後に、代替クラスター1Bに不具合が見つかった場合に、切り替えを速やかに中止(使用するクラスターを、代替クラスター1Bからクラスター1Aに、速やかに切り替える)できる。これにより、切り替えた後の不具合による被害の発生を抑制できる。
【0122】
また、本発明のクラスターの管理方法の、(A)クラスター1Aを代替クラスター1Bに切り替える手順(図6参照)では、全てのワーカーポッド230Aのプログラムへの要求(ワーカーポッドのプログラムへの要求)を、対象プログラムへの要求として、代替クラスターに転送する。換言すれば、この(A)クラスター1Aを代替クラスター1Bに切り替える手順(図6参照)では、クラスターの切り替えを実行している。本発明のクラスターの管理方法は、クラスターの切り替えを実行する場合にも、クラスターの切り替えをより早く行うことができる。
【0123】
また、本発明のクラスターの管理方法では、DNSサーバ600に保存されているDNSレコード601を、クラスター1Aスのドメイン名に対して、代替クラスター1BのIPアドレス(ロードバランサー300BのIPアドレス)を対応付けたDNSレコードに書き換える旨の情報を含むDNSレコード更新情報を、DNSサーバ600に送信する。その結果、DNSサーバ600が、クラスター1Aスのドメイン名に対する、名前解決の問い合わせを受け付けると、DNSサーバ600は、クラスター1Aスのドメイン名に対して、代替クラスター1BのIPアドレスを返すようになる。このため、より確実に、クラスター1Aのワーカーポッド230A(プログラム)から、代替クラスター1Bのワーカーポッド230B(代替プログラム)に切り替えることができる。
【0124】
また、本発明のクラスターの管理方法では、代替クラスター1Bのワーカーポッド230Bのプログラム(代替プログラム)の実行に問題があると判定した場合(図6のフローチャートのステップS104:Yes)には、転送を停止する旨の情報を含む転送中止情報を、クラスター1Aの転送ポッド210Aに送信する(図6のフローチャートのステップS105)。そして、クラスター1Aの転送ポッド210A(プロセッサ21)は、転送中止情報を受け取ると、ワーカーポッド230Aへの要求の転送(対象プログラムへの要求を代替クラスターに転送する要求転送処理の実行)を停止する(図6のフローチャートのステップS106)。従って、代替クラスター1Bに問題が生じた場合に、クラスター1Aを使用するため。代替クラスター1Bに生じる問題による悪影響を抑制できる。そして、クラスターの切り替えをより早く行うことができる。
【0125】
また、本発明のクラスターの管理方法では、クライアント端末500からクラスター1Aに送信された、ワーカーポッド230Aへの要求(対象プログラムへの要求)のデータ量が、所定のデータ送信量下限値よりも小さい場合に、転送ポッド210A、210Bを削除する(図6のフローチャートのステップS108およびステップS110)を実行する。これにより、転送ポッド210A、210Bが必要なときに、転送ポッド210A、210Bを削除することを抑制できる。そして、転送ポッド210A、210Bが確実に不要なときに、転送ポッド210A、210Bを削除できる。
【0126】
また、クラスターの管理方法は、ワーカーポッド230Aへの要求(対象プログラムへの要求)に応じて、代替クラスター1Bのワーカーポッド230Bのプログラム(代替プログラム)を実行するように、ワーカーポッド230Aへの要求(対象プログラムへの要求)を、代替クラスター1Bに転送する(図6のフローチャートのステップS103、図13のフローチャートのステップS203参照)するのは、転送ポッド210A、210B(転送ポッド)である。転送ポッド210A、210B(転送ポッドポッド)は、ポッドであるため、必要に応じて作成(デプロイ)および削除が容易である。本発明のクラスターの管理方法を用いる必要がないときに、容易に転送ポッド210A、210B(転送ポッド)を容易に削除できる。これにより、本発明のクラスターの管理方法では、クラスターのリソースをより無駄なく活用できる。
【0127】
さらに、転送ポッドイメージ210Aa(転送ポッド210A、210Bのイメージ)は、容易に転用できる。従って、クラスターの管理方法を、容易に新規のクラスター対して適用できる。
【0128】
また、本発明のクラスターの管理方法では、ワーカーポッド230Bのエラーの頻度(ワーカーポッド230Bの有する代替プログラムのエラー頻度)が、所定のエラー頻度上限値よりも高い場合に、ワーカーポッド230Bの代替プログラムの実行に問題があると判定する(図6のフローチャートのステップS104、図13のフローチャートのステップS204)。その結果、代替クラスター1Bを代替で使用する場合の不具合を容易に検出できる。そして、クラスターの切り替えの際の不具合の抑制を容易にする。
【0129】
また、本発明のクラスターの管理方法では、クラスター1Aから代替クラスター1Bに転送されるワーカーポッド230Aへの要求(対象プログラムへの要求)の転送速度が、所定のデータ転送速度上限値よりも大きい場合に、ワーカーポッド230Bの代替プログラムの実行に問題があると判定する(図6のフローチャートのステップS104、図13のフローチャートのステップS204)。その結果、代替クラスター1Bを代替で使用する場合の代替クラスター1Bの処理能力不足を容易に検出できる。そして、クラスターの切り替えの際の不具合の抑制を容易にする。
【0130】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0131】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0132】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0133】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0134】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【0135】
1000;クラスターシステム
1A;クラスター
1B;代替クラスター
21;プロセッサ
22;主記憶装置
23;副記憶装置
24;入力装置
25;出力装置
27;バス
100A、100B;マスターノード
110A、110B;コントロールプレーン
200A、200B;ワーカーノード
210A、210B;転送ポッド
210Aa;転送ポッドイメージ
211;受信API部
212;キュー部
213;転送API部
214;プロキシ部
215;監視部
220A、220B;ルーターポッド
220Aa;ルーターポッドイメージ
230、230A、230A1-230An;ワーカーポッド
230A1a;ワーカーポッドイメージ
300、300A、300B;ロードバランサー
500;クライアント端末
600;DNSサーバ
NW;ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16