如何在集群中配置网络

集群中的所有成员必须定义相同的网络。在不同成员上的不同网络之间,唯一可能不同的配置键是 bridge.external_interfacesparentbgp.ipv4.nexthopbgp.ipv6.nexthop。有关更多信息,请参阅 成员配置

创建其他网络是一个两步过程

  1. 在所有集群成员中定义和配置新网络。例如,对于一个有三个成员的集群

    incus network create --target server1 my-network
    incus network create --target server2 my-network
    incus network create --target server3 my-network
    

    注意

    您只能传递特定于成员的配置键 bridge.external_interfacesparentbgp.ipv4.nexthopbgp.ipv6.nexthop。传递其他配置键会导致错误。

    这些命令定义了网络,但它们不会创建它。如果您运行 incus network list,您可以看到该网络被标记为“pending”。

  2. 运行以下命令以在所有集群成员上实例化网络

    incus network create my-network
    

    注意

    您可以向此命令添加不是特定于成员的配置键。

    如果您在定义网络时错过了集群成员,或者集群成员已关闭,则会出现错误。

另请参阅 在集群中创建网络

分离 REST API 和集群网络

您可以为客户端的 REST API 端点和集群成员之间的内部流量配置不同的网络。这种分离很有用,例如,您可以为您的 REST API 使用虚拟地址,并使用 DNS 轮询。

为此,您必须为 cluster.https_address(内部集群流量的地址)和 core.https_address(REST API 的地址)指定不同的地址。

  1. 照常创建您的集群,并确保将您要用于内部集群流量的地址用作集群地址。此地址设置为 cluster.https_address 配置。

  2. 加入您的成员后,将 core.https_address 配置设置为 REST API 的地址。例如

    incus config set core.https_address 0.0.0.0:8443
    

    注意

    core.https_address 是特定于集群成员的,因此您可以在不同的成员上使用不同的地址。您还可以使用通配符地址以使成员监听多个接口。