openstack安装部署6——网络服务(控制节点&计算节点)

来源:互联网 发布:前端软件外包交易平台 编辑:程序博客网 时间:2024/06/09 21:58

1.概述

网络配置有两种方式:provider网络或者self-service网络,具体情况参考官方文档
provider网络参考和self-service网络参考。更多关于网络服务(包括虚拟网络组件、分层、流量)等信息,请参考Mitaka网络指南。
Neutron包含如下组件:

  • neutron-server
    接收并路由API请求到合适的openstack网络插件。
  • OpenStack Networking plug-ins and agents
    创建网络或子网,提供IP地址。这些插件和代理依靠特定云中使用的供应商和技术,插件可以使用Cisco虚拟和物理交换机,NEC openFlow products,open vSwitch,linux briding 和VMwareNSX。常规的代理有Layer3,DHCP等。
  • Messaging queue
    大多数openstack网络使用它连接neutron-server和各种不同代理间信息交互。此外,也作为一个存储网络状态的数据库。

Openstack网络主要为openstack compute实例提供网络和连通性。

2.控制节点上部署(10.10.80.180)

2.1安装前提

2.1.1 创建数据库

  • 1.以root用户登录数据库
    mysql -u root -p

  • 2.创建“neutron”数据库
    MariaDB > CREATE DATABASE neutron;

  • 3.赋予“neutron”权限
    用123456替代NEUTRON_DBPASS,在openstack安装部署1中规划openstack部署——前言&规划

>GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \>IDENTIFIED BY 'NEUTRON_DBPASS';>GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \  >IDENTIFIED BY 'NEUTRON_DBPASS';
  • 4.退出数据库
    > exit

2.1.2 source环境配置

. admin-openrc

2.1.3 创建服务凭据

  • 1.创建“neutron”用户,密码为123456,规划见openstack部署——前言&规划
    openstack user create --domain default --password-prompt neutron
    这里写图片描述

  • 2.将“admin”role赋予“neturon”user
    openstack role add --project service --user neutron admin

  • 3.创建“neturon”服务实例
    openstack service create --name neutron --description "OpenStack Networking" network
    这里写图片描述

2.1.4创建网络服务API endpoint

  • public
    openstack endpoint create --region RegionOne network public http://controller:9696
    这里写图片描述

  • internal
    openstack endpoint create --region RegionOne network internal http://controller:9696
    这里写图片描述

  • admin
    openstack endpoint create --region RegionOne network admin http://controller:9696
    这里写图片描述

2.2安装&配置

本次实验选择安装provide网络架构。

2.2.1安装组件

apt-get install neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent

2.2.2配置服务组件

网络组件的配置包括:数据库、认证机制、消息队列、拓扑变化通知、插件。
编辑/etc/neutron/neutron.conf文件

  • 1.在[database]部分配置数据库接口
    用创建数据库时的实际密码123456替代NEUTRON_DBPASS
[database]connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
  • 2.在[DEFAULT]部分配置modular Layer2(ML2)插件,并禁用其他插件
 [DEFAULT] ···core_plugin = ml2service_plugins =
  • 3.在[DEFAULT]部分和[oslo_messaging_rabbit]部分
    配置RabbitMQ,用123456替换RABBIT_PASS
[DEFAULT]···rpc_backend = rabbit[oslo_messaging_rabbit]rabbit_host = controllerrabbit_userid = openstackrabbit_password = RABBIT_PASS
  • 4.在[DEFAULT]部分和[keystone_authtoken]部分配置认证服务接口
    NEUTRON_PASS用“neutron”user的密码123456替换。
[DEFAULT]...auth_strategy = keystone[keystone_authtoken]auth_uri = http://controller:5000auth_url = http://controller:35357memcached_servers = controller:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = neutronpassword = NEUTRON_PASS
  • 5.在[DEFAULT]部分和[nova]部分配置网络来公告拓扑改变
    NOVA_PASS用nova用户密码123456替换
[DEFAULT]...notify_nova_on_port_status_changes = Truenotify_nova_on_port_data_changes = True[nova]auth_url = http://controller:35357auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultregion_name = RegionOneproject_name = serviceusername = novapassword = NOVA_PASS

2.2.3 配置Modular Layer 2(ML2)插件

ML2 插件通过Linux网桥机制为实例创建二层(bridging and switching) 虚拟网络设施。编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件:

  • 1.在[ml2]部分,激活flat和VLAN网络
[ml2]...type_drivers = flat,vlan
  • 2.在[ml2]部分,禁用self-service 网络
[ml2]...tenant_network_types =
  • 3.在[ml2]部分,激活linux bridge机制
 [ml2]...mechanism_drivers = linuxbridge

【备注:在配置ML2插件后,移除type_drivers选项中的值会导致数据库的不一致性,注释掉该行代码
这里写图片描述

  • 4.在[ml2]部分,激活端口安全的扩展驱动
[ml2]...extension_drivers = port_security
  • 5.在[ml2_type_flat]部分,配置provider 虚拟网络作为一个flat网络
[ml2_type_flat]...flat_networks = provider
  • 6.在[securitygroup] 部分,激活ipset 来提高安全组规则的效率
[securitygroup]...enable_ipset = true

2.2.4配置linux 网桥代理

Linux网桥代理为实例创建二层(网桥和交换)虚拟网络设施,并管理安全组。修改配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini。

  • 1.在[linux_bridge]部分
    将provider 虚拟网络和provider物理网络接口映射,将PROVIDER_INTERFACE_NAME替换为底层物理网络接口名称,具体请参考官方文档
    physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
    这里写图片描述

  • 2.在[vxlan]部分,禁用VXLAN

[vxlan]enable_vxlan = False
  • 3.在[securitygroup]部分
    激活安全组并配置linux网桥防火墙
[securitygroup]...enable_security_group = Truefirewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

2.2.5 配置DHCP代理

编辑 /etc/neutron/dhcp_agent.ini 文件:
在[DEFAULT]部分,配置如下内容:

[DEFAULT]...interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriverdhcp_driver = neutron.agent.linux.dhcp.Dnsmasqenable_isolated_metadata = True

2.3配置元数据代理

供了实例的各种配置信息,例如实例的认证信息。
编辑文件/etc/neutron/metadata_agent.ini,在在[DEFAULT] 部分配置metadata host 和shared secret,用合适的密码123456替代METADATA_SECRET

[DEFAULT]...nova_metadata_ip = controllermetadata_proxy_shared_secret = METADATA_SECRET

2.4配置compute,使用networking

编辑/etc/nova/nova.conf,在 [neutron] 部分配置参数接口,激活元数据proxy和配置secret,用密码123456替代NEUTRON_PASS,用123456替代METADATA_SECRET。

[neutron]url = http://controller:9696auth_url = http://controller:35357auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultregion_name = RegionOneproject_name = serviceusername = neutronpassword = NEUTRON_PASSservice_metadata_proxy = Truemetadata_proxy_shared_secret = METADATA_SECRET

2.5完成安装

2.5.1 Populate the database:

 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

2.5.2重启计算API服务

service nova-api restart

2.5.3 重启网络服务

service neutron-server restartservice neutron-linuxbridge-agent restartservice neutron-dhcp-agent restartservice neutron-metadata-agent restart

3.计算节点部署(10.10.80.181)

3.1安装组件

apt-get install neutron-linuxbridge-agent

3.2配置通用组件

编辑配置文件/etc/neutron/neutron.conf

  • 1.在[database]部分
    注释掉所有“connection”选项,因为计算节点不直接访问数据库。

  • 2.在[DEFAULT]和 [oslo_messaging_rabbit]部分
    配置RabbitMQ 消息队列接口,RABBIT_PASS用rabbit用户的密码123456替代

[DEFAULT]...rpc_backend = rabbit[oslo_messaging_rabbit]...rabbit_host = controllerrabbit_userid = openstackrabbit_password = RABBIT_PASS
  • 3.在[DEFAULT] 和[keystone_authtoken]的部分配置身份认证

    NEUTRON_PASS用123456替代。需要移除keystone_authtoken中除了下列参数以外的选项。

[DEFAULT]...auth_strategy = keystone[keystone_authtoken]...auth_uri = http://controller:5000auth_url = http://controller:35357memcached_servers = controller:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = neutronpassword = NEUTRON_PASS

3.3配置网络选项

配置/etc/neutron/plugins/ml2/linuxbridge_agent.ini

  • 1.在[linux_bridge]配置物理网络接口
    PROVIDER_INTERFACE_NAME用物理网络接口eth0替代
[linux_bridge]physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
  • 2.在[vxlan]部分,禁用vxlan
[vxlan]enable_vxlan = False
  • 3.在[securitygroup]部分配置防火墙
[securitygroup]...enable_security_group = Truefirewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

3.4配置计算服务来使用网络

编辑文件/etc/nova/nova.conf

  • 1.在[neutron]中配置参数
    NEUTRON_PASS用neutron密码123456替代。
[neutron]url = http://controller:9696auth_url = http://controller:35357auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultregion_name = RegionOneproject_name = serviceusername = neutronpassword = NEUTRON_PASS

3.5重启服务

  • 1.重启计算服务

service nova-compute restart

  • 2.重启网络代理

service neutron-linuxbridge-agent restart

4.验证操作

source环境变量,在/root目录下执行 (该脚本在openstack部署3——keystone安装中第六部分创建openstack安装部署3——keystone安装(仅部署在控制节点)
. admin-openrc

4.1 验证neutron-server

neutron ext-list
这里写图片描述

4.2 验证neturon代理正确性

neutron agent-list
输出节点应该包含在控制节点上有三个代理,在每一个计算节点上有一个代理:
这里写图片描述

0 0