本节介绍如何在 NSX Manager 策略模式下配置资源。
在 NCP 配置文件 ncp.ini 中,您可以使用 UUID 或名称指定 NSX-T 资源。
网关和分段
- 为 Kubernetes 节点创建分段,例如 ocp4-segment。
- 创建 Tier-0 网关,例如 T0GW1。如果您没有共享的 Tier-1 拓扑,请在 ncp.ini 的 [nsx_v3] 部分使用网关 ID 设置 top_tier_router 选项。有关配置共享 Tier-1 拓扑的信息,请参见下文。如果您打算在此网关上配置 NAT 规则,请将 HA 模式设置为活动-备用。否则,将其设置为活动-活动状态。启用路由重新分发。还要配置此网关以访问外部网络。
- 创建 Tier-1 网关,例如 T1GW1。将此网关连接到 Tier-0 网关。
- 为 T1GW1 配置路由器通告。至少,应启用 NSX 连接和 NAT 路由。
- 将 T1GW1 连接至 ocp4-segment。请确保网关端口的 IP 地址与 Kubernetes 节点的 IP 地址不冲突。
- 对于每个节点虚拟机,请确保容器流量的 vNIC 连接到自动创建的分段。您可以在中找到该 vNIC,其名称与分段相同(即 ocp4-segment)。
- 如果使用 DHCP,可以在节点的分段上提供 DHCP 静态绑定。
- 标记:<cluster_name>,范围:ncp/cluster
- 标记:<node_name>,范围:ncp/node_name
注意:无需手动添加上述标记。NCP 网络 Operator 将自动添加这些标记。
Kubernetes pod 的 IP 块
networking:
networkType: ncp
clusterNetwork:
- cidr: 10.4.0.0/16
hostPrefix: 23
machineCIDR: 10.114.16.0/24
serviceNetwork:
- 172.30.0.0/16
OpenShift 4 适配器将为 install-config.yaml 文件中配置的每个 CIDR 创建一个新的 IP 块。如果任何现有 IP 块具有相同的 CIDR,请务必小心。不建议使用重叠的 IP 块,因为 NCP 支持在 Tier-0 和 Tier-1 之间进行已连接子网路由通告。
外部 IP 池
将使用外部 IP 池分配 IP 地址,这些地址将用于通过 SNAT 规则转换 pod IP 以及通过 SNAT/DNAT 规则公开 Ingress 控制器和 LoadBalancer 型服务,就像 Openstack 浮动 IP 一样。这些 IP 地址也称为外部 IP。
导航到以创建 IP 池。将 ncp.ini(NCP 网络 Operator 的一部分)的 [nsx_v3] 部分中的 external_ip_pools 选项设置为 IP 池的 UUID。如果希望 NCP 自动创建 IP 池,您可以使用 CIDR 格式的以逗号分隔的地址列表或 IP 范围设置 external_ip_pools 选项。
多个 Kubernetes 集群使用相同的外部 IP 池。每个 NCP 实例将该池的一部分用于它管理的 Kubernetes 集群。默认情况下,将使用 pod 子网的相同子网前缀。要使用不同的子网大小,请更新 ncp.ini 的 [nsx_v3] 部分中的 external_subnet_prefix 选项。
部署集群后,可以通过更改 nsx-system-operator 项目中的 nsx-ncp-operator-config configmap 来更改为其他 IP 池。
共享的 Tier-1 拓扑
下图展示了一个共享 Tier-1 拓扑。
- 将 top_tier_router 选项设置为 Tier-1 网关的 ID。将 Tier-1 网关连接到 Tier-0 网关以实现外部连接。
- 将 single_tier_topology 选项设置为 True。默认值为 False。
- 如果希望 NCP 自动将顶层路由器配置为 Tier-1 网关,请取消设置 top_tier_router 选项并设置 tier0_gateway 选项。NCP 将创建一个 Tier-1 网关,并将其上行链接至 tier0_gateway 选项中指定的 Tier-0 网关。