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

Edge สำหรับ Private Cloud เวอร์ชัน 4.17.09

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

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

ศูนย์ข้อมูลทั้งหมดต้องมีจำนวนโหนด Cassandra จำนวนเท่ากัน การติดตั้ง API BaaS ใช้คลัสเตอร์ Cassandra ของตัวเองหรือจะแชร์คลัสเตอร์ 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 โดยใช้กระบวนการผ่านอินเทอร์เน็ตหรือที่ไม่ใช่อินเทอร์เน็ต โปรดดูข้อมูลเพิ่มเติมที่ติดตั้งยูทิลิตี Edge Apigee-setup
    2. ไปที่พรอมต์คำสั่ง ให้เรียกใช้สคริปต์การตั้งค่าเพื่อติดตั้ง 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:IP12:IP12:IP12
  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 ให้เพิ่มโหนด dc-2 Cassandra ลงในไฟล์การกำหนดค่าสำหรับโหนดเซิร์ฟเวอร์การจัดการของ dc-1 และเรียกใช้ setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. อัปเดตคีย์เฟรม Cassandra ด้วยปัจจัยการจำลองที่ถูกต้องสำหรับศูนย์ข้อมูลทั้ง 2 แห่ง คุณต้องเรียกใช้ขั้นตอนนี้เพียงครั้งเดียวในเซิร์ฟเวอร์ Cassandra ใดก็ได้ในศูนย์ข้อมูลทั้ง 2 แห่ง

    หมายเหตุ: คำสั่งด้านล่างทั้งหมดตั้งค่าปัจจัยการจำลองเป็น "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" ที่มีการจำลอง = { '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" ที่มีการจำลอง = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" ที่มีการจำลอง = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. ดู keyspaces โดยใช้คำสั่ง:
        cqlsh> select * from system.schema_keyspaces;
      7. ออกจาก cqlsh:
        cqlsh> exit
  9. บนโหนด Cassandra ทั้งหมดใน dc-2 ให้เรียกใช้คำสั่งสร้างใหม่โดยระบุชื่อภูมิภาคของ dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP สร้างใหม่ dc-1
  10. เรียกใช้ "สถานะ nodetool" ในทุกโหนด Cassandra และยืนยันว่าโหนด Cassandra ทั้งหมดมี "100%" สำหรับค่า "ของตัวเอง"
    > /opt/apigee/apigee-cassandra/bin/nodetool
  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 Stack ในศูนย์ข้อมูล 1 โดยทำดังนี้
    1. ที่โหนด BaaS Stack รายการแรกในศูนย์ข้อมูล 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. อัปเดตค่า Keyspace ของ BaaS ต้องตั้งค่า Keyspace เหล่านี้สำหรับการจำลอง ณ เวลาติดตั้ง แต่ไม่จำเป็นต้องอยู่ในรันไทม์ การนำการจำลองออกจะบันทึกหน่วยความจำ Cassandra ด้วย

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

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

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

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