הוספת צמתים של ZooKeeper

במסמך הזה מוסבר איך להוסיף שלושה צומתי ZooKeeper חדשים להתקנה קיימת של Edge for Private Cloud.

אפשר להוסיף צומת ZooKeeper אחד או שניים להתקנה קיימת של Edge, אבל צריך לוודא שתמיד יש מספר אי-זוגי של צומתי הצבעה של ZooKeeper, כפי שמתואר בהמשך.

הגדרת Edge קיימת

בכל הטופולוגיות הנתמכות של Edge למערכת ייצור, צריך להשתמש בשלושה צומתי ZooKeeper. שלושת הצמתים מצוינים במאפיינים ZK_HOSTS ו-ZK_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 מציין את כתובות ה-IP או את שמות ה-DNS של צומתי ZooKeeper. כתובות ה-IP או שמות ה-DNS צריכים להופיע באותו סדר בכל צומתי ZooKeeper. בסביבה עם כמה מרכזי נתונים, צריך לציין את כל צומתי ZooKeeper משני מרכזי הנתונים.
  • ‫ZK_CLIENT_HOSTS מציין את כתובות ה-IP או שמות ה-DNS של צומתי ZooKeeper שבהם משתמש מרכז הנתונים הזה. כתובות ה-IP או שמות ה-DNS צריכים להופיע באותו סדר בכל צומתי ZooKeeper.

    בהתקנה של מרכז נתונים יחיד, אלה אותם צמתים שצוינו על ידי ZK_HOSTS. בסביבה עם כמה מרכזי נתונים, צריך לציין רק את צומתי ZooKeeper במרכז הנתונים הזה.

שינוי קובץ התצורה כדי להוסיף את שלושת הצמתים החדשים של ZooKeeper

בדוגמה הזו, שלושת הצמתים החדשים של ZooKeeper נמצאים בכתובות ה-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 נקראים "מצביעים". מספר "המצביעים" בהגדרות חייב להיות אי-זוגי. לכן, בהגדרה הזו יש 5 מצביעים של ZooKeeper וצופה אחד.

חשוב להוסיף את הצמתים גם ל-ZK_HOSTS וגם ל-ZK_CLIENT_HOSTS באותו סדר. אבל צריך להשמיט את המשתנה :observer כשמגדירים את ZK_CLIENT_HOSTS.

הגדרת Edge

אחרי שעורכים את קובץ התצורה, צריך לבצע את כל המשימות הבאות.

התקנת ZooKeeper בצמתים החדשים

  1. מתקינים את apigee-setup בצומת הראשון, כמו שמתואר בקטע התקנת כלי השירות apigee-setup של Edge.
  2. מתקינים את ZooKeeper בצומת הראשון באמצעות הפקודות הבאות:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper install
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updatedConfigFile
  3. חוזרים על שלבים 1 ו-2 בשאר צומתי ZooKeeper החדשים.

הגדרה מחדש של צומתי ZooKeeper הקיימים

בצמתים הקיימים של ZooKeeper:

  1. מריצים מחדש את פקודת ההגדרה עם קובץ התצורה החדש:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updatedConfigFile

הפעלה מחדש של כל צומתי Zookeeper

בכל הצמתים של ZooKeeper:

  1. מפעילים מחדש את הצומת:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart

    צריך להפעיל מחדש את כל צומתי ZooKeeper, אבל סדר ההפעלה מחדש לא משנה.

הגדרה מחדש של צומת שרת הניהול

בצומת של שרת הניהול:

  1. מריצים את פקודת ההגדרה:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server setup -f updatedConfigFile
  2. מפעילים מחדש את שרת הניהול:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

הגדרה מחדש של כל הנתבים

בכל צומתי הנתב:

  1. מריצים את פקודת ההגדרה:
    /opt/apigee/apigee-service/bin/apigee-service edge-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-service edge-qpid-server setup -f updatedConfigFile
  2. מפעילים מחדש את Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart

הגדרה מחדש של כל צומתי Postgres

בכל צומתי Postgres:

  1. מריצים את פקודת ההגדרה:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server setup -f updatedConfigFile
  2. מפעילים מחדש את Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

אימות ההתקנה

כדי לאמת את ההתקנה של צומתי ZooKeeper החדשים, שולחים פקודות ליציאה 2181 באמצעות netcat‏ (nc) או telnet. מידע נוסף על פקודות ZooKeeper זמין בכתובת: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.

כדי לאמת:

  1. אם הוא לא מותקן בצומת ZooKeeper, מתקינים את nc:
    sudo yum install nc
  2. מריצים את הפקודה הבאה של nc:
    echo stat | nc localhost 2181
  3. חוזרים על שלבים 1 ו-2 בכל צומת ZooKeeper. בשורה Mode של הפלט של הצמתים, צומת אחד צריך להיות מוגדר כ-observer, צומת אחד כ-leader והשאר כ-followers.