为 Apigee mTLS 配置多个数据中心

Apigee mTLS 支持多个数据中心,因此您可以扩展配置以包含更复杂的拓扑,例如 12 节点集群安装

在多数据中心拓扑上部署 mTLS 的安装过程与在更简单的拓扑上部署 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"。

    第二个区域的配置文件中,您将为 REGION 使用“dc-2”,为 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 地址列表,这意味着这些 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 已在两个数据中心进行了测试,仅支持两个数据中心。不过,您可以使用以下属性指定最多 8 个数据中心的配置:

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

如前所述,不支持配置超过两个数据中心。