트래픽에 영향을 주지 않고 라우터 및 메시지 프로세서 다시 시작

Apigee Edge 문서를 보고 있습니다.
Apigee X 문서를 확인하세요.

이 문서에서는 수신 API 트래픽에 영향을 주지 않고 라우터 및 메시지 프로세서 (MP)를 다시 시작하는 방법을 설명합니다. 특정 상황에서는 라우터와 MP를 다시 시작해야 할 수도 있습니다. 다음은 몇 가지 예입니다.

  • 가상 호스트에서 직접 참조되는 키 저장소는 참조를 사용하지 않고 대상 서버 또는 대상 엔드포인트가 업데이트됩니다.
  • API 프록시가 일부 MP에 부분적으로 배포되는 경우

시작하기 전에

라우터와 메시지 프로세서에 익숙하지 않은 경우 Private Cloud용 Edge 개요를 읽어보세요.

트래픽에 영향을 주지 않고 라우터 순차적 재시작

이 섹션에서는 수신 API 트래픽에 영향을 주지 않고 라우터를 다시 시작하는 데 사용되는 단계를 설명합니다.

  1. 다시 시작해야 하는 라우터에 로그인합니다.
  2. 다음 명령어를 사용하여 라우터에서 상태 점검 포트를 차단합니다. 이렇게 하면 라우터가 비정상으로 간주되어 트래픽이 이 라우터로 라우팅되지 않습니다.
    sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
        
  3. 라우터를 다시 시작하기 전에 이동 중인 트래픽이 원활하게 처리될 수 있도록 2분 동안 기다립니다. 다음과 같이 sleep 명령어를 실행하면 됩니다.
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  4. 다음과 같이 Apigee Monit 서비스를 중지합니다.
    apigee-service apigee-monit stop
        
  5. 다음과 같이 Apigee 라우터 서비스를 중지합니다.
    apigee-service edge-router stop
        
  6. 다음과 같이 Apigee 라우터 서비스를 시작합니다.
    apigee-service edge-router start
        
  7. Apigee 라우터 서비스가 시작되고 다음 명령어를 사용하여 수신 트래픽을 처리할 준비가 될 때까지 기다립니다.
    apigee-service edge-router wait_for_ready
        
  8. 다음과 같이 Apigee Monit 서비스를 시작합니다.
    apigee-service apigee-monit start
        
  9. 상태 점검 포트 15999를 차단 해제하고 라우터가 다음 명령어를 실행하여 트래픽을 다시 처리할 수 있도록 IP 테이블을 삭제합니다.
    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

트래픽에 영향을 주지 않고 메시지 프로세서 순차적 재시작

이 섹션에서는 수신 API 트래픽에 영향을 주지 않고 메시지 프로세서 (MP)를 다시 시작하는 단계를 설명합니다.

  1. 다시 시작해야 하는 메시지 프로세서에 로그인합니다.
  2. 다음 명령어를 사용하여 메시지 프로세서의 상태 점검 포트를 식별합니다.
    curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")'
        
  3. 2단계에서 식별한 메시지 프로세서의 상태 점검 포트를 차단합니다. 이렇게 하면 메시지 프로세서가 비정상으로 간주되어 트래픽이 이 메시지 프로세서로 라우팅되지 않습니다.
    sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT
        

    여기서 port #는 2단계에서 실행된 명령어에서 반환된 포트 번호입니다.

  4. 2분 정도 기다린 후 진행 중인 트래픽이 원활하게 처리되도록 메시지 프로세서를 다시 시작하세요. 다음과 같이 sleep 명령어를 실행하면 됩니다.
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  5. 다음과 같이 Apigee Monit 서비스를 중지합니다.
    apigee-service apigee-monit stop
        
  6. 다음과 같이 Apigee 메시지 프로세서 서비스를 중지합니다.
    apigee-service edge-message-processor stop
        
  7. 다음과 같이 Apigee 메시지 프로세서 서비스를 시작합니다.
    apigee-service edge-message-processor start
        
  8. Apigee 메시지 프로세서 서비스가 시작되어 다음 명령어를 사용하여 수신 트래픽을 처리할 준비가 될 때까지 기다립니다.
    apigee-service edge-message-processor wait_for_ready
        
  9. 다음과 같이 Apigee Monit 서비스를 시작합니다.
    apigee-service apigee-monit start
        
  10. IP 테이블을 삭제하여 상태 점검 포트를 차단 해제하고 메시지 프로세서가 아래 명령어를 실행하여 트래픽을 다시 처리할 수 있도록 합니다.
    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단계에서 실행된 명령어에서 반환된 포트 번호입니다.