為 Apigee mTLS 設定多個資料中心

Apigee mTLS 支援多個資料中心,因此您可以擴充設定,納入更複雜的拓撲結構,例如 12 個節點的叢集安裝程序

在多資料中心拓撲中,mTLS 的安裝程序與簡單拓撲相同。不過,您必須確保安裝作業符合必要條件,並按照後續各節所述變更設定檔。

必要條件

如要搭配多個資料中心使用 Apigee mTLS,您必須:

  • 解除安裝 apigee-mtls,然後使用多資料中心設定重新安裝。您無法修改現有設定。詳情請參閱「變更現有的 apigee-mtls 設定」。
  • 在執行 mTLS 的每個主機上開啟通訊埠 8302。
  • 請確認所有 mTLS 叢集成員都有專屬的 IP 位址,且叢集內所有成員的 IP 位址都一致。
  • 指定設定檔時,請在可能含有歧義的指令中使用絕對路徑。
  • 新增多資料中心設定屬性,如多資料中心設定檔所述。

多個資料中心的設定檔

如要在多個資料中心使用 Apigee mTLS,請為每個資料中心建立個別的設定檔。

在每個設定檔中:

  1. 變更 ALL_IP 設定屬性的值,納入所有區域中的主機 IP 位址。
  2. 請確認 REGION 屬性的值為目前區域或資料中心的名稱。例如「dc-1」。
  3. 新增下列屬性:
    屬性 說明
    APIGEE_MTLS_MULTI_DC_ENABLE 您是否使用多資料中心設定。如果您要設定多個資料中心,請將此值設為「y」。否則請省略或設為「n」。預設值會省略。
    MTLS_LOCAL_REGION_IP 以空格分隔的清單,列出您目前設定的區域所使用的所有 IP 位址。例如「10.0.0.1 10.0.0.2 10.0.0.3」。

    如要使用設定中的第二個區域,請使用 MTLP_REMOTE_REGION_1_IP 屬性。

    MTLS_REMOTE_REGION_1_NAME 多資料中心設定中「第二」區域的名稱。例如「dc-2」。

    第二個區域的設定檔中,您會使用「dc-2」做為 REGION,而「dc-1」則用於 MTLS_REMOTE_REGION_1_NAME.

    MTLS_REMOTE_REGION_1_IP 以空格分隔的清單,列出多資料中心設定中第二個區域使用的所有 IP 位址。例如「10.0.0.4 10.0.0.5 10.0.0.6」。

以下範例顯示兩個資料中心 (「dc-1」和「dc-2」) 的設定檔。系統會醒目顯示多資料中心設定專屬的屬性):

dc-1 設定檔

ALL_IP="10.126.0.114 10.126.0.113 10.126.0.96 10.126.0.132 10.126.0.133 10.126.0.104 10.126.0.106 10.126.0.105 10.126.0.95 10.126.0.102 10.126.0.100 10.126.0.112"
LDAP_MTLS_HOSTS="10.126.0.114 10.126.0.106"
ZK_MTLS_HOSTS="10.126.0.114 10.126.0.113 10.126.0.96 10.126.0.106 10.126.0.105 10.126.0.95"
CASS_MTLS_HOSTS="10.126.0.114 10.126.0.113 10.126.0.96 10.126.0.106 10.126.0.105 10.126.0.95"
PG_MTLS_HOSTS="10.126.0.104 10.126.0.112"
RT_MTLS_HOSTS="10.126.0.113 10.126.0.96 10.126.0.105 10.126.0.95"
MS_MTLS_HOSTS="10.126.0.114 10.126.0.106"
MP_MTLS_HOSTS="10.126.0.113 10.126.0.96 10.126.0.105 10.126.0.95"
QP_MTLS_HOSTS="10.126.0.132 10.126.0.133 10.126.0.102 10.126.0.100"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="zRNQ9lhRySNTfegiLLLfIQ=="
PATH_TO_CA_CERT="/opt/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/consul-agent-ca-key.pem"

APIGEE_MTLS_MULTI_DC_ENABLE="y"
REGION="dc-1"
MTLS_LOCAL_REGION_IP="10.126.0.114 10.126.0.113 10.126.0.96 10.126.0.132 10.126.0.133 10.126.0.104"
MTLS_REMOTE_REGION_1_NAME="dc-2"
MTLS_REMOTE_REGION_1_IP="10.126.0.106 10.126.0.105 10.126.0.95 10.126.0.102 10.126.0.100 10.126.0.112"

dc-2 設定檔

ALL_IP="10.126.0.114 10.126.0.113 10.126.0.96 10.126.0.132 10.126.0.133 10.126.0.104 10.126.0.106 10.126.0.105 10.126.0.95 10.126.0.102 10.126.0.100 10.126.0.112"
LDAP_MTLS_HOSTS="10.126.0.114 10.126.0.106"
ZK_MTLS_HOSTS="10.126.0.114 10.126.0.113 10.126.0.96 10.126.0.106 10.126.0.105 10.126.0.95"
CASS_MTLS_HOSTS="10.126.0.114 10.126.0.113 10.126.0.96 10.126.0.106 10.126.0.105 10.126.0.95"
PG_MTLS_HOSTS="10.126.0.104 10.126.0.112"
RT_MTLS_HOSTS="10.126.0.113 10.126.0.96 10.126.0.105 10.126.0.95"
MS_MTLS_HOSTS="10.126.0.114 10.126.0.106"
MP_MTLS_HOSTS="10.126.0.113 10.126.0.96 10.126.0.105 10.126.0.95"
QP_MTLS_HOSTS="10.126.0.132 10.126.0.133 10.126.0.102 10.126.0.100"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="zRNQ9lhRySNTfegiLLLfIQ=="
PATH_TO_CA_CERT="/opt/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/consul-agent-ca-key.pem"

APIGEE_MTLS_MULTI_DC_ENABLE="y"
REGION="dc-2"
MTLS_LOCAL_REGION_IP="10.126.0.106 10.126.0.105 10.126.0.95 10.126.0.102 10.126.0.100 10.126.0.112"
MTLS_REMOTE_REGION_1_NAME="dc-1"
MTLS_REMOTE_REGION_1_IP="10.126.0.114 10.126.0.113 10.126.0.96 10.126.0.132 10.126.0.133 10.126.0.104"

如要瞭解標準設定屬性,請參閱「步驟 1:更新設定檔」。

測試多資料中心設定

raft list-peers 指令會顯示與執行 Consul 程序的所有 ZooKeeper (ZK) 節點相關聯的 IP 位址清單,如在伺服器上執行的 consul agent 程序所示。這些對等端不限於單一資料中心,而是涵蓋設定中的所有資料中心。

下列範例顯示 raft list-peers 指令的輸出範例,適用於支援 mTLS 的 2 個 DC 設定:

$ /opt/apigee/apigee-mtls-consul/bin/consul operator raft list-peers
Node              ID                                    Address            State     Voter  RaftProtocol
prc-test-2-20036  0f30e0fc-a33b-2cf9-91fc-3dd0c02711c7  10.126.0.116:8300  leader    true   3
prc-test-0-20036  9b00b259-5848-c72b-623e-7991ea1a5d1c  10.126.0.121:8300  follower  true   3
prc-test-1-20036  e92cd7b3-e2f2-30a1-2b06-c434160372f5  10.126.0.122:8300  follower  true   3
prc-test-6-20036  b196a6a1-2813-49d6-e141-b4f0cce19383  10.126.0.118:8300  follower  true   3
prc-test-7-20036  3708ca5f-a17f-a31e-42ed-bb1f92b1506c  10.126.0.120:8300  follower  true   3
prc-test-8-20036  ed7f1658-ea4b-abec-148b-427203d4200c  10.126.0.115:8300  follower  true   3

如要排解問題或驗證 raft list-peers 輸出內容,請確認 consul agent 程序是否在所有 ZK 節點上執行。您可以執行下列指令來確認這一點:

$ ps -elf
4 S consul     77903       1  3  80   0 - 382742 -     Jan13 ?        00:41:10 /opt/apigee/apigee-mtls-consul/bin/consul agent -config-file=/opt/apigee/apigee-mtls-4.52.02-0.0.20256/conf/server.json

這個指令會驗證 Consul 程序是否處於活動狀態,且在多資料中心設定的每個節點上正確設定。