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.實驗題

網絡服務在控制節點和計算節點的安裝與配置。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM