news 2026/5/21 1:01:10

OpenStack核心组件管理:Heat编排与Neutron网络管理重点总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenStack核心组件管理:Heat编排与Neutron网络管理重点总结

OpenStack核心组件管理:Heat编排与Neutron网络管理重点总结

一、Heat 编排管理

1. Heat 核心作用

  • 编排复合云应用程序:通过声明性模板描述云应用程序的基础架构。
  • 与 OpenStack 核心项目紧密集成:调用 Nova、Neutron、Cinder 等 API,按正确顺序创建资源。
  • 模板可版本控制:模板为文本文件(YAML 格式),支持版本管理。

Heat 位于 Nova、Neutron 等组件之上,用户只需编写模板,Heat 自动调用各服务接口完成资源配置。

2. Heat 架构组件

组件功能
Heat-API提供 REST API,接收请求并转发给 heat-engine
Heat-API-CFN提供兼容 AWS CloudFormation 的 API
Heat-EngineHeat 核心,负责任务调度和资源生命周期管理(不直接创建资源,编排后交由其他组件处理)
Message Queue组件间通信
Database存储堆栈、资源、事件等信息
# 查看 heat 进程ps-e|grepheat# 查看 heat 服务状态systemctl status openstack-heat-*

3. Heat 模板(Template)

  • 模板定义:OpenStack 资源的集合(虚拟机、网络、存储、告警、浮动 IP、安全组、伸缩组、嵌套堆栈等)。
  • 编写语言:YAML(YAML Ain’t Markup Language)
    • 使用缩进(空格)排版
    • 序列项用短划线-表示
    • Map 中的 key-value 对用冒号:表示
模板基本结构
heat_template_version:2018-08-31description:模板描述信息parameters:# 输入参数,如镜像ID、网络ID等image_name_1:type:stringlabel:Image IDdefault:<image_id>resources:# 定义各种资源,如密钥对、安全组、网络、子网、路由器、端口、浮动IP、实例等mykey:type:OS::Nova::KeyPairweb_secgroup:type:OS::Neutron::SecurityGroupprivate_net:type:OS::Neutron::Netinstance1:type:OS::Nova::Serveroutputs:# 输出信息,如私钥等private_key:description:Private keyvalue:{get_attr:[mykey,private_key]}

4. 常用资源类型

资源类型说明
OS::Nova::KeyPair密钥对
OS::Nova::Server虚拟机实例
OS::Neutron::Net网络
OS::Neutron::Subnet子网
OS::Neutron::Router路由器
OS::Neutron::RouterInterface路由器接口
OS::Neutron::Port端口
OS::Neutron::FloatingIP浮动 IP
OS::Neutron::SecurityGroup安全组

5. 创建堆栈(Web 界面)

  1. 进入“项目” → “编排” → “堆栈” → “创建堆栈”。
  2. 选择模板源(文件或直接输入)。
  3. 填写堆栈名称、参数(如镜像 ID、网络 ID 等)。
  4. 点击“创建”,Heat 自动创建模板中定义的所有资源。

二、Neutron 网络管理

1. Neutron 功能概述

  • 为 OpenStack 提供网络支持:二层交换、三层路由、负载均衡(LBaaS)、防火墙(FWaaS)、VPN
  • 解决传统手工配置网络无法适应云环境多租户、动态创建/修改/删除网络的难题。
  • 支持SDN(软件定义网络)理念,灵活且自动化。

2. Linux 网络虚拟化基础技术

技术说明
TAP模拟二层网络设备,处理以太网帧
TUN模拟三层网络设备,处理 IP 包
VETH PAIR成对的虚拟以太网接口,一端发出的包被另一端接收,用于连接不同网络组件(如 Linux Bridge、OVS、容器)
Linux Bridge二层虚拟交换机,可绑定物理网卡和虚拟网卡,使用brctl命令管理
Open vSwitch (OVS)产品级虚拟交换机,支持大规模、多主机通信,提供标准管理接口(NetFlow、sFlow、QoS、VLAN、VxLAN 等)
# Linux Bridge 常用命令brctl addbr<bridge_name># 添加网桥brctl addif<bridge><device># 添加接口到网桥# Open vSwitch 常用命令ovs-vsctl add-br<bridge># 添加网桥ovs-vsctl add-port<bridge><port>ovs-vsctl show<bridge>ovs-vsctl dump-flows<bridge>

3. Neutron 核心概念

Network(网络)
  • 隔离的二层广播域。
  • 网络类型
类型特点
local仅本地节点,同一节点内实例通信,用于单机测试
flat无 VLAN tagging,同一网络内实例可跨节点通信
vlan802.1q tagging,二层隔离,通过 router 实现跨 VLAN 通信
vxlan基于隧道技术的 overlay 网络,使用 VNI 隔离,克服 VLAN 限制(最多 4096)
gre类似 vxlan,但使用 IP 封装而非 UDP
  • network 必须属于某个 Project,一个 Project 可有多个 network。
Subnet(子网)
  • IPv4 或 IPv6 地址段,实例 IP 从 subnet 中分配。
  • 定义地址范围、掩码、网关、DNS 等。
  • 一个 network 可以有多个 subnet(CIDR 不能重叠),不同 network 的 subnet CIDR 可以重叠(通过不同 router 或网络命名空间隔离)。
Port(端口)
  • 虚拟交换机上的端口,定义 MAC 和 IP 地址。
  • 实例的虚拟网卡(VIF)绑定到 port,获得 MAC/IP。
  • 一个 port 属于某个 subnet,一个 subnet 可有多个 port。

关系总结

Project 1 : M Network Network 1 : M Subnet Subnet 1 : M Port Port 1 : 1 VIF : 1 Instance

4. Neutron 架构组件

组件功能
Neutron Server对外提供 OpenStack 网络 API,接收请求并调用 Plugin
Plugin处理逻辑网络状态维护,调用 Agent
Agent在 network provider 上真正实现网络功能(如 L3 Agent、DHCP Agent、OVS Agent 等)
Queue消息队列,组件间通信
Database存储网络状态(network、subnet、port、router 等)
# 查看 Neutron 代理状态openstack network agent list# 进入数据库查看网络表(mysql)use neutron;show tables;# 包含 networks, subnets, ports, routers 等

5. 三层路由(Router)

  • 虚拟路由器:实现子网间通信及与外网的通信。
  • 基于Linux network namespace实现隔离,每个 router 有独立路由表。
  • 通过SNAT(源地址转换)使内网实例访问外网。
  • 浮动 IP:通过 DNAT 实现外网访问内网实例。
创建路由器并连接网络(Web 界面)
  1. 创建路由器,指定外网(如waiwang),启用 SNAT。
  2. 添加接口:选择内网子网(如neiwang-1),自动创建路由器接口(IP 为子网网关)。
  3. 实例绑定内网 port 后,即可通过路由器访问外网。
# 查看 OVN 中的路由器信息ovn-nbctl show

6. OVN(Open Virtual Network)简介

  • OVN 是 OVS 的扩展,支持虚拟网络编排。
  • Neutron 可配置使用 OVN 作为 mechanism driver。
  • OVN 提供分布式虚拟路由、安全组、L2/L3 服务。
# 查看 OVN Controller 代理openstack network agent list|grepOVN# 配置文件 /etc/neutron/plugins/ml2/ml2_conf.ini[ml2]type_drivers=geneve,flat tenant_network_types=geneve mechanism_drivers=ovn

7. 常用 Neutron 命令

# 列出网络openstack network list# 创建网络openstack network create<net_name># 创建子网openstack subnet create--network<net_name>--subnet-range<CIDR><subnet_name># 列出子网openstack subnet list# 列出端口openstack port list# 创建路由器openstack router create<router_name># 设置路由器网关(外网)openstack routerset--external-gateway<external_net><router_name># 添加路由器接口(内网子网)openstack routeraddsubnet<router_name><subnet_name># 创建浮动 IPopenstack floatingipcreate<external_net># 关联浮动 IP 到实例openstack serveraddfloatingip<instance><floating_ip>

8. 安全组(Security Group)

  • 通过iptables限制进出实例的网络包。
  • 定义规则(协议、端口范围、源/目的 IP)。
  • 每个实例至少属于一个安全组。

三、实验示例:创建内网、路由器并部署实例

步骤概览

  1. 创建外网(已有,如waiwang,网络类型 flat,物理网络映射)。
  2. 创建内网(如neiwang-1,子网192.168.11.0/24,网关192.168.11.1,启用 DHCP)。
  3. 创建路由器(如router1),设置网关为外网(启用 SNAT),添加内网接口。
  4. 创建实例,选择内网,自动获取内网 IP(如192.168.11.4)。
  5. 验证:实例可 ping 通外网网关(通过 SNAT),也可通过浮动 IP 从外网访问实例。

OVN 查看逻辑交换机

ovn-nbctl show

输出示例:

switch <uuid> (neutron-<net_id>) (aka neiwang-1) port <uuid> addresses: ["fa:16:3e:... 192.168.11.4"] port <uuid> type: router router <uuid> (neutron-<router_id>) (aka router1) nat <uuid> external ip: "192.168.108.185" logical ip: "192.168.11.0/24" type: "snat"

通过以上内容,可系统掌握 Heat 编排的基本用法和 Neutron 网络的核心概念、架构及操作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 1:00:09

3个核心功能让Notepad++成为你的Markdown高效编辑器

3个核心功能让Notepad成为你的Markdown高效编辑器 【免费下载链接】MarkdownViewerPlusPlus A Notepad Plugin to view a Markdown file rendered on-the-fly 项目地址: https://gitcode.com/gh_mirrors/ma/MarkdownViewerPlusPlus 你是否曾经在Notepad中编写Markdown文…

作者头像 李华
网站建设 2026/5/21 0:54:57

机场室内外一体化定位:UWB+北斗融合方案与智慧运营实践

1. 项目背景与核心痛点&#xff1a;一个大型机场集团的转型之困在很多人眼里&#xff0c;机场是连接世界的现代化枢纽&#xff0c;光鲜亮丽。但作为从业者&#xff0c;我深知其内部运营的复杂与挑战。陕西某机场集团&#xff0c;一个管理着西北地区23个机场的庞然大物&#xff…

作者头像 李华
网站建设 2026/5/21 0:52:35

终极指南:3分钟学会使用qmc-decoder解锁QQ音乐加密格式

终极指南&#xff1a;3分钟学会使用qmc-decoder解锁QQ音乐加密格式 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为QQ音乐下载的.qmc、.qmc3、.qmcflac格式文件无法在…

作者头像 李华
网站建设 2026/5/21 0:50:01

中小团队如何利用 Taotoken 统一管理多模型 API 密钥与用量

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 中小团队如何利用 Taotoken 统一管理多模型 API 密钥与用量 对于中小型开发团队而言&#xff0c;在集成大模型能力时&#xff0c;一…

作者头像 李华
网站建设 2026/5/21 0:49:03

手把手教你用Verilog实现一个简易的AHB2APB桥:打通SoC内部数据通路

从零构建AHB2APB桥&#xff1a;实战AMBA总线协议转换 1. 总线协议转换的核心价值 在现代SoC设计中&#xff0c;不同总线协议之间的高效互联是提升系统性能的关键。AMBA总线家族中的AHB和APB协议各有其独特的定位&#xff1a;AHB面向高性能数据传输&#xff0c;支持流水线和突发…

作者头像 李华