linux云计算部署Openstack(三)之部署neturon控制节点和计算节点 组件 (PaaS+IaaS)
部署neturon控制节点和计算节点 组件 (PaaS+IaaS)
1.网络服务 neutron组件服务 : 给云环境提供虚拟网络信息
1.Neutron概述 功能
云计算时代数据中心物理网络存在的问题
数据中心现有的物理网络,无法承载云计算机的超大规模
数据中心现有的物理网络,无法满足云计算SDN的要求
Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 VPN 等。Neutron 提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。
2.Neutron网络基本概念
Network
网络 192.168.0.0/24 广播域
网络类型local flat vlan vxlan gre
Subnet
子网(给实例分配IP)
Port
Port映射成为实例虚拟网卡
3Neutron组件构成
Neutron架构
neutron-server
neutron-plugin
neutron-agent
network provider
The queue
SQL database
组件解释
1.neutron-server :接收处理网络请求(vm),网络类型、网络的创建技术
2.neutron agrnt:调用network provider技术,具体实现网络创建
3.queue:消息队列,实现服务内部的通信
4.neutron lpugin:接收neutron-agent,写入数据库,并实现网络规划,
lneutron-plugin插件包括两种:core plugin和service plugin
5.neutron database:数据库,存储数据
6.network provider:网络位置访问接口
4.Neutron各组件协调工作
以创建一个 VLAN100 的 network 为例,假设 network provider 是 linux bridge,
流程如下:
Neutron Server 接收到创建 network 的请求,通过 Message Queue(RabbitMQ)通知已注册的 Linux Bridge Plugin。
Plugin 将要创建的 network 的信息(例如名称、VLAN ID等)保存到数据库中,并通过 Message Queue 通知运行在各节点上的 Agent。
Agent 收到消息后会在节点上的物理网卡(比如 eth2)上创建 VLAN 设备(比如 eth2.100),并创建 bridge (比如 brqXXX) 桥接 VLAN 设备。
5.Neutron物理部署方案
neutron由很多子服务组成,同时我们也知道OpenStack是一个分布式系统,对于neutron这些服务会部署在三类节点上,控制节点、网络节点和计算节点,计算节点上安装了二层neutron-agent,供虚拟机进行二层通信,各neutron-agent放在网络节点上,其他子服务则是放在控制节点上的。
2.网络服务neutron安装与配置
1.准备实验用的物理环境
考虑几个问题:
需要几个节点
如何分配节点的角色
节点上部署哪些服务
配几个网卡
物理网络如何连接
配置多网卡区分不同类型的网络数据
OpenStack 至少包含下面几类网络流量
Management
API
VM
External
2.Neutron控制节点安装与配置
创建neutron数据库并授权
注册neutron在keystone认证相关信息
安装neutron相关软件包
修改neutron配置文件
同步neutron数据库
启动neutron相关服务
验证网络服务
3.Neutron计算节点安装与配置
安装网络服务相关软件包
修改配置文件
启动服务
3.案例 控制节点 安装neutron组件案例 修改配置文件
1.建库授权
mysql -u root -p123
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'controller' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '123';
. admin.sh来源admin凭据来访问仅管理员CLI命令
openstack user create --domain default --password-prompt neutron创建neutron用户
openstack role add --project service --user neutron adminadmin向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
2.选择第二种方案 安装ml2和linuxbridge 软件包 修改四处配置文件
yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables安装的组件
1. 配置服务器组件
vim /etc/neutron/neutron.conf
1.
[database]
connection = mysql+pymysql://neutron:123@controller/neutron
2.
[DEFAULT]
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = true
transport_url = rabbit://openstack:123@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
3.
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 123
4.
[nova]
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = 123
5.
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
2.
vim /etc/neutron/plugins/ml2/ml2_conf.ini
1.
[ml2]
type_drivers = flat,vlan,vxlan启用平面,VLAN和VXLAN网络:
tenant_network_types = vxlan启用VXLAN自助服务网络:
mechanism_drivers = linuxbridge,l2population启用Linux桥接器和第2层填充机制
extension_drivers = port_security启用端口安全扩展驱动程序
2.
[ml2_type_flat]
flat_networks = provider
3.
[ml2_type_vxlan]
vni_ranges = 1:1000
4.
[securitygroup]
enable_ipset = true
3.
vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
1.
[linux_bridge]
physical_interface_mappings = provider:ens38
2.
[vxlan]
enable_vxlan = true
local_ip = 192.168.10.10
l2_population = true
3.
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
4.
vim /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
vim /etc/neutron/l3_agent.ini
[DEFAULT]
interface_driver = linuxbridge
vim /etc/neutron/dhcp_agent.ini
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
3.读取打印内核参数
sysctl -p 如果未启动则重启服务即可
4.修改2处配置文件
1.
vim /etc/neutron/metadata_agent.ini
nova_metadata_host = controller
metadata_proxy_shared_secret = 123
2.vim /etc/nova/nova.conf
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 123
service_metadata_proxy = true
metadata_proxy_shared_secret = 123
5.制作软连接,读取数据库 启动服务
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
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
mysql -uroot -p123登录验证
show databases;
use neutron
show tables;
systemctl restart openstack-nova-api.service
systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
systemctl status neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
systemctl enable neutron-l3-agent.service
systemctl start neutron-l3-agent.service
4.案例计算节点 安装neturon
1.计算节点安装软件包 修改配置文件
yum install openstack-neutron-linuxbridge ebtables ipset -y
vim /etc/neutron/neutron.conf
1.
[DEFAULT]
transport_url = rabbit://openstack:123@controller
auth_strategy = keystone
2.
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 123
3.
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
2.选择第二种方案,自助服务网络 配置,修改配置文件
vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
1.
[linux_bridge]外网
physical_interface_mappings = provider:ens38
2.
[vxlan]租户网络
enable_vxlan = true
local_ip = 192.168.10.20
l2_population = true
3.
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
3.支持功能 修改内核参数
vim /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
sysctl -p
4.修改nova主配置文件 增加neutron服务组件配置 启动服务
vim /etc/nova/nova.conf
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 123
systemctl restart openstack-nova-compute.service
systemctl enable neutron-linuxbridge-agent.service
systemctl start neutron-linuxbridge-agent.service
systemctl status neutron-linuxbridge-agent.service
5.控制节点进行 验证
https://docs.openstack.org/neutron/queens/install/verify.html验证网址
openstack network agent list控制节点查看agent列表
5.控制节点安装dashboard服务组件 修改配置文件
https://docs.openstack.org/horizon/queens/install/install-rdo.html网址
yum install openstack-dashboard -y安装软件包
vim /etc/openstack-dashboard/local_settings修改第一处配置
1.
OPENSTACK_HOST = "controller"
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
另开窗口 查看user是否更改
. admin.sh
openstack role list
2.
ALLOWED_HOSTS = ['*']
3.直接复制粘贴就行
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'controller:11211',
}
}
4.
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 2,
}
5.
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
6.
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
7.默认即可
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': True,
'enable_quotas': True,
'enable_ipv6': True,
'enable_distributed_router': False,
'enable_ha_router': False,
'enable_fip_topology_check': True,
8.默认即可
TIME_ZONE = "UTC"
2.修改第二处配置文件
vim /etc/httpd/conf.d/openstack-dashboard.conf 增加这一行
WSGIApplicationGroup %{GLOBAL}
systemctl restart httpd.service memcached.service重启服务,查看状态
systemctl status httpd.service memcached.service
配置完成
6.简答实验
1.简答题
Neutron网络服务的主要内部组件有哪些?
Neutron-plugin的作用是什么?
实验过程中都用到了哪几种neutron-agent?分别的作用是什么?
同一套云环境中,可以有多个network provider吗?是怎么实现的?
Ml2的作用是什么?网络类型如何定义?不同的网络类型分别适用于哪些场景?
Provider network和tenent network分别指什么?
2.实验题
网络服务在控制节点和计算节点的安装与配置。