8.5.2 ネームサービスを使用したRPC
all_nodeオペランドに指定するホスト名には,Kubernetesのマスターノードまたは,ワーカーノードを指定できます。マスターノードを指定する場合は,OpenTP1システム内のすべてのTP1/Server Baseの設定をマスターノードで統一してください。
ワーカーノードを指定する場合は,各TP1/Server BaseでKubernetesクラスタ内の任意のワーカーノードを設定してください。
また,all_nodeオペランドに指定するホスト名は,ほかのTP1/Server Baseに指定するipc_response_hostオペランドの値と一致させる必要があります。
- 〈この項の構成〉
(1) コンテナ内のTP1/Server Base間のRPC
(a) システム定義の設定【①TP1/Server Base】
次のシステム定義を設定してください。
# |
定義名 |
オペランド名 |
設定内容 |
補足 |
---|---|---|---|---|
1 |
システム共通定義 |
rpc_port_base |
30000以降のポート番号 |
「8.6.4 Serviceの作成」を参照し,ほかのPodの使用範囲と重複しないポート番号をrpc_port_baseに設定してください。 |
2 |
ipc_notify_response_host |
Y |
詳細は,マニュアル「OpenTP1 システム定義」を参照してください。 |
|
3 |
ipc_response_host |
通信先ノードのTP1/Server Baseに通知する,応答電文受信用のホスト名 |
||
4 |
all_node=ホスト名:ポート番号 |
|
Kubernetesクラスタ内のどれかのKubernetesノードのホスト名を設定してください。 また,ホスト名は②TP1/Server Baseのipc_response_hostオペランドの値と一致させてください。 |
(b) システム定義の設定【②TP1/Server Base】
「表8-16 システム定義の設定【①TP1/Server Base】」に示すオペランドを設定してください。all_nodeオペランドに指定するポート番号(相手ノードのname_portオペランドに指定したポート番号)はOpenTP1システム内でユニークな値に設定する必要があります。
(c) 図中③Serviceの設定
コンテナ内のTP1/Server BaseへRPCする場合は,Serviceを作成してください。
コンテナ内の②TP1/Server Baseでname_portオペランドに設定したポート番号と同じポート番号をServiceのspec.ports.targetPortに設定してください。
(d) 図中④Serviceの設定
コンテナ内の①TP1/Server Baseでname_portオペランドに設定したポート番号と同じポート番号をServiceのspec.ports.targetPortに設定してください。
また,コンテナ内のTP1/Server Baseからコンテナ内のTP1/Server BaseにRPCする場合は,応答電文を受信するためのServiceを作成してください。
コンテナ内の①TP1/Server Baseで,応答電文を受信するためのポート番号をServiceのspec.ports.targetPortに設定してください。
応答電文の受信にはエフェメラルポートを使用するため,「8.6.4 Serviceの作成」で求めたエフェメラルポート数分のポートをServiceに設定する必要があります。
Serviceへ設定が必要なポート番号の見積方法については,「8.6.4 Serviceの作成」を参照してください。
(2) TP1/Server Baseとコンテナ内のTP1/Server Base間のRPC
(a) システム定義の設定【①TP1/Server Base】
次のシステム定義を設定してください。
# |
定義名 |
オペランド名 |
設定内容 |
補足 |
---|---|---|---|---|
1 |
システム共通定義 |
ipc_notify_response_host |
Y |
詳細は,マニュアル「OpenTP1 システム定義」を参照してください。 |
2 |
ipc_response_host |
通信先ノードのTP1/Server Baseに通知する,応答電文受信用のホスト名 |
||
3 |
all_node=ホスト名:ポート番号 |
|
図①TP1/Server Base: Kubernetesクラスタ内のどれかのKubernetesノードのホスト名を設定してください。 また,ホスト名は②TP1/Server Baseのipc_response_hostオペランドの値と一致させてください。 なお,指定するホスト名には①TP1/Server Baseが起動するホストのホスト名を指定しないでください。指定した場合dc_rpc_call関数が失敗します。 図②TP1/Server Base: ①TP1/Server Baseが起動するホストのホスト名を設定してください。 また,ホスト名は①TP1/Server Baseのipc_response_hostオペランドの値と一致させてください。 |
(b) システム定義の設定【②TP1/Server Base】
「表8-17 システム定義の設定【①TP1/Server Base】」に示すオペランドを設定してください。all_nodeオペランドに指定するポート番号(相手ノードのname_portオペランドに指定したポート番号)はOpenTP1システム内でユニークな値に設定する必要があります。
(c) 図中③Serviceの設定
コンテナ内のTP1/Server BaseへRPCする場合は,Serviceを作成してください。
コンテナ内の②TP1/Server Baseでname_portオペランドに設定したポート番号と同じポート番号をServiceのspec.ports.targetPortに設定してください。
(3) コンテナ内のTP1/Server BaseとTP1/Server Base間のRPC
(a) システム定義の設定【①TP1/Server Base】
次のシステム定義を設定してください。
# |
定義名 |
オペランド名 |
設定内容 |
補足 |
---|---|---|---|---|
1 |
システム共通定義 |
rpc_port_base |
30000以降のポート番号 |
「8.6.4 Serviceの作成」を参照し,ほかのPodの使用範囲と重複しないポート番号をrpc_port_baseに設定してください。 |
2 |
ipc_notify_response_host |
Y |
詳細は,マニュアル「OpenTP1 システム定義」を参照してください。 |
|
3 |
ipc_response_host |
通信先ノードのTP1/Server Baseに通知する,応答電文受信用のホスト名 |
||
4 |
all_node=ホスト名:ポート番号 |
図①TP1/Server Base:
図②TP1/Server Base:
|
図②TP1/Server Baseで指定するホスト名はKubernetesクラスタ内のどれかのKubernetesノードのホスト名を設定してください。 また,ホスト名は①TP1/Server Baseのipc_response_hostオペランドの値と一致させてください。 |
(b) システム定義の設定【②TP1/Server Base】
「表8-18 システム定義の設定【①TP1/Server Base】」に示すオペランドを設定してください。all_nodeオペランドに指定するポート番号(相手ノードのname_portオペランドに指定したポート番号)はOpenTP1システム内でユニークな値に設定する必要があります。
(c) 図中③Serviceの設定
コンテナ内の①TP1/Server Baseでname_portオペランドに設定したポート番号と同じポート番号をServiceのspec.ports.targetPortに設定してください。
また,コンテナ内のTP1/Server Baseからコンテナ外のTP1/Server BaseにRPCする場合は,応答電文を受信するためのServiceを作成してください。
コンテナ内の①TP1/Server Baseで,応答電文を受信するためのポート番号をServiceのspec.ports.targetPortに設定してください。
応答電文の受信にはエフェメラルポートを使用するため,「8.6.4 Serviceの作成」で求めた数のエフェメラルポートをServiceに設定する必要があります。
Serviceへ設定が必要なポート番号の見積方法については,「8.6.4 Serviceの作成」を参照してください。