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.实验题

网络服务在控制节点和计算节点的安装与配置。

 

posted @ 2020-08-10 17:37  浅唱I  阅读(1325)  评论(0编辑  收藏  举报