管理IP地址
使用多个IP地址或IPv6地址与Redis企业版软件的信息和要求。
Redis Enterprise Software 支持具有多个 IPv4 或 IPv6 地址的服务器、实例和虚拟机。
流量概览
Redis 企业版软件的流量分为内部流量和外部流量:
-
"内部流量"指的是集群内部的通信,例如用于集群管理的节点之间的通信。
-
"外部流量"指的是客户端与数据库之间的通信以及连接到集群管理器UI的连接。
当作为Redis Enterprise节点的机器上只存在一个IP地址时,它用于内部和外部流量。
多个IP地址
在具有多个IP地址的机器上进行节点配置时,必须为内部流量分配一个地址,并为外部流量分配一个或多个其他地址。
如果集群使用IPv4进行内部通信,所有集群节点之间的通信都使用IPv4地址。如果集群使用IPv6进行内部通信,所有集群节点之间的通信都使用IPv6地址。
要在集群设置后更新IP地址配置,请参阅更改内部IP地址或配置外部IP地址。
为内部流量启用IPv6
仅支持使用Redis Enterprise Software版本7.4.2或更高版本的新集群进行内部通信的IPv6。
如果服务器只有IPv6接口,IPv6将自动用于内部和外部流量。否则,内部流量默认使用IPv4。
要在具有IPv4和IPv6接口的机器上使用IPv6进行内部通信,请在使用bootstrap REST API请求创建集群时将use_internal_ipv6
设置为true
:
POST /v1/bootstrap/create_cluster
{
"action": "create_cluster",
"cluster": {
"name": "cluster.fqdn"
},
"credentials": {
"username": "admin_username",
"password": "admin_password"
},
"node": {
"identity": {
"addr": "2001:DB8::/32",
"external_addr": ["2001:0db8:85a3:0000:0000:8a2e:0370:7334"],
"use_internal_ipv6": true
},
},
...
}
当其他IPv6节点加入启用了use_internal_ipv6
的集群时,它们会自动使用IPv6进行内部通信。在将节点加入现有的IPv6集群时,不要手动设置use_internal_ipv6
,否则如果值不匹配,可能会发生NodeBootstrapError
。
如果您尝试将一个没有IPv6接口的节点添加到启用了use_internal_ipv6
的集群中,将会发生NodeBootstrapError
。
集群中每个节点上的主机文件 /etc/hosts
必须包含以下条目:
::1 localhost
更改内部IP地址
在更改内部IP地址之前,请考虑以下事项:
-
验证地址是否有效并绑定到节点上的活动接口。如果不这样做,节点将无法重新上线并重新加入集群。
-
将仅具有IPv4网络接口的节点加入启用了IPv6的主节点会导致
NodeBootstrapError
。 -
将一个只有IPv6网络接口的节点加入到一个未启用IPv6的主节点会导致
NodeBootstrapError
。 -
在运行的集群中,您无法将内部地址从IPv4更改为IPv6或从IPv6更改为IPv4。您只能在集群的相同协议内更改内部地址。
如果您需要更新操作系统中的内部IP地址,一种选择是从集群中移除该节点,更改IP地址,然后将节点重新加入集群。
或者,您可以使用以下步骤更新节点的内部IP地址,而无需将其从集群中移除:
-
使用
rladmin
将节点转换为副本:rladmin node <ID> enslave demote_node
-
在节点上停用
rlec_supervisor
服务:systemctl disable rlec_supervisor
-
重新启动节点。
-
按照操作系统供应商的说明更改节点的IP地址。
-
从不同的集群节点,使用
rladmin node addr set
来更新第一个节点的IP地址:rladmin node <ID> addr set <IP address>
-
在节点上启用
rlec_supervisor
服务:systemctl enable rlec_supervisor
-
重启
rlec_supervisor
或重启节点。systemctl start rlec_supervisor
-
验证节点是否重新加入了集群:
rladmin status nodes
对其他集群节点重复此过程以更改其内部IP地址。
配置外部IP地址
您可以配置未绑定到活动接口的外部地址,但这些地址在其他情况下被映射或配置为将流量路由到节点(例如AWS弹性IP或负载均衡器VIP)。
你可以使用rladmin node external_addr来更改节点的外部IP地址。
添加一个外部IP地址:
rladmin node <ID> external_addr add <IP address>
设置一个或多个外部IP地址:
rladmin node <ID> external_addr set <IP address 1> <IP address N>
移除外部IP地址:
rladmin node <ID> external_addr remove <IP address>
已知限制
-
仅支持在运行 Redis Enterprise Software 版本 7.4.2 或更高版本的新集群中使用 IPv6 进行内部流量传输。
-
不支持将现有集群的内部流量从IPv4更改为IPv6。
-
所有节点必须使用相同的协议进行内部通信。
-
如果 Redis Enterprise 节点的主机同时具有 IPv4 和 IPv6 地址,节点内部的通信在引导过程完成之前最初使用 IPv4。