B11-openstack高可用(t版)-Neutron控制/网络节点集群

1. 创建neutron数据库

MariaDB [(none)]> CREATE DATABASE neutron;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost'  IDENTIFIED BY 'huayun';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%'  IDENTIFIED BY 'huayun'; 

2. 创建neutron-api

1)创建neutron用户

[root@controller01 ~]# openstack user create --domain default --password=huayun neutron

2)neutron赋权

给neutron赋予admin当前权限

[root@controller01 ~]# openstack role add --project service --user neutron admin

3)创建neutron服务实体

[root@controller01 ~]# openstack service create --name neutron --description "OpenStack Networking" network

4)创建neutron-api

[root@controller01 ~]# openstack endpoint create --region RegionOne network public http://10.100.214.200:9696

[root@controller01 ~]# openstack endpoint create --region RegionOne network internal http://10.100.214.200:9696

[root@controller01 ~]# openstack endpoint create --region RegionOne network admin  http://10.100.214.200:9696

 

3. 安装neutron

[root@controller01 ~]# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge python-neutronclient ebtables ipset -y

4. 配置neutron.conf 

[root@controller01 ~]# cp /etc/neutron/neutron.conf /etc/neutron/neutron.conf.bak

[root@controller01 ~]# egrep -v "^#|^$" /etc/neutron/neutron.conf
[DEFAULT]
bind_host = 10.100.214.201
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = true
transport_url = rabbit://openstack:huayun@10.100.214.200:5672
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
l3_ha = True
max_l3_agents_per_router = 3
min_l3_agents_per_router = 2
dhcp_agents_per_network = 3
[cors]
[database]
connection = mysql+pymysql://neutron:huayun@10.100.214.200/neutron
[keystone_authtoken]
www_authenticate_uri = http://10.100.214.200:5000
auth_url = http://10.100.214.200:5000
memcached_servers = 10.100.214.201:11211,10.100.214.202:11211,10.100.214.203:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = huayun
[nova]
auth_url = http://10.100.214.200:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = huayun
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[privsep]
[ssl]

将controller的neutron.conf拷贝到另外两台节点之后(注意bindip的修改)

[root@controller01 ~]# scp /etc/neutron/neutron.conf 10.100.214.202:/etc/neutron/
[root@controller01 ~]# scp /etc/neutron/neutron.conf 10.100.214.203:/etc/neutron/

5. 配置ml2_conf.ini

[root@controller01 ~]# egrep -v "^#|^$" /etc/neutron/plugins/ml2/ml2_conf.ini
[DEFAULT]
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[ml2_type_vxlan]
vni_ranges = 1:1000
[securitygroup]
enable_ipset = true

 

[root@controller01 ~]# scp /etc/neutron/plugins/ml2/ml2_conf.ini 10.100.214.202:/etc/neutron/plugins/ml2/
[root@controller01 ~]# scp /etc/neutron/plugins/ml2/ml2_conf.ini 10.100.214.203:/etc/neutron/plugins/ml2/

 

6. 配置linuxbridge_agent.ini

 

1)配置linuxbridge_agent.ini

[root@controller01 ~]# egrep -v "^#|^$" /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[DEFAULT]
[linux_bridge]

# 网络类型名称与物理网卡对应,这里flat external网络对应规划的eth1,vlan租户网络对应规划的eth3,在创建相应网络时采用的是网络名称而非网卡名称;
# 需要明确的是物理网卡是本地有效,根据主机实际使用的网卡名确定;
# 另有” bridge_mappings”参数对应网桥

physical_interface_mappings = external:ens224,vlan:ens256
[vxlan]
enable_vxlan = true

# tunnel租户网络(vxlan)vtep端点,这里对应规划的ens161(的地址),根据节点做相应修改

local_ip = 115.115.115.201
l2_population = true
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

 

[root@controller01 ~]# scp /etc/neutron/plugins/ml2/linuxbridge_agent.ini 10.100.214.202:/etc/neutron/plugins/ml2/linuxbridge_agent.ini
[root@controller01 ~]# scp /etc/neutron/plugins/ml2/linuxbridge_agent.ini 10.100.214.203:/etc/neutron/plugins/ml2/linuxbridge_agent.ini

 

2)配置内核参数

 

# bridge:是否允许桥接;
# 如果“sysctl -p”加载不成功,报” No such file or directory”错误,需要加载内核模块“br_netfilter”;
# 命令“modinfo br_netfilter”查看内核模块信息;
# 命令“modprobe br_netfilter”加载内核模块

 

[root@controller01 ~]# echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
[root@controller01 ~]# echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
[root@controller01 ~]# sysctl -p
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1

 

7. 配置l3_agent.ini(self-networking)

 

[root@controller01 ~]# egrep -v "^#|^$" /etc/neutron/l3_agent.ini
[DEFAULT]
interface_driver = linuxbridge

 

[root@controller01 ~]# scp /etc/neutron/l3_agent.ini 10.100.214.202:/etc/neutron/l3_agent.ini
[root@controller01 ~]# scp /etc/neutron/l3_agent.ini 10.100.214.203:/etc/neutron/l3_agent.ini

 

8. 配置dhcp_agent.ini

 

[root@controller01 ~]# egrep -v "^#|^$" /etc/neutron/dhcp_agent.ini
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true

[root@controller01 ~]# scp /etc/neutron/dhcp_agent.ini 10.100.214.202:/etc/neutron/dhcp_agent.ini
[root@controller01 ~]# scp /etc/neutron/dhcp_agent.ini 10.100.214.203:/etc/neutron/dhcp_agent.ini

 

9. 配置metadata_agent.ini

[root@controller01 ~]# egrep -v "^#|^$" /etc/neutron/metadata_agent.ini
[DEFAULT]
nova_metadata_host = 10.100.214.200
metadata_proxy_shared_secret = huayun
[cache]
memcache_servers = 10.100.214.201:11211,10.200.214.202:11211,10.100.214.203:11211

[root@controller01 ~]# scp /etc/neutron/metadata_agent.ini 10.100.214.202:/etc/neutron/
[root@controller01 ~]# scp /etc/neutron/metadata_agent.ini 10.100.214.203:/etc/neutron/

10. 配置nova.conf(每个控制节点都需要添加)

[neutron]
url = http://10.100.214.200:9696
auth_url = http://10.100.214.200:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = huayun
service_metadata_proxy = true
metadata_proxy_shared_secret = huayun

11. 同步neutron数据库

[root@controller01 ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

[root@controller01 ~]# 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

 [root@controller01~]#  mysql -h controller01 -u neutron -phuayun -e "use neutron;show tables;"

12. 启动服务

[root@controller01 ~]# systemctl restart openstack-nova-api.service

[root@controller01~]# systemctl enable neutron-server.service   neutron-linuxbridge-agent.service neutron-dhcp-agent.service   neutron-metadata-agent.service

[root@controller01 ~]# systemctl start  neutron-server.service   neutron-linuxbridge-agent.service neutron-dhcp-agent.service   neutron-metadata-agent.service

[root@controller01 ~]# systemctl enable neutron-l3-agent.service
root@controller01~]# systemctl start neutron-l3-agent.service

13. 验证

查看加载的扩展服务

[root@controller01 ~]# openstack extension list --network

14. 设置pcs资源

[root@controller01 ~]# pcs resource create neutron-server systemd:neutron-server --clone interleave=true
[root@controller01 ~]# pcs resource create neutron-linuxbridge-agent systemd:neutron-linuxbridge-agent --clone interleave=true
[root@controller01 ~]# pcs resource create neutron-l3-agent systemd:neutron-l3-agent --clone interleave=true
[root@controller01 ~]# pcs resource create neutron-dhcp-agent systemd:neutron-dhcp-agent --clone interleave=true
[root@controller01 ~]# pcs resource create neutron-metadata-agent systemd:neutron-metadata-agent --clone interleave=true

原文地址:https://www.cnblogs.com/zhaopei123/p/13124680.html