OpenStack Train:业务组件Neutron装安装
Posted flyfish225
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenStack Train:业务组件Neutron装安装相关的知识,希望对你有一定的参考价值。
标签(空测试用例格分隔):OpenStack Train 系列
一: Neutron 服务安装
1.1 Neutron 简介
OpenStack 网络使用的是一个 SDN(Software Defined Networking)组件,即 Neutron,SDN 是一个可插拔的架构,支持插入交换机、防火墙、负载均
衡器等,这些都定义在软件中,从而实现对整个云基础设施的精细化管控。
前期规划,将 ens33 网口作为外部网络(在 Openstack 术语中,外部网络常被称之为 Provider 网络),同时也用作管理网络,便于测试访问,生产环境
建议分开;ens35 网络作为租户网络,即 vxlan 网络;ens36 作为 ceph 集群网络。
OpenStack 网络部署方式可选的有 OVS 和 LinuxBridge。此处选择 LinuxBridge 模式,部署大同小异。
在控制节点上要启动的服务 neutron-server.service
neutron-linuxbridge-agent.service
neutron-dhcp-agent.service
neutron-metadata-agent.service
neutron-l3-agent.service
1.2 Neutron 在控制节点的安装与配置VXLAN 网络
1、登录数据库创建 neutron 数据库
MariaDB (none) > CREATE DATABASE neutron default character set utf8;
创建并授予 neutron 用户完全操作 neutron 库权限
MariaDB (none) > GRANT ALL PRIVILEGES ON neutron.* TO neutron@localhost IDENTIFIED BY openstack;
MariaDB (none) > GRANT ALL PRIVILEGES ON neutron.* TO neutron@% IDENTIFIED BY openstack;
2、创建用户和 API 服务端点
# source /etc/keystone/admin-openrc.sh
创建 Neutron 用户,密码设置为 openstack2022
openstack user create --domain default --password openstack2022 neutron
/*
说明:使用 --password openstack2022 neutron 是非交互式方式,而 --password-prompt 是交互式,需要在窗口输入 2 次密码确认
*/
将 neutron 加入到 service 项目以及 admin 角色
# openstack role add --project service --user neutron admin
创建 Neutron 服务实体。
# openstack service create --name neutron --description "OpenStack Networking" network
创建 Neutron API 服务端点。
# openstack endpoint create --region RegionOne network public http://controller:9696
# openstack endpoint create --region RegionOne network internal http://controller:9696
# openstack endpoint create --region RegionOne network admin http://controller:9696
1.3 安装Neutron 网络
3、安装配置 Neutron
采用 Provider-LinuxBridge 模式
# yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
修改配置文件/etc/neutron/neutron.conf
# cd /etc/neutron/ && mv neutron.conf neutron.conf.source && cat neutron.conf.source |grep -Ev "^#|^$" > neutron.conf && chown root:neutron neutron.conf
# vi /etc/neutron/neutron.conf
修改 DEFAULT 部分,增加如下配置
DEFAULT
# 启用 Modular Layer 2 (ML2)插件
core_plugin = ml2
# service_plugins 默认为空,如果值是 router 表示支持路由模式,即 vxlan
service_plugins = router
transport_url = rabbit://openstack:openstack@controller
# 设置验证策略
auth_strategy = keystone
# 通知计算节点的网络拓扑变化
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
allow_overlapping_ips = true
修改 database 部分,配置数据库访问。
database
connection = mysql+pymysql://neutron:openstack@controller/neutron
修改 keystone_authtoken 部分,配置身份认证
keystone_authtoken
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = openstack2022
token_cache_time=3600
增加 nova 部分,通知计算节点网络拓扑变化
nova
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = openstack2022
说明:配置文件中默认没有该模块,需要新增
修改 oslo_concurrency 部分,配置锁定路径。
oslo_concurrency
lock_path = /var/lib/neutron/tmp
修改 ML2 插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini
参考:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-controller-install-option2.html
# cd /etc/neutron/plugins/ml2 && mv ml2_conf.ini ml2_conf.ini.source && cat ml2_conf.ini.source |grep -Ev "^#|^$" > ml2_conf.ini && chown root:neutron ml2_conf.ini
# vi /etc/neutron/plugins/ml2/ml2_conf.ini
启用 flat 和 vlan、vxlan 网络,需要新增加 ml2 、 ml2_type_flat 、 ml2_type_vxlan 和 securitygroup 配置
增加 ml2 部分,配置支持 vxlan
ml2
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
增加 ml2_type_flat 部分,将 provider 配置为 flat 网络
ml2_type_flat
flat_networks = provider
增加 ml2_type_vlan 部分,将 vlan 配置为 flat 网络
ml2_type_vlan
network_vlan_ranges = provider
增加 ml2_type_vxlan 部分,配置 vxlan 网络识别的网络范围
ml2_type_vxlan
# 取值范围 1-16777215
vni_ranges = 1:3000
增加 securitygroup 部分,启用 ipset 提高安全效率。
securitygroup
enable_ipset = true
修改/etc/neutron/plugins/ml2/linuxbridge_agent.ini 文件,配置 Linux 桥代理
# cd /etc/neutron/plugins/ml2 && mv linuxbridge_agent.ini linuxbridge_agent.ini.source && cat linuxbridge_agent.ini.source |grep -Ev "^#|^$" > linuxbridge_agent.ini && chown root:neutron linuxbridge_agent.ini
# vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
增加 linux_bridge 部分,将 Provider 虚拟网络映射到物理网络(能与外网通信的网段)
linux_bridge
physical_interface_mappings = provider:ens33
增加 vxlan 部分,启用 vxlan 叠加网络
vxlan
# 如果要禁用 vxlan,则设置为 false,同时注释 local_ip 和 l2_population
enable_vxlan = true
# 每个(控制和计算)节点都要添加一个网卡,给 vxlan 专用,并且要配置 IP 地址(不需要配置网关,配置 IP 后,各节点可以使用对应 IP ping 通)
local_ip = 10.16.10.11
l2_population = true
增加 securitygroup 部分,启用安全组并配置 LinuxBridge iptables 驱动。
securitygroup
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
/*
说明:local_ip 要修改成控制节点/计算节点实际用于 vxlan IP。 provider 网络使用的是 ens33 网口,部署时根据实际情况调整,provider 网络可以理解为能与外部互联网相通的网络,后面在创建 Flat 类型网络时
--provider-physical-network 要指定是 provider。
*/
修改内核配置文件/etc/sysctl.conf,确保系统内核支持网桥过滤器
# vi /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
执行以下命令,添加网桥过滤器,并设置开机加载
# modprobe br_netfilter
# sysctl -p
# sed -i $amodprobe br_netfilter /etc/rc.local
# chmod +x /etc/rc.d/rc.local
修改/etc/neutron/dhcp_agent.ini 文件,配置 DHCP 代理
# cd /etc/neutron/ && mv dhcp_agent.ini dhcp_agent.ini.source && cat dhcp_agent.ini.source |grep -Ev "^#|^$" > dhcp_agent.ini && chown root:neutron dhcp_agent.ini
# vi /etc/neutron/dhcp_agent.ini
在 DEFAULT 部分,配置 Linuxbridge 驱动接口,DHCP 驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
DEFAULT
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
修改/etc/neutron/metadata_agent.ini 文件,配置元数据代理
# cd /etc/neutron/ && mv metadata_agent.ini metadata_agent.ini.source && cat metadata_agent.ini.source |grep -Ev "^#|^$" > metadata_agent.ini && chown root:neutron metadata_agent.ini
# vi /etc/neutron/metadata_agent.ini
在 DEFAULT 部分,配置元数据主机和共享秘钥
DEFAULT
nova_metadata_host = controller
metadata_proxy_shared_secret = openstack2022
修改/etc/neutron/l3_agent.ini 文件,配置 layer-3 代理
# cd /etc/neutron/ && mv l3_agent.ini l3_agent.ini.source && cat l3_agent.ini.source |grep -Ev "^#|^$" > l3_agent.ini && chown root:neutron l3_agent.ini
# vi /etc/neutron/l3_agent.ini
在 DEFAULT 部分,配置 Linuxbridge 接口驱动和外部网络网桥
DEFAULT
interface_driver = linuxbridge
external_network_bridge =
1.4、配置neutron的Nova 部署
配置计算服务以使用 Neutron 网络(此步可以放到安装并配置 nova) (前提:已经安装了 nova 服务)
yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
# cd /etc/nova/ && mv nova.conf nova.conf.source && cat nova.conf.source |grep -Ev "^#|^$" > nova.conf && chown root:nova nova.conf
# vi /etc/nova/nova.conf
在 neutron 部分,配置访问参数
neutron
url = http://controller:9696
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = openstack2022
service_metadata_proxy = true
metadata_proxy_shared_secret = openstack2022
4、初始化创建网络
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
5、同步 neutron 数据库
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
6、启动 neutron 各服务并设置为开机自启动
# systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service
# systemctl restart neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service
# systemctl status neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service
二:Neutron 在计算节点computer01/computer02的安装
2.1 在computer01 与 computer02 节点同时安装
1、安装组件,由于 neutron 和 nova 之间有相互调用配置,此处将计算服务一并安装
# yum -y install openstack-nova-compute
# yum -y install openstack-neutron-linuxbridge ebtables ipset
2、修改配置文件/etc/neutron/neutron.conf
# cd /etc/neutron/ && mv neutron.conf neutron.conf.source && cat neutron.conf.source |grep -Ev "^#|^$" > neutron.conf && chown root:neutron neutron.conf
# vi /etc/neutron/neutron.conf
在 DEFAULT 部分,配置 RabbitMQ 消息队列访问。
DEFAULT
transport_url = rabbit://openstack:openstack@controller
在 DEFAULT 部分,配置身份认证服务
DEFAULT
auth_strategy = keystone
database
connection = mysql+pymysql://neutron:openstack@controller/neutron
在 keystone_authtoken 部分,配置身份认证服务
keystone_authtoken
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = openstack2022
token_cache_time=3600
在 oslo_concurrency 部分,配置锁定路径
oslo_concurrency
lock_path = /var/lib/neutron/tmp
3、修改配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini
为实例建立 layer-2 虚拟网络并且处理安全组规则,并将 Flat 网络和外部物理业务网络接口对应起来
# cd /etc/neutron/plugins/ml2 && mv linuxbridge_agent.ini linuxbridge_agent.ini.source && cat linuxbridge_agent.ini.source |grep -Ev "^#|^$" > linuxbridge_agent.ini && chown root:neutron linuxbridge_agent.ini
# vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
linux_bridge
physical_interface_mappings = provider:ens33
vxlan
enable_vxlan = true
local_ip = 10.16.10.12
l2_population = true
securitygroup
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
enable_security_group = True
说明:local_ip 要修改成计算节点实际用于 vxlan IP。 provider 网络使用的是 ens33 网口,部署时根据实际情况调整,provider 网络可以理解为能与外部互联网相通的网络,后面在创建 Flat 类型网络时物理
网络 --provider-physical-network 要指定是 provider。
4、修改内核配置文件/etc/sysctl.conf,确保系统内核支持网桥过滤器
# vi /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
执行以下命令,添加网桥过滤器以上是关于OpenStack Train:业务组件Neutron装安装的主要内容,如果未能解决你的问题,请参考以下文章
OpenStack Train:业务组件Neutron装安装