将 enable_new_agents 添加到 neutron 服务器¶
https://blueprints.launchpad.net/neutron/+spec/enable-new-agents
本提案为网络节点中的代理添加 enable_new_agents 配置,用于运维人员维护。它提出了一种代理可以在不被自动调度选择的情况下启动,但可以手动调度的方式,以便部署者可以手动测试代理。
问题描述¶
Neutron 缺乏一种在任何客户资源部署到节点之前,通过部署测试资源来测试新添加的网络节点的方式。当云操作员控制网络资源时,他们希望防止用户控制这些资源。例如,他们可能在部署新节点时尝试在新节点上创建测试资源。Neutron 可以通过代理的 admin_state_up=False 来防止用户在节点上创建资源,但 Neutron 无法以 admin_state_up=False 的状态启动代理。Neutron 始终以 admin_state_up=True 的状态启动代理。Nova 和 Cinder 在每个配置文件中都有“enable_new_services”设置,可以禁用初始服务状态来实现这一点。
Neutron 在维护场景中也存在问题。Neutron 可以通过 admin_state_up=False 防止所有用户在代理上创建资源,但通常不允许仅允许管理员创建资源。目前,如果 enable_services_on_agents_with_admin_state_down 配置参数为 True,则管理员可以在代理上创建资源。
提议的变更¶
本提案为网络节点中的代理添加 enable_new_agents 配置,用于运维人员维护。代理的 admin_state_up 状态在启动时由此配置控制。该配置被添加到 neutron-server 中,因为该提案提供了具有调度方法(例如 l3-agent、dhcp-agent、lbaas-agent)和不具有该方法(例如 ovs-agent、metadata-agent)的所有代理,以便部署者可以轻松启用代理,尽管该提案仅对调度代理有益。
当 enable_new_agents=True 时,Neutron 代理以 admin_state_up=True 的状态启动。这是默认行为。用户可以自由地在其代理上创建资源。
当 enable_new_agents=False 时,Neutron 代理以 admin_state_up=False 的状态启动。这是维护模式。在这种情况下,在管理员将 admin_state_up 更改为 True 之前,用户的资源无法在代理上创建。
默认值为 True,因为本提案无意更改传统行为。
该提案还假定 Neutron 服务器中 enable_services_on_agents_with_admin_state_down 为 True。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
IPv6 影响¶
无
其他部署者影响¶
本提案将 enable_new_agents 添加到 neutron.conf。该配置设置为默认值 True。它不会更改代理的传统行为。
开发人员影响¶
无
社区影响¶
无
备选方案¶
无
实现¶
负责人¶
Hirofumi Ichihara <ichihara-hirofumi>
工作项¶
添加 enable_new_agents 配置和实现
依赖项¶
无
测试¶
Tempest 测试¶
无
功能测试¶
添加测试,以确保代理以 admin_state_up False 的状态启动。
API 测试¶
无
文档影响¶
用户文档¶
新的配置选项将被记录。
以下是一个维护场景。维护场景将被记录。
先决条件:Neutron 服务器运行 enable_services_on_agents_with_admin_state_down=True。
管理员准备一个新的网络节点。
管理员将 enable_new_agents=False 添加到 neutron.conf 并启动一个 neutron 服务器,然后启动所有代理。
所有代理以 admin_state_up=False 的状态运行。
管理员需要创建一个网络(或路由器)并将其分配给目标代理。
管理员创建连接到网络资源的 VM,然后管理员确认其功能。
管理员删除所有资源并在测试后更新代理为 admin_state_up=True。
开发人员文档¶
无