配置租户网络¶
以下是一个示例流程,说明如何设置 Bare Metal 服务,以便节点配置发生在多租户环境中(这意味着使用上面所述的 neutron 网络接口)
可以通过将它们添加到配置文件
default部分下的enabled_network_interfaces配置选项中,来在 ironic-conductor 上启用网络接口[DEFAULT] ... enabled_network_interfaces=noop,flat,neutron
请记住,理想情况下,所有 ironic-conductor 都应该具有相同的已启用网络接口列表,但这在 ironic-conductor 升级期间可能并非如此。 如果其中一个 ironic-conductor 发生故障,并且接管的某些节点映射到不支持该节点网络接口的 ironic-conductor,则可能导致问题。 任何涉及调用节点驱动程序的动作都将失败,直到该网络接口安装并启用在该 ironic-conductor 上。
建议通过配置文件
default部分下的default_network_interface配置选项来设置默认网络接口[DEFAULT] ... default_network_interface=neutron
此默认值将用于所有未在创建请求中显式指定网络接口的节点。
如果未设置此配置选项,则默认网络接口是通过查看
dhcp.dhcp_provider配置选项值来确定的。 如果它是neutron,则flat网络接口将成为默认接口,否则noop将成为默认接口。在 Networking 服务中定义一个提供者网络,我们将其称为“配置”网络。 使用
neutron网络接口要求将provisioning_network和cleaning_network配置选项设置为 Networking 服务中网络的有效标识符(UUID 或名称)。 如果未正确设置这些选项,则清理或配置将无法启动。 有两种方法可以设置这些值在 ironic 配置文件中的
neutron部分下[neutron] cleaning_network = $CLEAN_UUID_OR_NAME provisioning_network = $PROVISION_UUID_OR_NAME
在节点的
driver_info字段的provisioning_network和cleaning_network键下,分别作为driver_info['provisioning_network']和driver_info['cleaning_network']。
注意
如果这些
provisioning_network和cleaning_network值未在节点的driver_info中指定,则 ironic 将回退到neutron部分中的配置。有关清理的更多信息,请参阅 配置 Bare Metal 服务进行清理。
警告
请确保 Bare Metal 服务对配置和清理网络具有独占访问权限。 非管理员用户在这些网络中生成实例并访问 Bare Metal 服务的控制平面是一种安全风险。 因此,配置和清理网络应配置为
admin租户中的非共享网络。注意
在使用
flat网络接口时,通常会将裸机实例生成到“配置”网络上。 这在使用neutron接口时不受支持,并且部署将失败。 请确保在从 Compute 服务启动裸机实例时选择 Networking 服务中的不同网络。注意
“配置”和“清理”网络可以是相同的网络,也可以是不同的网络。 为了确保 Bare Metal 服务和部署 ramdisk 之间的通信,重要的是要确保禁用这些网络的安全组,或者默认安全组允许
DHCP
TFTP
用于 Bare Metal 服务的出站端口(默认情况下为 6385)
用于 ironic-python-agent 的入站端口(默认情况下为 9999)
如果使用 直接部署,则用于 Object Storage 服务或本地 HTTP 服务器的出站端口(通常为 80 或 443)
如果使用 iPXE,则用于在 ironic-conductor 节点上运行的 HTTP 服务器的出站端口(通常为 80)。
此步骤是可选的,仅适用于您希望在节点的配置和/或清理期间使用安全组时。 如果未指定,则使用默认安全组。
在 Networking 服务中定义安全组,用于配置和/或清理网络。
将这些安全组 UUID 的列表添加到 ironic-conductor 配置文件的
neutron部分,如下所示[neutron] ... cleaning_network=$CLEAN_UUID_OR_NAME cleaning_network_security_groups=[$LIST_OF_CLEAN_SECURITY_GROUPS] provisioning_network=$PROVISION_UUID_OR_NAME provisioning_network_security_groups=[$LIST_OF_PROVISION_SECURITY_GROUPS]
可以向给定网络应用多个安全组,因此它们被指定为列表。 相同的安全组可以用于配置和清理网络。
警告
如果按照上述描述配置了安全组,请不要将“port_security_enabled”标志设置为 Networking 服务的相应网络的 False 或端口。 这将导致部署失败。
例如:如果使用
provisioning_network_security_groups配置选项,请确保配置网络的“port_security_enabled”标志设置为 True。 默认情况下将此标志设置为 True; 确保不要通过手动将其设置为 False 来覆盖它。安装并配置与您的交换机兼容的 ML2 机制驱动程序,以支持裸机配置。 有关详细信息,请参阅 ML2 插件配置手册。
修改后重启 ironic-conductor 和 ironic-api 服务
Fedora/RHEL/CentOS
sudo systemctl restart openstack-ironic-api sudo systemctl restart openstack-ironic-conductor
Ubuntu
sudo service ironic-api restart sudo service ironic-conductor restart
尝试从该网络中的非控制平面服务器下载 TFTP 服务器上的文件,以确保 ironic-conductor 可以通过配置网络访问
tftp $TFTP_IP -c get $FILENAME
其中 FILENAME 是位于 TFTP 服务器上的文件。
有关所需的节点配置,请参阅 Bare Metal 服务网络。