為 Apigee mTLS 設定多個資料中心

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

在多資料中心拓撲上,針對 mTLS 的安裝程序與處理較簡單的拓撲相同。不過,您必須確保安裝符合必要條件,且會按照後續章節所述的方式變更設定檔。

必要條件

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

  • 解除安裝 apigee-mtls,然後使用多個資料中心設定重新安裝。您無法修改現有設定。詳情請參閱變更現有的 apigee-mtls 設定
  • 在執行 mTLS 的每個主機上開啟通訊埠 8302。
  • 確保所有 mTLS 叢集成員都擁有不重複的 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,針對 MTLS_REMOTE_REGION_1_NAME. 使用「dc-1」

    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 指令會顯示 MTLS_LOCAL_REGION_IP 中定義的 IP 位址清單,也就是位於同一個資料中心。

下列範例顯示 raft list-peers 指令的輸出範例:

[ec2-user]# consul operator raft list-peers

Node              ID                Address            State     Voter  RaftProtocol
prc-test-1-2119   d1361917-b244-42  10.126.0.151:8300  leader    true   3
prc-test-0-2119   fad66fc3-22a0-43  10.126.0.155:8300  follower  true   3
prc-test-2-2119   78847b12-dd83-44  10.126.0.159:8300  follower  true   3
prc-test-6-2119   60bb50ac-37b6-52  10.126.0.152:8300  leader    true   3
prc-test-7-2119   515bbdfd-e968-53  10.126.0.147:8300  follower  true   3
prc-test-8-2119   d869c9a5-b4f6-54  10.126.0.158:8300  follower  true   3

Apigee mTLS 已在兩個資料中心上進行測試,且僅支援兩個資料中心。不過,您可以使用下列屬性,指定最多八個資料中心的設定:

  • MTLS_REMOTE_REGION_[2-8]_IP
  • MTLS_REMOTE_REGION_[2-8]_NAME

如前所述,不支援超過兩個資料中心的設定。