管理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地址,而无需将其从集群中移除:

  1. 使用rladmin将节点转换为副本:

    rladmin node <ID> enslave demote_node
    
  2. 在节点上停用rlec_supervisor服务:

    systemctl disable rlec_supervisor 
    
  3. 重新启动节点。

  4. 按照操作系统供应商的说明更改节点的IP地址。

  5. 从不同的集群节点,使用rladmin node addr set来更新第一个节点的IP地址:

    rladmin node <ID> addr set <IP address>
    
  6. 在节点上启用rlec_supervisor服务:

    systemctl enable rlec_supervisor 
    
  7. 重启 rlec_supervisor 或重启节点。

    systemctl start rlec_supervisor
    
  8. 验证节点是否重新加入了集群:

    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>
注意:
在节点引导过程中将新节点加入集群时, 当提示提供集群中现有节点的IP时, 如果使用节点的IP,请提供节点的内部IP地址。

已知限制

  • 仅支持在运行 Redis Enterprise Software 版本 7.4.2 或更高版本的新集群中使用 IPv6 进行内部流量传输。

  • 不支持将现有集群的内部流量从IPv4更改为IPv6。

  • 所有节点必须使用相同的协议进行内部通信。

  • 如果 Redis Enterprise 节点的主机同时具有 IPv4 和 IPv6 地址,节点内部的通信在引导过程完成之前最初使用 IPv4。

RATE THIS PAGE
Back to top ↑