ZooKeeper 노드 추가

Private Cloud용 Edge v. 4.17.09

이 문서에서는 기존 프라이빗 클라우드용 Edge 설치에 새 주Keeper 노드 3개를 추가하는 방법을 설명합니다.

기존 Edge 설치에 주Keeper 노드를 한 개 또는 두 개 추가할 수 있지만 아래에 설명된 대로 항상 홀수 개의 JoKeeper 투표자 노드가 있는지 확인해야 합니다.

기존 Edge 구성

프로덕션 시스템에 지원되는 모든 Edge 토폴로지는 3개의 JoKeeper 노드를 사용하도록 지정합니다. 3개의 노드는 아래와 같이 구성 파일의 ZK_HOSTSZK_CLIENT_HOSTS 속성에 지정됩니다.

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com 
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt 
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n 
LDAP_TYPE=1
APIGEE_LDAPPW=secret 
MP_POD=gateway
REGION=dc-1 
ZK_HOSTS="$IP1 $IP2 $IP3" 
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" 
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com 
SMTPUSER=smtp@example.com  
SMTPPASSWORD=smtppwd       

각 항목의 의미는 다음과 같습니다.

  • ZK_HOSTS는 주Keeper 노드의 IP 주소 또는 DNS 이름을 지정합니다. IP 주소 또는 DNS 이름은 모든 주Keeper 노드에서 동일한 순서로 나열되어야 합니다. 멀티 데이터 센터 환경에서 두 데이터 센터의 모든 JoKeeper 노드를 나열합니다.
  • ZK_CLIENT_HOSTS는 이 데이터 센터에서 사용하는 JoKeeper 노드의 IP 주소 또는 DNS 이름을 지정합니다. IP 주소 또는 DNS 이름은 모든 주Keeper 노드에서 동일한 순서로 나열되어야 합니다.

    단일 데이터 센터 설치에서 이들은 ZK_HOSTS에서 지정된 것과 동일한 노드입니다. 멀티 데이터 센터 환경에서는 이 데이터 센터의 JoKeeper 노드만 나열합니다.

새 주Keeper 노드 3개를 추가하도록 구성 파일 수정

이 예시에서는 3개의 새로운 JoKeeper 노드가 다음 IP 주소에 있습니다.

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

먼저 Edge 구성 파일을 업데이트하여 새 노드를 추가해야 합니다.

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com 
...
# Update ZK_HOSTS to add each new node after an existing nodes. 
ZK_HOSTS="$IP1 $IP2 $IP3 $IP14 $IP15 $IP16:observer" 
# Update ZK_Client_HOSTS to add each new node after an existing nodes. 
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3 $IP14 $IP15 $IP16" 

ZK_HOSTS의 마지막 노드를 ':observer' 수정자로 표시합니다. ':observer' 수정자가 없는 노드를 'voters'라고 합니다. 구성에 '투표자' 수가 홀수여야 합니다. 따라서 이 구성에는 5명의 주Keeper 투표자와 1명의 관찰자가 있습니다.

ZK_HOSTSZK_CLIENT_HOSTS에 노드를 동일한 순서로 추가해야 합니다. 그러나 ZK_CLIENT_HOSTS를 설정할 때 ':observer' 수정자를 생략합니다.

Edge 구성

구성 파일을 수정한 후에는 다음 작업을 모두 수행해야 합니다.

새 노드에 JoKeeper 설치

  1. Edge apigee-setup 유틸리티 설치에 설명된 대로 첫 번째 노드에 apigee-setup을 설치합니다.
  2. 다음 명령어를 사용하여 첫 번째 노드에 동물원Keeper를 설치합니다.
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper install
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updatedConfigFile
  3. 나머지 새 JoKeeper 노드에 1단계와 2단계를 반복합니다.

기존 주Keeper 노드 재구성

기존 JoKeeper 노드에서 다음을 실행합니다.

  1. '-p c' 프로필과 새 구성 파일을 사용하여 설정 명령어를 다시 실행합니다.
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updatedConfigFile

모든 Jokeeper 노드 다시 시작

모든 JoKeeper 노드에서 다음을 실행합니다.

  1. 노드를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart

    모든 JoKeeper 노드를 다시 시작해야 하지만 재시작 순서는 중요하지 않습니다.

관리 서버 노드 재구성

관리 서버 노드에서 다음을 수행합니다.

  1. 설정 명령어를 실행합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-management-server setup -f updatedConfigFile
  2. 관리 서버를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-management-server restart

모든 라우터 재구성

모든 라우터 노드에서 다음을 수행합니다.

  1. 설정 명령어를 실행합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-router setup -f updatedConfigFile
  2. 라우터를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-service Edge-router restart

모든 메시지 프로세서 재구성

모든 메시지 프로세서 노드:

  1. 설정 명령어를 실행합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor setup -f updatedConfigFile
  2. 메시지 프로세서를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-service Edge-message-processor restart

모든 Qpid 노드 재구성

모든 Qpid 노드에서 다음을 실행합니다.

  1. 설정 명령어를 실행합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-qpid-server setup -f updatedConfigFile
  2. Qpid를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-qpid-server restart

모든 Postgres 노드 재구성

모든 Postgres 노드에서 다음을 실행합니다.

  1. 설정 명령어를 실행합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-postgres-server setup -f updatedConfigFile
  2. Postgres를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-postgres-server restart

설치 검증

netcat (nc) 또는 telnet을 사용하여 포트 2181에 명령어를 전송하여 새 JoKeeper 노드 설치를 검증할 수 있습니다. 주Keeper 명령어에 대한 자세한 내용은 http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands를 참조하세요.

유효성 검사 방법은 다음과 같습니다.

  1. JoKeeper 노드에 설치되지 않은 경우 nc를 설치합니다.
    > sudo yum install nc
  2. 다음 nc 명령어를 실행합니다.
    > echo stat | nc localhost 2181
  3. 각 JoKeeper 노드에서 1단계와 2단계를 반복합니다.
    노드 출력의 Mode 줄에서 한 노드를 관찰자로, 한 노드를 리더로, 나머지 노드를 팔로어로 지정해야 합니다.