为 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 命令会显示与运行 Consul 进程的所有 ZooKeeper (ZK) 节点关联的 IP 地址列表,如服务器上运行的 consul agent 进程所示。这些对等方不限于单个数据中心,而是跨越配置中的所有数据中心。

以下示例展示了启用了 2 个数据中心 mTLS 设置的 raft list-peers 命令的示例输出:

$ /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 进程是否在多数据中心设置中的每个节点上处于活动状态且配置正确。