当前位置: 首页 > news >正文

【OpenStack云平台】网络控制节点 HA 集群配置

个人名片:
因为云计算成为了监控工程师👨🏻‍💻
个人博客🏆:念舒_C.ying
CSDN主页✏️:念舒_C.ying

网络控制节点运行在管理网络和数据网络中,如果虚拟机实例要连接到互联网,网络控制节点也需要具备互联网连接。

注意

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高可用

相关文章:

  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • 基于node.js+Vue在线电子商务购物商城系统 Element
  • CVPR 2022:Generalized Few-shot Semantic Segmentation 解读
  • d二进制字面
  • 使用docker安装mysql
  • Vue.js入门教程(四)
  • SPA项目实现首页导航以及左侧菜单
  • 【java核心技术】Java知识总结 -- 对象和类
  • 猿创征文|SpringBoot概述及在idea中创建方式
  • 计算机毕业设计python基于django在线课程网站 含资源,考试,论坛等功能
  • Bean 的作用域和生命周期
  • 【博客484】alertmanager-----告警处理源码剖析
  • 第7章 - 多无人机系统的协同控制 --> 无人机模型分析
  • [Unity独立/合作开发]实现背包系统中物品的拾取拖拽掉落还有换位置
  • 【数据结构】经典八大排序算法(万字大总结+动图)
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • const let
  • CSS 专业技巧
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Laravel Telescope:优雅的应用调试工具
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 配置 PM2 实现代码自动发布
  • 如何编写一个可升级的智能合约
  • 详解NodeJs流之一
  • 一份游戏开发学习路线
  • 源码安装memcached和php memcache扩展
  • 阿里云ACE认证之理解CDN技术
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • # .NET Framework中使用命名管道进行进程间通信
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C++17) std算法之执行策略 execution
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (篇九)MySQL常用内置函数
  • (四)Android布局类型(线性布局LinearLayout)
  • (学习日记)2024.01.19
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)h264中avc和flv数据的解析
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)mysql使用Navicat 导出和导入数据库
  • (转载)深入super,看Python如何解决钻石继承难题
  • .cn根服务器被攻击之后
  • .gitattributes 文件
  • /*在DataTable中更新、删除数据*/
  • @EnableWebMvc介绍和使用详细demo
  • @Not - Empty-Null-Blank
  • [100天算法】-二叉树剪枝(day 48)
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [android] 请求码和结果码的作用