1. 程式人生 > >每天學習openstack(14)

每天學習openstack(14)

接著上面的步驟繼續安裝網路服務:

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:[email protected]/neutron
    

    使用你設定的資料庫密碼替換 NEUTRON_DBPASS 。

    註解:註釋或刪除``[database]``部分除``connection`以外的所有內容
  • 在``[DEFAULT]``部分,啟用ML2外掛並禁用其他外掛:

    [DEFAULT]
    ...
    core_plugin = ml2
    service_plugins =
    
  • 在``[DEFAULT]``部分,配置``RabbitMQ``訊息佇列訪問許可權:

    [DEFAULT]
    ...
    transport_url = rabbit://openstack:[email protected]
    

    用你在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.完成安裝
  1. 網路服務初始化指令碼需要一個超連結 /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
    
  2. 同步資料庫:

    # 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 之後,因為指令碼需要完成伺服器和外掛的配置檔案。
  3. 重啟計算API 服務:

    # systemctl restart openstack-nova-api.service
    
  4. 當系統啟動時,啟動 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

相關推薦

每天學習openstack14

接著上面的步驟繼續安裝網路服務: 1.網路服務介紹 openstack network service(neutron):是opensatck核心元件之一,提供雲端計算環境下的虛擬網路功能。 2.網路服務元件介紹 neutron-server:這一部分包含守護程序neutr

QT學習筆記14 定時器類DTimer的使用

fin isa play htm number conn stat alt .cn 一、   在前面的學習筆記中,我們已經學習定時器事件http://www.cnblogs.com/blog-ccs/p/7445323.html   現在,我們學習QTimer定時器類,比較

軟件架構設計學習總結14:大型網站技術架構網站的安全架構

根據 知情 提交 pac 請求參數 用途 text 避免 信息加密 從互聯網誕生起,安全威脅就一直伴隨著網站的發展,各種Web攻擊和信息泄露也從未停止。常見的攻擊手段有XSS攻擊、SQL註入、CSRF、Session劫持等。 1、XSS攻擊 XSS攻擊即跨站點腳本攻擊(C

redis學習筆記14---redis基本命令總結

del diff lan 命令 列表 對象 很多 順序 reg http://doc.redisfans.com/ 網頁,對所有redis命令的用法與示例進行了詳細的描述 概述 Redis的鍵值可以使用物種數據類型:字符串,散列表,列表,集合,有序集合。本文詳細介紹這

Linux學習筆記14

14一、df命令df 匯報文件系統磁盤空間使用情況文件系統名稱 文件系統大小 已用空間 可用空間 已用百分比% 掛載點-h 顯示磁盤單位(根據磁盤大小)Byte字節 (1024) KB (1024) MB兆 (1024) GB (102

Linux第一周學習筆記14

script white 網卡 第一個 roo nor nbsp inux sys Linux第一周學習筆記(14)2.6,相對和絕對路徑(1).路徑:就是某一個文件存放的地方,只要鍵入這個文件的路徑系統就只能直接找到這文件所在位置,所以找一個文件需要輸入這個文件的路徑。(

ActiveMQ學習筆記14----Destination高階特性

1. Visual Destinations   1.1 概述   虛擬Destination用來建立邏輯Destinations,客戶端可以通過它來產生和消費訊息,它會把訊息對映到物理Destinations。ActiveMQ支援兩種方式:   1. 虛擬主題(Virtual Topics)   2

Spark學習筆記14——Spark Streaming 資料累加的案例

1 原始碼 package mystreaming import org.apache.spark.{HashPartitioner, SparkConf, SparkContext} import org.apache.spark.streaming.{Seconds, Stre

SpringBoot學習筆記14:使用SpringBootAdmin管理監控你的應用

SpringBoot學習筆記(14):使用SpringBootAdmin管理監控你的應用 Spring Boot Admin是一個管理和監控Spring Boot應用程式的應用程式。本文參考文件: 官方文件:http://codecentric.github.io/spring-boot-

RocketMQ學習筆記14----RocketMQ的去重策略

1. Exactly Only Once   (1). 傳送訊息階段,不允許傳送重複的訊息   (2). 消費訊息階段,不允許消費重複的訊息。   只有以上兩個條件都滿足情況下,才能認為訊息是“Exactly Only Once”,而要實現以上兩點,在分散式系統環   境下,不可避免要產生巨大的開銷。

TensorFlow+實戰Google深度學習框架學習筆記14------VGGNet

一、VGGNet:5段卷積【每段有2~3個卷積層+最大池化層】【每段過濾器個數:64-128-256-512-512】 每段的2~3個卷積層串聯在一起的作用: 2個3×3的卷積層串聯的效果相當於一個5×5的卷積層,即一個畫素會跟周圍5×5的畫素產生關聯。【28*28的輸入經過一次5*5得到24*24,s=

深入學習Gremlin14:分支

第14期 Gremlin Steps: choose()、branch() 本系列文章的Gremlin示例均在HugeGraph圖資料庫上執行,環境搭建可參考準備Gremlin執行環境,本文示例均以

Spring Boot學習總結14——Spring Boot常見面試題彙總

1、什麼是 Spring Boot? Spring Boot 是 Spring 開源組織下的子專案,是 Spring 元件一站式解決方案,主要是簡化了使用 Spring 的難度,簡省了繁重的配置,提供了各種啟動器,開發者能快速上手。 2、為什麼要用 Spring Boot

學習openstack

  一、OpenStack初探 1.1 OpenStack簡介  OpenStack是一整套開源軟體專案的綜合,它允許企業或服務提供者建立、執行自己的雲端計算和儲存設施。Rackspace與NASA是最初重要的兩個貢獻者,前者提供了“雲檔案”平臺程式碼,該平臺增強了Ope

學習openstack

一。KVM虛擬化 1.KVM的安裝:      yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install      /etc/

OpenCV學習筆記14:形態學濾波對影象進行邊緣及角點檢測

</pre><pre name="code" class="cpp">#include "stdafx.h" #include<opencv2/opencv.hpp> using namespace cv; class MorphoFe

周志華《Machine Learning》學習筆記14--計算學習理論

上篇主要介紹了常用的特徵選擇方法及稀疏學習。首先從相關/無關特徵出發引出了特徵選擇的基本概念,接著分別介紹了子集搜尋與評價、過濾式、包裹式以及嵌入式四種類型的特徵選擇方法。子集搜尋與評價使用的是一種優中生優的貪婪演算法,即每次從候選特徵子集中選出最優子集;過濾式

spring學習筆記14——泛型依賴注入

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

springmvc學習筆記14——mvc view-controller標籤

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

vue2.0 餓了麼學習筆記14food.vue的實現

點選food展開詳情頁food.vue的實現1)新建good資料夾和good.vue,設定樣式,並接受一個被選中的food props: { //接收傳入的food food: { type: Object }