トラフィックに影響を与えずに Router と Message Processor を再起動する

ここに表示されているのは 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 を再起動する手順について説明します。

  1. 再起動する Router にログインします。
  2. 次のコマンドを使用して、Router のヘルスチェック ポートをブロックします。これにより、 Router は異常と見なされ、この Router にトラフィックがルーティングされなくなります。
    sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
        
  3. Router を再起動する前に、インフライト トラフィックがスムーズに処理されるように 2 分間待ちます。これを行うには、次のように sleep コマンドを実行します。
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  4. 次のように Apigee Monit サービスを停止します。
    apigee-service apigee-monit stop
        
  5. 次のように Apigee Router サービスを停止します。
    apigee-service edge-router stop
        
  6. 次のように Apigee Router サービスを開始します。
    apigee-service edge-router start
        
  7. 次のコマンドを使用して、Apigee Router サービスが起動し、受信トラフィックを処理できる状態になるまで待ちます。
    apigee-service edge-router wait_for_ready
        
  8. 次のように Apigee Monit サービスを開始します。
    apigee-service apigee-monit start
        
  9. 次のコマンドを実行して 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)を再起動する手順について説明します。

  1. 再起動する Message Processor にログインします。
  2. 次のコマンドを使用して、Message Processor のヘルスチェック ポートを特定します。
    curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")'
        
  3. Message Processor でヘルスチェック ポート(ステップ 2 で特定)をブロックします。これにより 、Message Processor は異常と見なされ、この Message Processor にトラフィックがルーティングされなくなります。
    sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT
        

    ここで、port # はステップ 2 で実行したコマンドから返されたポート番号です。

  4. Message Processor を再起動する前に、インフライト トラフィックがスムーズに処理されるように 2 分間待ちます。これを行うには、次のように sleep コマンドを実行します。
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  5. 次のように Apigee Monit サービスを停止します。
    apigee-service apigee-monit stop
        
  6. 次のように Apigee Message Processor サービスを停止します。
    apigee-service edge-message-processor stop
        
  7. 次のように Apigee Message Processor サービスを開始します。
    apigee-service edge-message-processor start
        
  8. 次のコマンドを使用して、Apigee Message Processor サービスが起動し、受信トラフィックを処理できる状態になるまで待ちます。
    apigee-service edge-message-processor wait_for_ready
        
  9. 次のように Apigee Monit サービスを開始します。
    apigee-service apigee-monit start
        
  10. 次のコマンドを実行して 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 で実行したコマンドから返されたポート番号です。