SMS Gateway の高可用性のセットアップ
IBM® Voice Gateway の SMS Gateway 機能を、IBM Cloud Private の Kubernetes クラスターにデプロイし、Kubernetes サービスとして公開することで、その機能が高可用性環境で稼働するように構成できます。 Kubernetes クラスターでこれらのインスタンスをスケーリングすることで、SMS Gateway で、より大きいメッセージングの負荷、フェイルオーバー、およびローリング更新を処理できます。
-
高可用性環境では、SMS Gateway は、IBM Cloud の Kubernetes クラスターで分散セッション・キャッシュ・コンテナーとともにステートレス・コンテナーとして稼働します。
-
IBM Cloud Private で IBM® WebSphere® eXtreme Scale Liberty Deployment (XSLD) キャッシュ・サーバーをセットアップし、デプロイします。 XSLD キャッシュ・サーバーには、SMS Gateway インスタンス間で共有されるセッション・キャッシュが保管されます。
-
IBM Cloud Private での SMS Gateway のセットアップ
XSLD をセットアップした後、IBM Cloud Private の Kubernetes クラスターで SMS Gateway を構成し、デプロイします。
SMS Gateway コンテナーの始動
作動可能プローブを使用して、構成がサーバーにロードされるとすぐに要求が処理されるようにします。 以下の例で示すように、作動可能プローブを deploy script ファイルに追加してください。
"readinessProbe":{
"exec": {
"command": [
"/opt/readiness.sh"
],
"timeoutSeconds": 5
}
},
timeoutSeconds 変数は、プローブがタイムアウトになるまでの秒数を指定します。 デフォルト値は 1 秒です。 最小値も 1 秒です。
また、periodSeconds 変数を追加すると、プローブを実行する頻度を秒単位で指定することもできます。 デフォルト値は 10 秒です。 最小値は 1 秒です。 例: periodSeconds: 30
オプションとして、作動可能プローブの REST API 要求を認証する場合には、以下のユーザー名変数とパスワード変数を deploy script ファイルに追加します。
SMS_ADMIN_USERNAME: この変数では、管理者が作動可能プローブ要求を認証するためのユーザー名を指定します。SMS_ADMIN_PASSWORD: この変数では、管理者が作動可能プローブ要求を認証するためのパスワードを指定します。
REST API を要求するには、以下の API を使用します。
curl -X GET --user SMS_ADMIN_USERNAME:SMS_ADMIN_PASSWORD --header 'Accept: application/json' 'http://localhost:9080/sms.gateway/ready'
SMS Gateway コンテナーのシャットダウン
サーバーを停止するためには、レポート・イベントが、未処理のトランザクションのレポートを停止前に処理するための時間が必要です。 レポート作成を有効にする際は、preStop ハンドルに 25 秒を追加して、レポート・イベントをバックアップするか送信するための時間を SMS Gateway に与えることができます。
"lifecycle": {
"preStop": {
"exec": {
"command": [
"sh", "-c","sleep 25 ;"
]
}
}
},
Red Hat Enterprise Linux 上の IBM Cloud Private への SMS Gateway のデプロイ
Red Hat Enterprise Linux ノード上の IBM Cloud Private に SMS Gateway をデプロイする場合、Security Enhanced Linux (SELinux) を無効にしてから SMS Gateway 高可用性環境をデプロイする必要があります。
-
/etc/selinux/configディレクトリーにある SELinux 構成ファイルを編集して、以下の例に示すようにSELINUX=disabledを設定します。SELINUX=disabled SELINUXTYPE=targeted -
システムの再始動
- 以下のコマンドを実行して、SELinux ポリシーが無効であることを確認します。
bash getenforce
SELinux は、無効である場合、Disabled メッセージを出力します。