本主题介绍了如何从特定的服务引擎中建立 SE-控制器通信,这些服务引擎是在与控制器节点网络隔离的网络上实例化的。
连接过程从新实例化的 SE 向其父控制器发送的第一次通信开始。下面是这种类型的通信的一些示例:
控制器集群受防火墙保护,而其 SE 位于公用 Internet 上。
在公有云-私有云部署中,控制器位于公有云(例如 AWS)中,而 SE 位于客户的私有云中。
实施
除了集群中的控制器可以相互看到的管理节点地址以外,您还可以为每个控制器指定第二个管理 IP 地址,或者指定由连接到隔离网络的 SE 寻址的 DNS 可解析 FQDN。控制器将第二个 IP 地址或 FQDN 加入到用于生成 SE 的 SE 映像中。NSX Advanced Load Balancer 添加了 public-ip-or-name
参数以支持该功能。
通过 NSX Advanced Load Balancer CLI 设置参数
在初始版本中,只能通过 REST API 和 NSX Advanced Load Balancer CLI 访问参数。在以下 CLI 示例中,采用单节点集群。
[admin:my-controller-aws]: > configure cluster Updating an existing object. Currently, the object is: +---------------+----------------------------------------------+ | Field | Value | +---------------+----------------------------------------------+ | uuid | cluster-223cc977-f0de-4c5e-9612-7b0254b3057d | | name | cluster-0-1 | | nodes[1] | | | name | 10.10.30.102 | | ip | 10.10.30.102 | | vm_uuid | 005056b02776 | | vm_mor | vm-222393 | | vm_hostname | node1.controller.local | +---------------+----------------------------------------------+ [admin:my-controller-aws]: cluster> nodes index 1 [admin:my-controller-aws]: cluster:nodes> public_ip_or_name 1.1.1.1
说明
SE 无法使用地址 10.10.30.102 从其网络中寻址(路由到)控制器。
管理人员知道部署了启用 NAT 的防火墙,并对防火墙进行编程以将 1.1.1.1 转换为 10.10.30.102。
集群的第一个节点(也是唯一节点)的对象定义中的 public_ip_or_name 字符串参数设置为 1.1.1.1。因此,控制器
cluster-0-1
知道它必须将 1.1.1.1(而不是 10.10.30.102)嵌入到为生成 SE 而创建的 SE 映像中。因此,在 SE 第一次变为活动状态时,它使用 IP 地址 1.1.1.1 寻址其父控制器。
由于对该 SE 完全透明并且防火墙具有 NAT 功能,因此,初始通信将传送到 IP 地址 10.10.30.102。
后续的控制器-SE 通信正常进行,就像控制器和 SE 位于同一网络上一样。
重要说明
需要为集群中的所有节点配置 public_ip_or_name 字段,或者不为任何节点配置该字段。无法配置集群中的一部分节点。
如果启用了该配置,来自所有云的 SE 将始终使用 public_ip_or_name 尝试与控制器进行通信。目前,无法让一个云中的 SE 使用私有网络,而让另一个云中的 SE 使用进行 NAT 处理的网络。
建议在创建 SE 之前配置集群时启用该功能,而不要在 SE 存在时修改该设置。