Red Hat OpenShift NSX DLR 配置
营销结束:自 2025 年 10 月 31 日起,不再向新客户提供 VMware Solutions 产品的新部署。 现有客户仍可在 IBM Cloud® 上使用和扩展其活动 VMware® 工作负载。 欲了解更多信息,请参阅 IBM Cloud 上的 VMware 营销结束。
Red Hat® OpenShift® 自 2025 年 7 月 17 日起,VMware® 的新自动安装不再适用于 VMware Cloud Foundation for Classic - Automated 实例的新部署或现有部署。 在 2026 年 7 月 16 日之前,您仍可使用或删除 VMware 自动安装的现有 Red Hat OpenShift。 自 2026 年 7 月 17 日起,该服务将不再提供。
NSX 分布式逻辑路由器用于支持 Red Hat® OpenShift® 4.7 环境。 要使用这些信息,必须了解如何创建这些组件并添加配置。
查看 添加分布式逻辑路由器。 如果您希望使用此方法,可采用提供的 PowerNSX 命令。
NSX DLR
NSX 分布式逻辑路由器作为内核模块在每个主机的系统管理程序中运行,并针对东西路由进行了优化。 (可选)可以安装 DLR 控制 VM。 需要 DLR 控制 VM 来与 NSX Edge 和 NSX 控制器建立对等连接,以进行动态路由(OSPF 或 BGP)更新。 在此部署中,使用了静态路由。 但是,我们将部署 DLR 控制 VM,以防您需要使用路由协议。
NSX DLR 控制虚拟机被配置为一对主动和一对被动设备。 在配置过程中,DLR 控制虚拟机被部署到紧凑型尺寸中,NSX DLR 被连接到 Red Hat OpenShift Edge。
| 组件 | 配置 | 
|---|---|
| CPU | 1 个 vCPU | 
| RAM | 1 GB | 
| 磁盘 | 4.5 GB VMDK,位于共享存储器上,具有 4 GB 交换空间 | 
由于 NSX DLR 控制虚拟机配置为主动-被动,因此必须创建 vSphere Distributed Resource Scheduler (DRS) anti-affinity 规则。 这些规则可确保 NSX 边缘不会与各自的对等设备运行在同一主机上。
| 字段 | 值 | 
|---|---|
| 名称 | OpenShift-DLR | 
              
| 类型 | 独立虚拟机 | 
| 成员 | OpenShift-DLR-0OpenShift-DLR-1 | 
              
NSX DLR 接口
NSX DLR 通过 Red Hat OpenShift NSX Edge 和 Red Hat OpenShift 逻辑交换机之间的中转网络进行部署。 Edge 定义为上行链路接口,逻辑交换机定义为内部接口。
| 接口名称 | 接口类型 | IP 地址 | 端口组或逻辑交换机 | 
|---|---|---|---|
| OpenShift-LS | 内部 | 192.168.133.1 | 
                OpenShift-LS | 
| OpenShift-Transit | 上行链路 | 192.168.100.2/24 | 
                OpenShift-Transit | 
NSX DLR 防火墙
DLR 防火墙配置为已打开。
| 防火墙规则 | 源 | 目标 | 服务 | 操作 | 
|---|---|---|---|---|
| 缺省值 | 任意 | 任意 | 任意 | 接受 | 
NSX DLR 路径
在 Edge 上,默认路由被配置为与 Red Hat OpenShift Edge 的中转网络连接。
全局配置
| 全局配置 | vNIC | 网关 IP 地址 | 
|---|---|---|
| 缺省网关 | Transit-Uplink | 192.168.100.1 | 
NSX DHCP 中继
对于 Red Hat OpenShift 4.7 环境,与 DHCP 服务的连接在 Red Hat OpenShift Edge 上运行。
| DCHP 中继 | 值 | 
|---|---|
| IP 地址 | 192.168.101.1 | 
| DCHP 中继 | 值 | 
|---|---|
| 名称 | OpenShift-LS | 
| 网关 IP | 192.168.133.1 | 
PowerNSX 命令
查看以下 PowerNSX 命令示例,您可以使用这些命令自动配置 NSX DLR。
使用下表来记录部署所需的参数。 显示的示例与先前描述的部署相匹配。
| 参数 | 示例 | 您的部署 | 
|---|---|---|
| vCenter Server IP 地址 | ||
| vCenter 服务器用户 | ||
| vCenter Server 密码 | ||
| 传输逻辑交换机 | OpenShift-Transit | 
                |
| OpenShift 逻辑交换机 | OpenShift-LS | 
                |
| 上行链路 IP 地址 | 192.168.100.2 | 
                |
| 内部 IP 地址 | 192.168.133.1 | 
                |
| DLR 名称 | OpenShift-DLR | |
| vCenter Server 实例集群 | cluster1 | 
                |
| vCenter Server 实例数据存储 | vsanDatastore | 
                
# Connect to NSX Manager
Connect-NsxServer -vCenterServer <IP_Address> -User <UserName> -Password '<Password>'
# Create DLR interface specifications and then create DLR
$uplinkLif = New-NsxLogicalRouterInterfaceSpec -Name ToESG -Type uplink -ConnectedTo (Get-NsxLogicalSwitch OpenShift-Transit) -PrimaryAddress 192.168.100.2 -SubnetPrefixLength 24
$internalLif = New-NsxLogicalRouterInterfaceSpec -Name ToLS -Type internal -ConnectedTo (Get-NsxLogicalSwitch OpenShift-LS) -PrimaryAddress 192.168.133.1 -SubnetPrefixLength 24
$haLif = New-NsxLogicalRouterInterfaceSpec -Name ToHA -Type internal -ConnectedTo (Get-NsxLogicalSwitch OpenShift-HA)
New-NsxLogicalRouter -Name OpenShift-DLR -ManagementPortGroup (Get-NsxLogicalSwitch OpenShift-HA) -Interface $uplinkLif,$internalLif,$haLif -Cluster (Get-Cluster cluster1) -EnableHA -Datastore (Get-Datastore vsanDatastore)
# Configure the default gateway on the DLR to be the ESG
$uplinkVnic = Get-NsxLogicalRouter OpenShift-DLR | Get-NsxLogicalRouterInterface "ToESG"
$uplinkVnicId = $uplinkVnic.index
Get-NsxLogicalRouter OpenShift-DLR | Get-NsxLogicalRouterRouting | Set-NsxLogicalRouterRouting -DefaultGatewayVnic $uplinkVnicId -DefaultGatewayAddress 192.168.100.1 -Confirm:$false
# Configure the default firewall rule on the DLR to "allow"
$dlr = Get-NsxLogicalRouter OpenShift-DLR
$dlr.features.firewall.defaultpolicy.action = "Accept"
$dlr | Set-NsxLogicalRouter -Confirm:$false
# Configure DHCP relay on DLR
$dlrID = (Get-NsxLogicalRouter -Name "OpenShift-DLR").Id
$internalLifVnicId = (Get-NsxLogicalRouter OpenShift-DLR | Get-NsxLogicalRouterInterface "ToLS").index
$uri = "/api/4.0/edges/$($dlrID)/dhcp/config/relay"
$xmlPayload = "
  <relay>
  <relayServer>
    <ipAddress>192.168.100.1</ipAddress>
  </relayServer>
  <relayAgents>
    <relayAgent>
      <vnicIndex>$($internalLifVnicId)</vnicIndex>
      <giAddress>192.168.133.1</giAddress>
    </relayAgent>
  </relayAgents>
 </relay>"
$null = invoke-nsxwebrequest -method "put" -uri $uri -body $xmlPayload -connection $nsxConnection
# Disconnect
Disconnect-NsxServer