一、keystone
1、keystone的功能
(1)管理使用者及其許可權
(2)維護openstack各服務的endpoint
(3)認證和鑑權
2、與keystone相關的名詞:user、credentials、authentication、token、project、service、endpoint、role
(1)user:使用者或者其他服務
(2)credentials(證明):user用來證明自己身份的資訊,通常是使用者名稱/密碼或者token
(3)authentication(認證):是keystone驗證user身份的過程,user提供使用者名稱/密碼,keystone簽發token的過程
(4)token:由數字和字母組成,user成功認證後,由keystone分配給user,有效期預設24小時
(5)project:用於將openstack的資源(計算、儲存、網路)進行分組和隔離
(6)service:計算、儲存、映象、網路等服務,每個服務都會提供若干個endpoint,user通過endpoint訪問資源和執行操作
(7)endpoint:是乙個網路上可訪問的位址,通常是乙個url(統一資源定位符),service通過endpoint暴露自己的api
二、glance
1、glance架構及元件功能(畫圖)
(1)glance-api:對外提供rest api,響應image查詢、獲取和儲存的呼叫,glance-api不會真正處理請求。
(2)glance-registry:處理image的元資料。
(3)store backend:存放image。支援多種方式儲存,包括檔案系統、swift、http、amazon s3等。
(4)database:image的元資料會儲存到database中,預設是mysql。
三、nova
1、描述「從虛機建立流程看nova-*子服務如何協同工作」(畫圖)
(1)nova-api:接收和響應客戶的呼叫
(2)rabbitmq:作為自服務的資訊中轉站,協調各子服務之間的通訊。
(3)scheduler:根據計算節點的資源使用情況,選擇最合適的計算節點來執行虛機。
涉及到filter scheduler排程器:排程過程分為兩步:
a:通過過濾器filter選擇滿足條件的計算節點
b:通過權重計算選擇最優的計算節點建立虛機
(4)nova-compute:在計算節點上執行,負責管理節點上的虛機。
(5)nova-conductor:nova-compute需要獲取和更新資料庫中虛機的資訊,但不會直接訪問資料庫,是通過nova-conductor實現訪問資料庫。
(6)database:存放元件的狀態資料等。
流程:(1)客戶向nova-api傳送請求:「幫我建立乙個虛機」。
(2)nova-api接收請求並處理後,向rabbitmq傳送訊息:「讓scheduler建立乙個虛機」。
(3)scheduler接收到rabbitmq的請求,開始執行排程演算法,從若干計算節點中選出計算節點a。
(4)scheduler傳送訊息到rabbitmq:「在計算節點a上建立這個虛機」。
(5)rabbitmq向計算節點a的nova-compute傳送訊息,然後在本節點的hypervisor上啟動虛機。
(6)nova-compute如果需要查詢和更新資料庫資訊,會通過rabbitmq傳送訊息到nova-conductor,nova-conductor負責資料庫訪問。
四、cinder
1、cinder架構及元件功能(畫圖)
(1)cinder-api:接收api請求,呼叫cinder-volume執行操作。
(2)message queue(rabbitmq):通過訊息佇列,實現程序間通訊和相互協作。
(3)cinder-scheduler:scheduler通過排程演算法選擇最合適的儲存節點建立volume。
(4)cinder-volume:管理volume的服務,與volume provider協同工作,管理volume的生命週期。執行cinder-volume服務的節點被稱作為儲存節點。
(5)volume provider:為volume提供物理儲存空間(建立volume)。
(6)database:cinder的資料需要存放在資料庫中,一般使用mysql。資料庫是裝在控制節點上的。
五、neutron
1、neutron架構及元件功能(畫圖)
(1)neutron server:對外提供openstack網路api,接收請求,並呼叫plugin處理請求。
(2)plugin:接收neutron server請求,呼叫agent處理請求。
(3)agent:接收plugin請求,負責在network provider上真正實現各種網路功能。
(4)network provider:提供網路服務的虛擬或者物理網路裝置,例如linux bridge、open vswitch虛擬交換機或者其他支援neutron的物理交換機。
(5)queue:負責各子服務之間的通訊。
(6)database:存放網路狀態資訊,包括network、subnet、port、router等。
2、neutron功能
neutron為整個openstack環境提供網路支援,包括二層交換、三層路由、負載均衡、防火牆和vpn等。
(1)二層交換:虛機是通過虛擬交換機連線到虛擬二層網路。neutron支援多種虛擬交換機,包括linux bridge和ovs。利用linux bridge和ovs,neutron除了可以建立傳統的vlan網路,還可以建立基於隧道技術的overlay網路,比如vxlan和gre(linux bridge目前只支援vxlan)。
(2)三層路由:虛機可以配置不同網段的ip,neutron的虛擬路由器實現虛機跨網段通訊。
(3)負載均衡:提供了將負載分發到多個虛機的能力。
3、neutron管理的網路資源
包括network、subnet、port
(1)network是乙個隔離的二層廣播域,neutron支援多種型別的network,包括:
a.local
b.flat
c.vlan
d.vxlan
e.gre
vlan:是乙個二層的廣播域,同一vlan中的虛機可以通訊,不同vlan只能通過虛擬路由器通訊。vlan網路可以跨節點。
vxlan:是基於隧道技術的overlay網路。vxlan網路通過唯一的vni與其他vxlan網路區分。vxlan中資料報會通過vni封裝成udp包進行傳輸。因為二層的包通過封裝在三層傳輸,能夠克服vlan和物理網路基礎設施的限制。
gre:與vxlan類似的一種overlay網路。主要區別在於使用ip包而非udp進行封裝。
(2)subnet是乙個ipv4或者ipv6的位址段。虛機的ip從subnet中分配,每個subnet需要定義ip位址的範圍和掩碼。
(3)port可以看做是虛擬交換機的乙個埠。port上定義了mac位址和ip位址,當虛機的虛擬網絡卡繫結到port時,port會將mac和ip分配給虛擬網絡卡。
4、plugin和agent
plugin分為兩類:core plugin和service plugin
core plugin維護neutron的network、subnet和port相關資源的資訊。對應的agent包括linux bridge、ovs。
sevice plugin提供路由、防火牆、負載均衡等服務。也有對應的agent。
ml2 core plugin
傳統的core plugin無法同時使用多種network provider,而ml2 core plugin可以解決這個問題,在不同節點上分別部署linux bridge agent、ovs agent。
Spring Cloud各元件總結歸納
spring cloud技術應用從場景上可以分為兩大類 潤物無聲類和獨挑大樑類。潤物無聲,融合在每個微服務中 依賴其它元件並為其提供服務。獨挑大樑,獨自啟動不需要依賴其它元件。每個元件都不是平白無故的產生的,是為了解決某一特定的問題而存在。特殊成員zipkin,之所以特殊是因為從jar包和包名來看它...
Spring Cloud各元件重試總結
spring cloud中的重試機制應該說是比較混亂的,不同的版本有一定區別,實現也不大一樣,好在spring cloud camden之後已經基本穩定下來,dalston中又進行了一些改進,詳情暫且不表。下面我們來詳細 筆者使用的版本是spring cloud dalston sr4,同樣適應於e...
各元件命令
kafka主題的增 刪 查 啟動kafka自帶的控制台生產者程序 或者 消費者程序 mysql 匯入sql檔案資料 source opt insurance.sql mysql uroot p default character set utf8mb4 insurance 備份mysql資料庫到乙個...