【OpenStack云平台】网络控制节点 HA 集群配置
因为云计算成为了监控工程师👨🏻💻网络控制节点运行在管理网络和数据网络中,如果虚拟机实例要连接到互联网,网络控制节点也需要具备互联网连接。Pacemaker 要求所有的节点服务器使用不用的主机名,而 OpenStack 网络服务调度程序只会关注其中一台(例如,一个虚拟路由器只能在其中一台运行 L3 代理的服务上启动),因此需要对 RA (Pacemaker 资源代理程序) 脚本进行相应修改。
网络控制节点运行在管理网络和数据网络中,如果虚拟机实例要连接到互联网,网络控制节点也需要具备互联网连接。
注意
Pacemaker 要求所有的节点服务器使用不用的主机名,而 OpenStack 网络服务调度程序只会关注其中一台(例如,一个虚拟路由器只能在其中一台运行 L3 代理的服务上启动),因此需要对 RA (Pacemaker 资源代理程序) 脚本进行相应修改。比如,所有的节点先各自在配置文件中配置不同的主机名,当 Pacemaker启动 l3-agent 时,自动将该节点的主机名改为 network-controller,这样所有启动 l3-agent 的节点会使用相同的主机名。
1.1 高可用 neutron L3 代理程序
Neutron L3 代理程序负责实现 L3/NAT 转发,让运行在租户网络上的虚拟机实例能够访问外部网络。Neutron L3 代理程序实现高可用也基于 Pacemaker 。
1.2 在 Pacemaker 中添加 neutron L3 代理程序资源
首先,下载 Pacemaker 资源代理:
# cd /usr/lib/ocf/resource.d/openstack
# wget https://raw.github.com/madkiss/openstack-resource-agents/master/ocf/neutron-agent-l3
# chmod a+rx neutron-l3-agent
现在可以在 Pacemaker 中填加 neutron L3 代理程序相关资源。执行 crm configure 命令进入Pacemaker 配置菜单,然后加入下列集群资源:
primitive p_neutron-l3-agent ocf:openstack:neutron-agent-l3 \
params config="/etc/neutron/neutron.conf" \
plugin_config="/etc/neutron/l3_agent.ini" \
op monitor interval="30s" timeout="30s"
这个配置创建
- p_neutron-l3-agent资源,对 neutron L3 代理程序进行管理。
- crm configure 支持批量输入,因此可以拷贝粘贴上面到现有的 Pacemaker 配置中,然后根据需要再作修改。
- 配置完成后,在 crm configure 菜单下输入 commit 提交所有配置变更。随后 Pacemaker 会其
中一台节点服务器上启动 neutron L3 代理程序(包括所有相关资源)。
注意
这种高可用方案不能实现“零停机”需求,原因是neutron L3 代理程序切换时需要重新创建网络命名空间和虚拟路由器。
1.3 高可用 neutron DHCP 代理程序
Neutron DHCP 代理程序使用 dnsmasq (默认情况下)为虚拟机实例分配 IP 地址。NeutronDHCP 代理程序高可用也通过 Pacemaker 实现。
1.4 在 Pacemaker 中添加 neutron DHCP 代理程序资源
首先,下载 Pacemaker 资源代理:
# cd /usr/lib/ocf/resource.d/openstack
# wget https://raw.github.com/madkiss/openstack-resource-agents/master/ocf/neutron-agent-dhcp
# chmod a+rx neutron-agent-dhcp
现在可以在 Pacemaker 中填加 neutron DHCP 代理程序相关资源。执行 crm configure 命令进入 Pacemaker 配置菜单,然后加入下列集群资源:
primitive p_neutron-dhcp-agent ocf:openstack:neutron-agent-dhcp \
params config="/etc/neutron/neutron.conf" \
plugin_config="/etc/neutron/dhcp_agent.ini" \
op monitor interval="30s" timeout="30s"
该配置会创建:
- p_neutron-agent-dhcp资源,对 neutron DHCP 代理程序进行管理。
- crm configure 支持批量输入,因此可以拷贝粘贴上面到现有的 Pacemaker 配置中,然后根据需要再作修改。
- 配置完成后,在 crm configure 菜单下输入 commit 提交所有配置变更。随后 Pacemaker 会其
中一台节点服务器上启动 neutron DHCP 代理程序(包括所有相关资源)。
1.5 高可用 neutron metadata 代理程序
Neutron metadata 代理程序的作用是让运行在租户网络上的虚拟机实例能够访问 OpenStack计算服务 API 元数据。Neutron metadata 代理程序的高可用也通过 Pacemaker 实现。
1.6 在 Pacemaker 中添加 neutron metadata 代理程序资源
首先,下载 Pacemaker 资源代理:
# cd /usr/lib/ocf/resource.d/openstack
# wget https://raw.github.com/madkiss/openstack-resource-agents/master/ocf/neutron-metadata-agent
# chmod a+rx neutron-metadata-agent
现在可以在 Pacemaker 中填加 neutron metadata 代理程序相关资源。执行 crm configure 命令进入 Pacemaker 配置菜单,然后加入下列集群资源:
primitive p_neutron-metadata-agent ocf:openstack:neutron-metadata-agent \
params config="/etc/neutron/neutron.conf" \
agent_config="/etc/neutron/metadata_agent.ini" \
op monitor interval="30s" timeout="30s"
这个配置创建
- p_neutron-metadata-agent资源,对 neutron metadata 代理程序进行管理。
- crm configure 支持批量输入,因此可以拷贝粘贴上面到现有的 Pacemaker 配置中,然后根据需要再作修改。
- 配置完成后,在 crm configure 菜单下输入 commit 提交所有配置变更。随后 Pacemaker 会其中一台节点服务器上启动 neutron metadata 代理程序(包括所有相关资源)。
1.7 组织网络相关资源
创建一个资源组将所有网络服务相关资源联系起来。执行 crm configure 命令进入Pacemaker 配置菜单,然后加入下列集群资源:
group g_services_network p_neutron-l3-agent p_neutron-dhcp-agent \
p_neutron-metadata_agent
期待下次的分享,别忘了三连支持博主呀~
我是 念舒_C.ying ,期待你的关注~💪💪💪
附专栏链接
【云原生 · Kubernetes】部署 kube-proxy 组件
【云原生 · Kubernetes】部署高可用kube-scheduler集群
【云原生 · Kubernetes】部署高可用 kube-controller-manager 集群
【云原生 · Kubernetes】runtime组件
【云原生 · Kubernetes】apiserver高可用
更多推荐
所有评论(0)