การติดตั้งศูนย์ข้อมูลหลายแห่งสําหรับ API BaaS

Edge for Private Cloud v4.18.01

คุณสามารถติดตั้ง API BaaS ในศูนย์ข้อมูลหลายแห่งได้โดยใช้การกำหนดค่าแบบใช้งานอยู่/ใช้งานอยู่ เอกสารนี้จะอธิบายวิธีเพิ่มศูนย์ข้อมูล BaaS ไปยังศูนย์ข้อมูล BaaS ที่มีอยู่

การเพิ่มศูนย์ข้อมูลเมื่อแชร์คluster Cassandra กับ Edge

ดาต้าเซ็นเตอร์ทั้งหมดต้องมีโหนด Cassandra เท่ากัน การติดตั้ง API BaaS สามารถใช้คลัสเตอร์ Cassandra ของตนเอง หรือจะแชร์คluster Cassandra กับ Edge ก็ได้

หากการติดตั้ง BaaS แชร์คลัสเตอร์ Cassandra กับ Edge คุณต้องอัปเดตเซิร์ฟเวอร์การจัดการในศูนย์ข้อมูลเดิมเพื่อกำหนดค่าเซิร์ฟเวอร์ให้จดจำโหนด Cassandra ในศูนย์ข้อมูลใหม่

การอัปเดตศูนย์ข้อมูลที่มีอยู่

การเพิ่มศูนย์ข้อมูล BaaS แห่งใหม่ (ศูนย์ข้อมูล 2) จะทำให้คุณต้องทําตามขั้นตอนในการติดตั้งและกําหนดค่าศูนย์ข้อมูลใหม่ แต่คุณจะต้องอัปเดตศูนย์ข้อมูล BaaS เดิม (ศูนย์ข้อมูล 1) ด้วย การแก้ไขเหล่านี้เป็นสิ่งที่จำเป็นเนื่องจากเหตุผลต่อไปนี้

  • คุณกำลังเพิ่มโหนด Cassandra ใหม่ในศูนย์ข้อมูลใหม่ที่ต้องเข้าถึงได้โดยศูนย์ข้อมูลที่มีอยู่
  • คุณต้องกําหนดค่าข้อมูลการจําลองข้อมูลที่โหนด BaaS Stack ใช้ในดาต้าเซ็นเตอร์ 1 ให้รวมข้อมูลจากดาต้าเซ็นเตอร์ 2 คุณจะทำการกําหนดค่าดังกล่าวไม่ได้จนกว่าจะติดตั้งดาต้าเซ็นเตอร์ 2

หากต้องการดำเนินการอัปเดตเหล่านี้ในศูนย์ข้อมูล 1 คุณต้องอัปเดตไฟล์การกำหนดค่าเดิมที่ใช้ติดตั้งศูนย์ข้อมูล 1 แล้วเรียกใช้ apigee-setup อีกครั้งบนโหนด Cassandra ของศูนย์ข้อมูล 1 หากมีการแชร์คลัสเตอร์ Cassandra สำหรับศูนย์ข้อมูล 1 กับการติดตั้ง Edge คุณจะต้องอัปเดตเซิร์ฟเวอร์การจัดการด้วย

การสร้างไฟล์การกําหนดค่า

สำหรับการติดตั้งศูนย์ข้อมูล 1 ให้ใช้การกำหนดค่าที่แสดงในการติดตั้ง API BaaS ไฟล์การกําหนดค่าไม่จำเป็นต้องมีข้อมูลเกี่ยวกับศูนย์ข้อมูล 2 ในขณะติดตั้งศูนย์ข้อมูล 1.คุณเพิ่มข้อมูลลงในไฟล์การกําหนดค่าหลังจากติดตั้งศูนย์ข้อมูล 2

ด้านล่างนี้คือไฟล์การกําหนดค่าสําหรับศูนย์ข้อมูล 2 ไฟล์การกําหนดค่านี้ถือว่าคุณกําลังติดตั้ง dc-2 ในโหนด 10 โหนดตามที่อธิบายไว้ในโทโปโลยีการติดตั้ง แก้ไขไฟล์นี้ให้สอดคล้องกันหากกำลังติดตั้งบนโหนด 7 รายการ

โปรดสังเกตว่าไฟล์การกำหนดค่าสำหรับศูนย์ข้อมูล 2 (dc-2) มีข้อมูลเกี่ยวกับศูนย์ข้อมูล 1 (dc-1) ดังนี้

# Specify IP address or DNS name of node for dc-2.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra dc-2 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra dc-2 (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra dc-2 (shared with Edge or standalone)

# Specify node information for dc-1
IP11=192.168.1.11   # Cassandra dc-1 (shared with Edge or standalone)
IP12=192.168.1.12   # Cassandra dc-1 (shared with Edge or standalone)
IP13=192.168.1.13   # Cassandra dc-1 (shared with Edge or standalone)
IP14=192.168.1.14   # API BaaS Stack
IP15=192.168.1.15   # API BaaS Stack

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Specify Cassandra data center and rack suffix.
# List dc-2 nodes first, then dc-1.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:2,1 $IP9:2,1 $IP10:2,1 $IP11:1,1 $IP12:1,1 $IP13:1,1"

# Specify the Cassandra region.
REGION=dc-2

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name as dc-2.
BAAS_CASS_LOCALDC=dc-2    

# Specify both data centers.
BAAS_CASS_DC_LIST=dc-1,dc-2

# Replication is in the form "dataCenterName:#CassandraNodes". 
# Specify both data centers.
BAAS_CASS_REPLICATION=dc-1:3,dc-2:3

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes per data center.
# Specify both data centers. 
BAAS_CLUSTER_SEEDS="dc-1:$IP14,dc-1:$IP15,dc-2:$IP4,dc-2:$IP5"

# ElasticSearch IPs or DNS names, separated by spaces, for dc-2.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y
SMTPMAILFROM="My Company <myco@company.com>"

เพิ่มศูนย์ข้อมูล BaaS

  1. ติดตั้งศูนย์ข้อมูลแห่งแรกตามที่อธิบายไว้ในการติดตั้ง API BaaS เอกสารดังกล่าวมีไฟล์การกําหนดค่าที่คุณใช้ติดตั้งศูนย์ข้อมูล 1
  2. สร้างไฟล์การกําหนดค่าสําหรับ dc-2 ตามที่อธิบายไว้ด้านบน
  3. ติดตั้ง Cassandra โดยเป็นส่วนหนึ่งของการติดตั้ง Edge ที่มีอยู่หรือเป็นคลัสเตอร์สําหรับ BaaS แบบสแตนด์อโลน โดยทําดังนี้
    1. ติดตั้งยูทิลิตี apigee-setup ของ Edge ในโหนด Cassandra แรกใน dc-2 ซึ่งเป็นเครื่องที่ 8 โดยใช้ขั้นตอนผ่านอินเทอร์เน็ตหรือไม่ใช่อินเทอร์เน็ต โปรดดูข้อมูลเพิ่มเติมในหัวข้อติดตั้งยูทิลิตีการตั้งค่า Apigee-Chrome ของ Edge
    2. ที่ Command Prompt ให้เรียกใช้สคริปต์การตั้งค่าเพื่อติดตั้ง Cassandra ในโหนดแรก
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      ตัวเลือก "-p c" จะระบุให้ติดตั้ง Cassandra

      ผู้ใช้ "apigee" ต้องเข้าถึงหรืออ่านไฟล์การกําหนดค่าได้
    3. ทำขั้นตอนที่ 3 และ 4 ซ้ำสำหรับโหนด Cassandra ที่เหลือ ซึ่งเป็นเครื่อง 9 และ 10 ใน dc-2
  4. ในโหนด Cassandra ของ dc-1 ให้แก้ไขไฟล์การกําหนดค่าเพื่อเพิ่มโหนด Cassandra จากศูนย์ข้อมูล 2 โดยอิงตามวิธีติดตั้ง Cassandra

    # แสดงรายการโหนด dc-1 ก่อน แล้วจึงแสดงรายการ dc-2
    # รวมถึงศูนย์ข้อมูลและส่วนต่อท้ายของแร็คของ Cassandra
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. ในโหนด Cassandra โหนดแรกของ dc-1 ให้เรียกใช้ setup.sh ด้วยไฟล์การกําหนดค่า dc-1 ใหม่ที่มีโหนด Cassandra จาก dc-2
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. ทำขั้นตอนที่ 6 และ 7 ซ้ำสำหรับโหนด Cassandra ที่เหลือใน dc-1
  7. หากเชื่อมต่อกับคลัสเตอร์ Cassandra สำหรับ dc-1 ที่แชร์กับ Edge ให้เพิ่มโหนด Cassandra ของ dc-2 ลงในไฟล์การกําหนดค่าสําหรับโหนดเซิร์ฟเวอร์การจัดการของ dc-1 แล้วเรียกใช้ setup.sh
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. อัปเดตคีย์สเปซ Cassandra ด้วยปัจจัยการทําสําเนาที่ถูกต้องสําหรับศูนย์ข้อมูล 2 แห่ง คุณต้องทำขั้นตอนนี้เพียงครั้งเดียวในเซิร์ฟเวอร์ Cassandra ในศูนย์ข้อมูลใดเซิร์ฟเวอร์หนึ่ง

    หมายเหตุ: คำสั่งด้านล่างทั้งหมดจะกำหนดปัจจัยการจำลองเป็น "3" ซึ่งบ่งชี้โหนด Cassandra 3 โหนดในคลัสเตอร์ แก้ไขค่านี้ตามที่จำเป็นสำหรับการติดตั้ง
    1. เริ่มยูทิลิตี Cassandra cqlsh
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. เรียกใช้คำสั่ง CQL ต่อไปนี้ที่พรอมต์ "cqlsh>" เพื่อตั้งค่าระดับการจำลองข้อมูลสำหรับคีย์สเปซของ Cassandra
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" พร้อมการจำลอง = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" พร้อมการจำลอง = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. ดูคีย์สเปซโดยใช้คําสั่ง
        cqlsh> select * from system.schema_keyspaces;
      7. ออกจาก cqlsh:
        cqlsh> exit
  9. ในโหนด Cassandra ทั้งหมดใน dc-2 ให้เรียกใช้คำสั่ง rebuild โดยระบุชื่อภูมิภาคของ dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP สร้างใหม่ dc-1
  10. เรียกใช้ "nodetool status" ในโหนด Cassandra ทุกโหนด และตรวจสอบว่าโหนด Cassandra ทุกโหนดมีค่า "Owns" เป็น "100%"
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. ติดตั้ง BaaS ใน dc-2 โดยทำดังนี้
    1. แก้ไขไฟล์การกำหนดค่าเพื่อแสดงเฉพาะโหนด Cassandra ใน dc-2
      # แสดงรายการโหนด dc-2 Cassandra,
      # ที่จะละเว้นศูนย์ข้อมูลและคำต่อท้ายแร็คของ Cassandra
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. ติดตั้ง ElasticSearch บนโหนด 4, 5 และ 6 ของ dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. ติดตั้ง BaaS Stack ในโหนด 4, 5 และ 6 ของ dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. ติดตั้งพอร์ทัล BaaS ในเครื่อง 7
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. อัปเดตโหนดสแต็ก BaaS ในศูนย์ข้อมูล 1 โดยทำดังนี้
    1. ในโหนดสแต็ก BaaS ตัวแรกในศูนย์ข้อมูล 1 ให้แก้ไข /opt/apigee/customer/application/usergrid.properties ในเครื่องมือแก้ไข หากไม่มีไฟล์ดังกล่าว ให้สร้างไฟล์
    2. เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงใน usergrid.properties
      # ค่าเดียวกับ BAAS_CLUSTER_SEEDS ในไฟล์การกําหนดค่า dc-2
      # โดยไม่ต้องใส่เครื่องหมายคำพูดคู่
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # ค่าเดียวกับ BAAS_CASS_DC_LIST ในไฟล์การกําหนดค่า dc-2
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. ทำขั้นตอนที่ a และ b ซ้ำในโหนด BaaS Stack ที่เหลือ
    4. รีสตาร์ทโหนด BaaS Stack ทั้งหมด

      หมายเหตุ: เมื่อรีสตาร์ทโหนด BaaS Stack ให้รีสตาร์ทโหนดเหล่านั้นตามลําดับเดียวกันกับที่แสดงใน BAAS_CLUSTER_SEEDS BAAS_CLUSTER_SEEDS จะแสดงรายการโหนดสแต็กไม่เกิน 2 รายการ หลังจากรีสตาร์ทโหนด 2 รายการดังกล่าวตามลําดับแล้ว คุณสามารถรีสตาร์ทโหนดที่เหลือตามลําดับใดก็ได้

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid โปรดรีสตาร์ท
  13. อัปเดตค่าพื้นที่คีย์ BaaS คุณต้องตั้งค่าคีย์สเปซเหล่านี้สำหรับการทำซ้ำ ณ เวลาติดตั้ง แต่ไม่จำเป็นต้องทำขณะรันไทม์ การนำการจำลองข้อมูลออกยังช่วยประหยัดหน่วยความจำของ Cassandra ด้วย

    ?คุณต้องทำขั้นตอนนี้เพียงครั้งเดียวในเซิร์ฟเวอร์ Cassandra ใดก็ได้ในศูนย์ข้อมูลทั้ง 2 แห่ง โดยทำดังนี้
    1. เริ่มยูทิลิตี Cassandra cqlsh
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. เรียกใช้คำสั่ง CQL ต่อไปนี้เพื่อตั้งค่าระดับการจำลองข้อมูลสําหรับพื้นที่คีย์ Cassandra
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. ดูคีย์สเปซโดยใช้คําสั่ง
        cqlsh> select * from system.schema_keyspaces;
      4. ออกจาก cqlsh:
        cqlsh> exit

การติดตั้งศูนย์ข้อมูลแห่งที่ 2 นี้เสร็จสมบูรณ์แล้ว

หลังจากติดตั้งและกำหนดค่าศูนย์ข้อมูล 2 แห่งเสร็จแล้ว คุณสามารถตรวจสอบการติดตั้งโดยใช้ขั้นตอนต่อไปนี้

  1. ตรวจสอบสถานะในโหนด BaaS Stack ทั้งหมด
    > curl 0:8080/status
  2. ตรวจสอบว่าการเรียก API ของโทเค็นทํางานอยู่
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. ลองเข้าสู่ระบบพอร์ทัล BaaS สำหรับ dc-2 ยืนยันว่าข้อมูลทั้งหมดได้รับการทำซ้ำใน dc-2 เช่น คอลเล็กชันที่สร้างใน dc-1