ここに表示されているのは Apigee Edge のドキュメントです。
Go to the
Apigee X のドキュメントに移動します。 info
このドキュメントでは、受信 API トラフィックに影響を与えずに Router と Message Processor(MP)を再起動する方法について説明します。状況によっては、Router と MP を再起動する必要があります。 次に例を示します。
- 参照を使用せずに、仮想ホスト、ターゲット サーバー、ターゲット エンドポイントで直接参照されるキーストアが更新された場合。
- API プロキシが一部の MP に部分的にデプロイされている場合。
始める前に
Router と Message Processor についてよく知らない場合は、 Edge for Private Cloud の概要をご覧ください。
トラフィックに影響を与えずに Router をローリング再起動する
このセクションでは、受信 API トラフィックに影響を与えずに Router を再起動する手順について説明します。
- 再起動する Router にログインします。
-
次のコマンドを使用して、Router のヘルスチェック ポートをブロックします。これにより、
Router は異常と見なされ、この Router にトラフィックがルーティングされなくなります。
sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT -
Router を再起動する前に、インフライト トラフィックがスムーズに処理されるように 2 分間待ちます。これを行うには、次のように
sleepコマンドを実行します。for i in {001..120}; do sleep 1; printf "\r ${i}"; done
-
次のように Apigee Monit サービスを停止します。
apigee-service apigee-monit stop -
次のように Apigee Router サービスを停止します。
apigee-service edge-router stop -
次のように Apigee Router サービスを開始します。
apigee-service edge-router start -
次のコマンドを使用して、Apigee Router サービスが起動し、受信トラフィックを処理できる状態になるまで待ちます。
apigee-service edge-router wait_for_ready -
次のように Apigee Monit サービスを開始します。
apigee-service apigee-monit start -
次のコマンドを実行して IP テーブルをフラッシュし、ヘルスチェック ポート 15999 のブロックを解除して、Router がトラフィックを再び処理できるようにします。
sudo iptables -F sudo iptables -L
sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT for i in {001..120}; do sleep 1; printf "\r ${i}"; done apigee-service apigee-monit stop apigee-service edge-router stop apigee-service edge-router start apigee-service edge-router wait_for_ready apigee-service apigee-monit start sudo iptables -F sudo iptables -L
トラフィックに影響を与えずに Message Processor をローリング再起動する
このセクションでは、受信 API トラフィックに影響を与えずに Message Processor(MP)を再起動する手順について説明します。
- 再起動する Message Processor にログインします。
-
次のコマンドを使用して、Message Processor のヘルスチェック ポートを特定します。
curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")' -
Message Processor でヘルスチェック ポート(ステップ 2 で特定)をブロックします。これにより
、Message Processor は異常と見なされ、この
Message Processor にトラフィックがルーティングされなくなります。
sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECTここで、port # はステップ 2 で実行したコマンドから返されたポート番号です。
-
Message Processor を再起動する前に、インフライト トラフィックがスムーズに処理されるように 2 分間待ちます。これを行うには、次のように
sleepコマンドを実行します。for i in {001..120}; do sleep 1; printf "\r ${i}"; done
-
次のように Apigee Monit サービスを停止します。
apigee-service apigee-monit stop -
次のように Apigee Message Processor サービスを停止します。
apigee-service edge-message-processor stop - 次のように Apigee Message Processor サービスを開始します。
apigee-service edge-message-processor start -
次のコマンドを使用して、Apigee Message Processor サービスが起動し、受信トラフィックを処理できる状態になるまで待ちます。
apigee-service edge-message-processor wait_for_ready -
次のように Apigee Monit サービスを開始します。
apigee-service apigee-monit start - 次のコマンドを実行して IP テーブルをフラッシュし、ヘルスチェック ポートのブロックを解除して、Message Processor
がトラフィックを再び処理できるようにします。
sudo iptables -F sudo iptables -L
curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")' sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT for i in {001..120}; do sleep 1; printf "\r ${i}"; done apigee-service apigee-monit stop apigee-service edge-message-processor stop apigee-service edge-message-processor start apigee-service edge-message-processor wait_for_ready apigee-service apigee-monit start sudo iptables -F sudo iptables -L
ここで、port # はステップ 2 で実行したコマンドから返されたポート番号です。