每天学习openstack(14)
2017-01-05 16:40
162 查看
接着上面的步骤继续安装网络服务:
1.网络服务介绍
openstack network service(neutron):是opensatck核心组件之一,提供云计算环境下的虚拟网络功能。
2.网络服务组件介绍
neutron-server:这一部分包含守护进程neutron-server 和各种插件 neutron-*-plugin,它们既可以安装在控制节点也可以安装在网络节点。neutron-server 提供 API 接口,并把对 API 的调用请求传给已经配置好的插件进行后续处理。插件需要访问数据库来维护各种配置数据和对应关系,例如路由器、网络、子网、端口、浮动IP、安全组等等。
openstack网络插件和代理:Plug and unplug ports, create
networks or subnets, and provide IP addressing. These plug-ins and agents differ depending on the vendor and technologies used in the particular cloud. OpenStack Networking ships with plug-ins and agents for Cisco virtual and physical switches, NEC OpenFlow
products, Open vSwitch, Linux bridging, and the VMware NSX product.
常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。
详解opensatck网络插件和代理:
插件代理(Plugin Agent):虚拟网络上的数据包的处理则是由这些插件代理来完成的。名字为 neutron-*-agent。在每个计算节点和网络节点上运行。一般来说你选择了什么插件,就需要选择相应的代理。代理与 Neutron Server 及其插件的交互就通过消息队列来支持。
提示:插件代理需要部署在每一个运行hypervisor的主机上,它提供本地的vSwitch配置,更多的时候得依赖你具体所使用的插件类型。(常用的插件是OpenvSwitch,还包括Big Switch,Floodinght REST Proxy,Brocade, NSX,
PLUMgrid, Ryu)
DHCP 代理(DHCP Agent):名字为 neutron-dhcp-agent,为各个租户网络提供 DHCP 服务,部署在网络节点上,各个插件也是使用这一个代理。DHCP代理,给租户网络提供动态主机配置服务,主要用途是为租户网络内的虚拟机动态地分配IP地址。
3 层代理(L3 Agent):名字为 neutron-l3-agent, 为客户机访问外部网络提供 3 层转发服务。也部署在网络节点上。提供三层网络功能和网络地址转换(NAT)功能,来让租户的虚拟机可以与外部网络通信。
下面这张图很好的反映了 Neutron 内部各部分服务之间的关系。
neutron服务进程运行图如下:
消息队列:大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态。
点击这里详细了解网络概念
3.安装并配置控制节点:
1.先决条件
创建数据库并授权:
2.获得admin账号权限
source openrc
3.创建neutron用户并添加角色到admin
4.创建服务
4.安装软件
5.配置服务组件
注意:默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(
1.编辑文件/etc/neutron/neutron.conf
在
使用你设置的数据库密码替换
注解:注释或删除``[database]``部分除``connection`以外的所有内容
在``[DEFAULT]``部分,启用ML2插件并禁用其他插件:
在``[DEFAULT]``部分,配置``RabbitMQ``消息队列访问权限:
用你在RabbitMQ中为``openstack``选择的密码替换 “RABBIT_PASS”。
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
将
注解:在
在``[DEFAULT]``和``[nova]``部分,配置网络服务来通知计算节点的网络拓扑变化:
使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``。
在
。在“[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列的连接:
2.配置ml2插件
注释:ML2插件使用Linuxbridge机制来为实例创建layer-2虚拟网络基础设施
修改配置文件/etc/neutron/plugins/ml2/ml2_conf.ini:
在``[ml2]``部分,启用flat和VLAN网络:
在``[ml2]``部分,禁用私有网络:
在``[ml2]``部分,启用Linuxbridge机制:
警告:在你配置完ML2插件之后,删除可能导致数据库不一致的``type_drivers``项的值。
在``[ml2]`` 部分,启用端口安全扩展驱动:
在``[ml2_type_flat]``部分,配置公共虚拟网络为flat网络:
在 ``[securitygroup]``部分,启用 ipset 增加安全组的方便性:
3.配置linuxbridge代理
注释:Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则
修改配置文件:/etc/neutron/plugins/ml2/linuxbridge_agent.ini
在``[linux_bridge]``部分,将公共虚拟网络和公共物理网络接口对应起来:
将``PUBLIC_INTERFACE_NAME`` 替换为底层的物理公共网络接口。请查看:ref:environment-networking for more information。
在``[vxlan]``部分,禁止VXLAN覆盖网络:
在 ``[securitygroup]``部分,启用安全组并配置
Linux 桥接 iptables 防火墙驱动:
4.配置dhcp代理
注释:The DHCP
agent provides DHCP services for virtual networks.
修改配置文件:/etc/neutron/dhcp_agent.ini
在``[DEFAULT]``部分,配置Linuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
5.配置元数据代理
注释:The metadata
agent provides configuration information such as credentials to instances.
修改配置文件:/etc/neutron/metadata_agent.ini
在``[DEFAULT]`` 部分,配置元数据主机以及共享密码:
6.配置计算服务来使用网络服务
修改配置文件:/etc/nova/nova.conf
在``[neutron]``部分,配置访问参数,启用元数据代理并设置密码:
6.完成安装
网络服务初始化脚本需要一个超链接
同步数据库:
注解:数据库的同步发生在 Networking 之后,因为脚本需要完成服务器和插件的配置文件。
重启计算API 服务:
当系统启动时,启动 Networking 服务并配置它启动。
对于两种网络选项:
1.网络服务介绍
openstack network service(neutron):是opensatck核心组件之一,提供云计算环境下的虚拟网络功能。
2.网络服务组件介绍
neutron-server:这一部分包含守护进程neutron-server 和各种插件 neutron-*-plugin,它们既可以安装在控制节点也可以安装在网络节点。neutron-server 提供 API 接口,并把对 API 的调用请求传给已经配置好的插件进行后续处理。插件需要访问数据库来维护各种配置数据和对应关系,例如路由器、网络、子网、端口、浮动IP、安全组等等。
openstack网络插件和代理:Plug and unplug ports, create
networks or subnets, and provide IP addressing. These plug-ins and agents differ depending on the vendor and technologies used in the particular cloud. OpenStack Networking ships with plug-ins and agents for Cisco virtual and physical switches, NEC OpenFlow
products, Open vSwitch, Linux bridging, and the VMware NSX product.
常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。
详解opensatck网络插件和代理:
插件代理(Plugin Agent):虚拟网络上的数据包的处理则是由这些插件代理来完成的。名字为 neutron-*-agent。在每个计算节点和网络节点上运行。一般来说你选择了什么插件,就需要选择相应的代理。代理与 Neutron Server 及其插件的交互就通过消息队列来支持。
提示:插件代理需要部署在每一个运行hypervisor的主机上,它提供本地的vSwitch配置,更多的时候得依赖你具体所使用的插件类型。(常用的插件是OpenvSwitch,还包括Big Switch,Floodinght REST Proxy,Brocade, NSX,
PLUMgrid, Ryu)
DHCP 代理(DHCP Agent):名字为 neutron-dhcp-agent,为各个租户网络提供 DHCP 服务,部署在网络节点上,各个插件也是使用这一个代理。DHCP代理,给租户网络提供动态主机配置服务,主要用途是为租户网络内的虚拟机动态地分配IP地址。
3 层代理(L3 Agent):名字为 neutron-l3-agent, 为客户机访问外部网络提供 3 层转发服务。也部署在网络节点上。提供三层网络功能和网络地址转换(NAT)功能,来让租户的虚拟机可以与外部网络通信。
下面这张图很好的反映了 Neutron 内部各部分服务之间的关系。
neutron服务进程运行图如下:
消息队列:大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态。
点击这里详细了解网络概念
3.安装并配置控制节点:
1.先决条件
创建数据库并授权:
mysql> CREATE DATABASE neutron;
mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \ IDENTIFIED BY 'NEUTRON_DBPASS'; mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \ IDENTIFIED BY 'NEUTRON_DBPASS';
2.获得admin账号权限
source openrc
3.创建neutron用户并添加角色到admin
$ openstack user create --domain default --password-prompt neutron User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 319f34694728440eb8ffcb27b6dd8b8a | | name | neutron | | password_expires_at | None | +---------------------+----------------------------------+
openstack role add --project service --user neutron admin
4.创建服务
$ openstack service create --name neutron \ --description "OpenStack Networking" network +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Networking | | enabled | True | | id | f71529314dab4a4d8eca427e701d209e | | name | neutron | | type | network | +-------------+----------------------------------+
$ openstack endpoint create --region RegionOne \ network public http://controller:9696 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 85d80a6d02fc4b7683f611d7fc1493a3 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | f71529314dab4a4d8eca427e701d209e | | service_name | neutron | | service_type | network | | url | http://controller:9696 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne \ network internal http://controller:9696 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 09753b537ac74422a68d2d791cf3714f | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | f71529314dab4a4d8eca427e701d209e | | service_name | neutron | | service_type | network | | url | http://controller:9696 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne \ network admin http://controller:9696 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 1ee14289c9374dffb5db92a5c112fc4e | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | f71529314dab4a4d8eca427e701d209e | | service_name | neutron | | service_type | network | | url | http://controller:9696 | +--------------+----------------------------------+
4.安装软件
# yum install openstack-neutron openstack-neutron-ml2 \ openstack-neutron-linuxbridge ebtables
5.配置服务组件
注意:默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(
...)表示默认的配置选项你应该保留。
1.编辑文件/etc/neutron/neutron.conf
在
[database]部分,配置数据库访问:
[database] ... connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
使用你设置的数据库密码替换
NEUTRON_DBPASS。
注解:注释或删除``[database]``部分除``connection`以外的所有内容
在``[DEFAULT]``部分,启用ML2插件并禁用其他插件:
[DEFAULT] ... core_plugin = ml2 service_plugins =
在``[DEFAULT]``部分,配置``RabbitMQ``消息队列访问权限:
[DEFAULT] ... transport_url = rabbit://openstack:RABBIT_PASS@controller
用你在RabbitMQ中为``openstack``选择的密码替换 “RABBIT_PASS”。
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
[DEFAULT] ... auth_strategy = keystone [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 = NEUTRON_PASS
将
NEUTRON_PASS替换为你在认证服务中为
neutron用户选择的密码。
注解:在
[keystone_authtoken]中注释或者删除其他选项。
在``[DEFAULT]``和``[nova]``部分,配置网络服务来通知计算节点的网络拓扑变化:
[DEFAULT] ... notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True [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 = NOVA_PASS
使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``。
在
[oslo_concurrency]部分,配置锁路径:
[oslo_concurrency] ... lock_path = /var/lib/neutron/tmp
。在“[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列的连接:
rpc_backend = rabbit
rabbit_host = 192.168.141.170
rabbit_userid = openstack
rabbit_password = openstack (密码)
2.配置ml2插件
注释:ML2插件使用Linuxbridge机制来为实例创建layer-2虚拟网络基础设施
修改配置文件/etc/neutron/plugins/ml2/ml2_conf.ini:
在``[ml2]``部分,启用flat和VLAN网络:
[ml2] ... type_drivers = flat,vlan
在``[ml2]``部分,禁用私有网络:
[ml2] ... tenant_network_types =
在``[ml2]``部分,启用Linuxbridge机制:
[ml2] ... mechanism_drivers = linuxbridge
警告:在你配置完ML2插件之后,删除可能导致数据库不一致的``type_drivers``项的值。
在``[ml2]`` 部分,启用端口安全扩展驱动:
[ml2] ... extension_drivers = port_security
在``[ml2_type_flat]``部分,配置公共虚拟网络为flat网络:
[ml2_type_flat] ... flat_networks = provider
在 ``[securitygroup]``部分,启用 ipset 增加安全组的方便性:
[securitygroup] ... enable_ipset = True
3.配置linuxbridge代理
注释:Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则
修改配置文件:/etc/neutron/plugins/ml2/linuxbridge_agent.ini
在``[linux_bridge]``部分,将公共虚拟网络和公共物理网络接口对应起来:
[linux_bridge] physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
将``PUBLIC_INTERFACE_NAME`` 替换为底层的物理公共网络接口。请查看:ref:environment-networking for more information。
在``[vxlan]``部分,禁止VXLAN覆盖网络:
[vxlan] enable_vxlan = False
在 ``[securitygroup]``部分,启用安全组并配置
Linux 桥接 iptables 防火墙驱动:
[securitygroup] ... enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
4.配置dhcp代理
注释:The DHCP
agent provides DHCP services for virtual networks.
修改配置文件:/etc/neutron/dhcp_agent.ini
在``[DEFAULT]``部分,配置Linuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = True
5.配置元数据代理
注释:The metadata
agent provides configuration information such as credentials to instances.
修改配置文件:/etc/neutron/metadata_agent.ini
在``[DEFAULT]`` 部分,配置元数据主机以及共享密码:
[DEFAULT] ... nova_metadata_ip = controller metadata_proxy_shared_secret = METADATA_SECRE
6.配置计算服务来使用网络服务
修改配置文件:/etc/nova/nova.conf
在``[neutron]``部分,配置访问参数,启用元数据代理并设置密码:
[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 = NEUTRON_PASS service_metadata_proxy = True metadata_proxy_shared_secret = METADATA_SECRET
6.完成安装
网络服务初始化脚本需要一个超链接
/etc/neutron/plugin.ini``指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini``。如果超链接不存在,使用下面的命令创建它:
# 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
注解:数据库的同步发生在 Networking 之后,因为脚本需要完成服务器和插件的配置文件。
重启计算API 服务:
# systemctl restart openstack-nova-api.service
当系统启动时,启动 Networking 服务并配置它启动。
对于两种网络选项:
# 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
相关文章推荐
- 学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)
- Openstack : 14、Openstack-开发基础 Pecan学习
- 每天学习openstack(7)
- 学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)
- 通过例子学习 Keystone - 每天5分钟玩转 OpenStack(19)
- 学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)
- 每天学习一算法系列(14) (输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字)
- 云计算与 OpenStack - 每天5分钟玩转 OpenStack(14)
- 云计算与 OpenStack - 每天5分钟玩转 OpenStack(14)
- 学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)
- 通过例子学习 Keystone - 每天5分钟玩转 OpenStack(19)
- 学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)
- 每天学习openstack(12)
- 每天学习openstack(4)
- 云计算与 OpenStack - 每天5分钟玩转 OpenStack(14)
- 每天学习openstack(8)
- 每天学习openstack(13)
- 学习—虚拟化 - 每天5分钟玩转 OpenStack(2)
- 每天学习openstack(3)