1.7.2. 规划您的 IPAM 配置
在 OpenShift 上的 Red Hat OpenStack Services (RHOSO)部署中,部署在 Red Hat OpenShift Container Platform (RHOCP) worker 节点上的每个服务都需要 IP 地址管理(IPAM)池。在 Red Hat OpenStack Platform (RHOSP)部署中,托管在 Controller 节点上的所有服务共享相同的 IP 地址。
RHOSO control plane 对为服务提供的 IP 地址数量有不同的要求。根据现有 RHOSO 部署中使用的 IP 范围大小,您可以为 RHOSO control plane 重复使用这些范围。
每个隔离网络中新 control plane 服务所需的 IP 地址总数计算为以下网络的总和:
-
RHOCP worker 节点数量。每个 worker 节点都需要
NodeNetworkConfigurationPolicy自定义资源(CR)中的一个 IP 地址。 -
data plane 节点所需的 IP 地址数量。每个节点都需要来自
NetConfigCR 的 IP 地址。 -
control plane 服务所需的 IP 地址数量。每个服务都需要来自
NetworkAttachmentDefinitionCR 的 IP 地址。这个数量取决于每个服务的副本数。 -
负载均衡器 IP 地址所需的 IP 地址数量。每个服务都需要来自
IPAddressPoolCR 的虚拟 IP 地址。
例如,使用 Red Hat OpenShift Local 简单的 worker 节点 RHOCP 部署为 internalapi 网络定义了以下 IP 范围:
- 单个 worker 节点的 IP 地址
- data plane 节点的 IP 地址
-
control plane 服务的
NetworkAttachmentDefinitionCR:X.X.X.30-X.X.X.70(41 addresses) -
负载均衡器 IP 的
IPAllocationPoolCR:X.X.X.80-X.X.X.90(11 地址)
本例显示了分配给 internalapi 分配池的 54 个 IP 地址。
要求可能会根据要部署的 RHOSP 服务列表、其副本数以及 RHOCP worker 节点和数据平面节点的数量而有所不同。
在以后的 RHOSP 发行版本中可能需要额外的 IP 地址,因此您必须为新环境中使用的每个分配池规划一些额外的容量。
在为新部署确定所需的 IP 池大小后,您可以选择定义新的 IP 地址范围或重复使用现有的 IP 地址范围。无论场景如何,现有部署中的 VLAN 标签都会在新部署中重复使用。确保新配置中正确保留 VLAN 标签。如需更多信息,请参阅配置隔离网络。
1.7.2.1. 配置新子网范围 复制链接链接已复制到粘贴板!
如果您在大多数情况下使用 IPv6,则可以重复使用现有的子网范围。有关现有子网范围的更多信息,请参阅 重复使用现有子网范围。
您可以为属于集群中没有使用的不同子网的 control plane 服务定义新的 IP 范围。然后,您可以配置现有子网和新子网之间的链接本地 IP 路由,以启用现有的和新服务部署进行通信。这涉及在预采用的集群中使用 director Operator 机制来配置额外的链接本地路由。这可让数据平面部署使用现有子网地址连接到 Red Hat OpenStack Platform (RHOSP)节点。您可以将新子网范围用于任何现有子网配置,当现有集群子网范围没有足够可用 IP 地址用于新的 control plane 服务时。
您必须正确调整新子网的大小,以适应新的 control plane 服务。RHOSP 环境已消耗的现有部署分配池没有特定要求。
不支持为存储和存储管理定义新子网,因为计算服务(nova)和 Red Hat Ceph Storage 不允许在采用期间修改这些网络。
在以下步骤中,您要将 NetworkAttachmentDefinition 自定义资源(CR)配置为使用与同一网络的 OpenStackDataPlaneNodeSet CR 的 network_config 部分中配置的不同子网。NetworkAttachmentDefinition CR 中的新范围用于 control plane 服务,而 OpenStackDataPlaneNodeSet CR 中的现有范围则用于管理数据平面节点的 IP 地址管理(IPAM)。
以下流程中使用的值是示例。使用特定于您的配置的值。
如需有关 director Operator 网络配置的更多信息,请参阅使用 director Operator 在 Red Hat OpenShift Container Platform 集群中使用 director Operator 创建网络。
流程
在现有部署节点上为 control plane 子网配置 link local 路由。这可以通过 director Operator 配置完成:
network_config: - type: ovs_bridge name: br-ctlplane routes: - ip_netmask: 0.0.0.0/0 next_hop: 192.168.1.1 - ip_netmask: 172.31.0.0/241 next_hop: 192.168.1.1002 对需要为部署的新和现有部分使用不同子网的其他网络重复此配置。
将新配置应用到每个 RHOSP 节点:
(undercloud)$ openstack overcloud network provision \ --output <deployment_file> \ [--templates <templates_directory>]/home/stack/templates/<networks_definition_file>(undercloud)$ openstack overcloud node provision \ --stack <stack> \ --network-config \ --output <deployment_file> \ [--templates <templates_directory>]/home/stack/templates/<node_definition_file>-
可选:包含--
templates选项以使用您自己的模板,而不是位于/usr/share/openstack-tripleo-heat-templates中的默认模板。将<templates_directory>替换为包含模板的目录的路径。 -
将
<stack> 替换为置备裸机节点的堆栈的名称。如果未指定,则默认为overcloud。 -
包含
--network-config可选参数,为cli-overcloud-node-network-config.yamlAnsible playbook 提供网络定义。cli-overcloud-node-network-config.yamlplaybook 使用os-net-config工具在部署的节点上应用网络配置。如果不使用 use-network-config提供网络定义,则必须在network-environment.yaml文件中配置{{role.name}}NetworkConfigTemplate参数,否则将使用默认网络定义。 -
将
<deployment_file>替换为用于部署命令生成的 heat 环境文件的名称,如/home/stack/templates/overcloud-baremetal-deployed.yaml。 将
<node_definition_file> 替换为节点定义文件的名称,如overcloud-baremetal-deploy.yaml。确保在节点定义文件中将network_config_update变量设置为true。注意默认不会应用网络配置更改,以避免出现网络中断的风险。您必须在 director Operator 配置文件中设置
StandaloneNetworkConfigUpdate: true来强制实施更改。
-
可选:包含--
确认每个节点上有新的链接本地路由到新子网。例如:
# ip route | grep 172 172.31.0.0/24 via 192.168.122.100 dev br-ctlplane您还必须配置本地路由到 OpenShift (RHOSO) worker 节点上的现有部署。这可以通过为每个网络将
路由条目添加到NodeNetworkConfigurationPolicyCR 来实现。例如:- destination: 192.168.122.0/241 next-hop-interface: ospbr2 因此,在 RHOCP 节点中添加以下路由:
# ip route | grep 192 192.168.122.0/24 dev ospbr proto static scope link之后,在 data plane 采用过程中,在
OpenStackDataPlaneNodeSetCR 的network_config部分中,为新 control plane 子网范围添加相同的链接本地路由。例如:nodeTemplate: ansible: ansibleUser: root ansibleVars: additional_ctlplane_host_routes: - ip_netmask: 172.31.0.0/24 next_hop: '{{ ctlplane_ip }}' edpm_network_config_template: | network_config: - type: ovs_bridge routes: {{ ctlplane_host_routes + additional_ctlplane_host_routes }} ...列出现有部署中用于 data plane 节点的 IP 地址,存为
ansibleHost和fixedIP。例如:nodes: standalone: ansible: ansibleHost: 192.168.122.100 ansibleUser: "" hostName: standalone networks: - defaultRoute: true fixedIP: 192.168.122.100 name: ctlplane subnetName: subnet1重要在采用过程中不要更改 RHOSP 节点 IP 地址。在
OpenStackDataPlaneNodeSetCR 的nodes部分中,列出之前在fixedIP字段中为每个节点条目使用 IP 地址。扩展防火墙配置的 SSH 范围,使其包含两个子网,以允许从两个子网的 SSH 访问 data plane 节点:
edpm_sshd_allowed_ranges: - 192.168.122.0/24 - 172.31.0.0/24这提供了从新子网到 RHOSP 节点以及 RHOSP 子网的 SSH 访问。