遷移 Apigee 伺服器

私有雲的邊緣 4.17.05 版

Apigee 元件會使用 IP 位址相互通訊。將元件從一部機器移至另一個機器可能會導致設定不符。如要修正設定不符的問題,請按照下方相關指示操作。

變更 Cassandra 節點的 IP 位址

如要變更 Cassandra 節點的 IP 位址,請執行下列步驟:

適用於單一 Cassandra 節點的設定

  1. 編輯要修改的系統上的 /opt/apigee/customer/application/cassandra.properties。如果檔案不存在,請建立一個。
  2. 變更下列參數:
    • 設定 conf_cassandra_seedsconf_cassandra_listen_address 參數,以指定系統的新 IP 位址。
    • 變更 conf_cassandra_rpc_address,以使用新的 IP 位址或 0.0.0.0 (允許 Cassandra Thrift 監聽所有介面)。
  3. 在編輯器中開啟 /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties。您應該會看到舊的 IP 位址和預設設定,格式如下:
    192.168.56.101=dc-1:ra-1
    default=dc-1:ra-1


    儲存這項資訊。
  4. 編輯 /opt/apigee/customer/application/cassandra.properties,將指定舊 IP 位址變更為新的 IP 位址:
    conf_cassandra-topology_topology=192.168.56.103=dc-1:ra-1\ndefault=dc-1:ra-1\n

  5. 重新啟動 Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. 如果需要一併修復 ZooKeeper (請見下方說明),則請重新啟動每個 Apigee 平台元件,從管理伺服器開始。

適用於具有多個 Cassandra 節點 (環) 的設定

  1. 如果要變更的節點是種子節點,請編輯環形中每個系統的 /opt/apigee/customer/application/cassandra.properties 檔案,並變更 conf_cassandra_seeds 參數,納入已修改系統的新 IP。如果 cassandra.properties 檔案不存在,請建立檔案。
  2. 編輯所修改系統的 /opt/apigee/customer/application/cassandra.properties,並變更下列參數:
    • 設定 conf_cassandra_listen_address 以使用新的 IP 位址。
    • 設定 conf_cassandra_rpc_address 以使用新的 IP 位址或 0.0.0.0 (允許 Cassandra Thrift 監聽所有介面)。
  3. 在編輯器中開啟 /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties。您應該會看到所有 Cassandra IP 位址和預設設定,格式如下:
    192.168.56.101=dc-1:ra-1
    192.168.56.102=dc-1:ra-1
    192.168.56.103=dc-1:ra-1


  4. 編輯 /opt/apigee/customer/application/cassandra.properties,將先前記錄的舊 IP 位址變更為新 IP 位址:
    conf_cassandra-topology_topology=192.168.56.101=dc-1:ra-1\n192.168.56.102=dc-1:ra-5。

  5. 在已修改的系統上重新啟動 Cassandra。如果已修改的系統是種子節點,也請重新啟動使用已修改種子節點的每個系統。
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. 在已修改的節點上執行 nodetool ring 指令,確認環已完成。您可以在 opt/apigee/apigee-cassandra/bin 找到這個公用程式。
    > nodetool -h localhost Ring
  7. 在已修改的節點上執行 nodetoolpair。請注意,這項程序可能需要一點時間才能完成,因此強烈建議您不要在 API 流量高峰時段執行這項作業。
    > nodetool -h localhost 修復
  8. 如有需要,請修復 ZooKeeper (請見下方說明),然後重新啟動每個 Apigee 平台元件,從管理伺服器開始

更新資料儲存庫註冊

  1. 使用下列指令,尋找指定舊 IP 位址的資料儲存庫註冊 UUID。記下「type」和「UUID」參數:
    • curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers?pod=central&region=DC" | egrep -i '(type|internalip|uuid|region)'
    • curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers?pod=gateway&region=DC" | egrep -i '(type|internalip|uuid|region)'
    • curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers?pod=analytics&region=DC" | egrep -i '(type|internalip|uuid|region)'

      其中 DC 是資料中心的名稱。如果安裝單一資料中心,這個值通常為「dc-1」。
  2. 使用下列其中一個指令註冊新的 IP 位址。需要的指令取決於已變更的節點類型。

    注意:下方的 REGION 參數是指叢集所在的資料中心。舉例來說,如要具備高可用性,您通常會在 dc-1 (日期中心中心 1) 中建立一個叢集,並在 dc-2 (資料中心 2) 中建立一個叢集。這個參數是在安裝時定義。預設值為 dc-1。
    • 針對 type="application-datastore":
      curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers -d "Type=application-datastore&Type=audit-datastore&InternalIP=${NEWIP}&region=${REGION}&pod=central" -H 'content-type: application/x-www-form-form
    • 如為 type="kms-datastore":
      curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers -d "Type=kms-datastore&Type=dc-datastore&Type=keyvaluemap-datastore&Type=counter-datastore&Type=cache-datastore &InternalIP=${PODWAY}
    • 針對 type="reportcrud-datastore":
      curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers" -d "Type=reportcrud-datastore&InternalIP=${NEW_IP}&region=${REGION}&pod=analytics" -H 'content-type: application/x-www-form-form
  3. 刪除 IP 位址出現變更的系統 UUID 舊註冊資料。針對以下每個 UUID 問題:
    curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers/${OLD_UUID}" -X DELETE

變更 ZooKeeper 節點的 IP 位址

請按照下列步驟變更 ZooKeeper 節點的 IP 位址:

變更 IP 位址,然後重新啟動 ZooKeeper 整體 (僅適用於多節點組合設定)

  1. 在編輯器中開啟 /opt/apigee/apigee-zookeeper/conf/zoo.cfg。您應該會看到所有 ZooKeeper IP 位址和預設設定,格式如下:
    server.1=192.168.56.101:2888:3888
    server.2=192.168.56.102:2888:3888
    server.3=192.168.56.1

  2. 在每個 ZooKeeper 節點上編輯 /opt/apigee/customer/application/zookeeper.properties 檔案,將 conf_zoo_quorum 屬性設為正確的 IP 位址。如果檔案不存在,請建立一個。
    conf_zoo_quorum=server.1=192.168.56.101:2888:3888nserver.2=192.168.56.102:2888:3888nserver.3=192.168.56.104:2888:3888n
  3. 使用下列指令找出 ZooKeeper 的領導者 (請將 <node> 替換為 Zookeeper 機器的 IP 位址):
    echo srvr | nc <node> 2181

    輸出內容中的模式行應顯示為「leader」。
  4. 由領導者開始,並以變更 IP 位址的節點結束,然後重新啟動一個 ZooKeeper。如果變更了多個動物園人員節點的 IP 位址,可能需要重新啟動所有節點。
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  5. 使用上述的 echo 指令驗證每個 ZooKeeper 節點。

通知 Apigee 節點已變更的設定

  1. 在每個路由器節點上,依照下列方式編輯 /opt/apigee/customer/application/router.properties 檔案。如果檔案不存在,請建立檔案。
    • 變更 conf_zookeeper_connection.string 參數,以加入新的 IP 位址
    • 變更 conf_zookeeper_zk1.host 參數,納入新的 IP 位址
  2. 在每個訊息處理器節點上,按照下列步驟編輯 /opt/apigee/customer/application/message-processor.properties 檔案。如果檔案不存在,請建立檔案。
    • 變更 conf_zookeeper_connection.string 參數,以加入新的 IP 位址
    • 變更 conf_zookeeper_zk1.host 參數,納入新的 IP 位址
  3. 在管理伺服器節點上,依照下列方式編輯 /opt/apigee/customer/application/management-server.properties 檔案。如果檔案不存在,請建立檔案。
    • 變更 conf_zookeeper_connection.string 參數,以加入新的 IP 位址
    • 變更 conf_zookeeper_zk1.host 參數,納入新的 IP 位址
  4. 在每個節點上執行下列指令,重新啟動所有 Apigee 平台元件:
    /opt/apigee/apigee-service/bin/apigee-all restart

變更 LDAP 伺服器 (OpenLDAP) 的 IP 位址

如要變更 OpenLDAP 節點的 IP 位址,請按照下列步驟操作:

  1. 在管理伺服器節點上,編輯 /opt/apigee/customer/application/management-server.properties 檔案。如果檔案不存在,請建立一個。
  2. management-server.properties 檔案中,將 conf_security_ldap.server.host 參數設為新的 IP 位址。
  3. 重新啟動管理伺服器:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-management-server restart

變更其他 Apigee 節點類型的 IP 位址

如要變更下列任一節點類型 (路由器、訊息處理器、Postgres 伺服器 (而非 postgresql) 與 Qpid 伺服器) 的 IP 位址,請按照下列指示操作:

  1. 使用以下 cURL 指令來註冊新的內部和外部 IP 位址:
    curl -u $ADMINEMAIL:$PW -X PUT http://$MSIP:8080/v1/servers/<uuid> -d ExternalIP=<ip>
    curl -u $ADMINEMAIL:$EIP/UID


如果您不知道節點的 UUID,可以使用下列指令顯示節點:

  • 路由器curl http://<router_IP>:8081/v1/servers/self
  • 訊息處理器: curl http://<mp_IP>:8082/v1/servers/self
  • Qpidcurl http://<qp_IP>:8083/v1/servers/self
  • Postgrescurl http://<pg_IP>:8084/v1/servers/self