您好,登錄后才能下訂單哦!
一、keystone服務概念
Keystone被組織為在一個或多個端點上公開的一組內部服務。其中許多服務由前端以組合方式使用。例如,身份驗證調用將使用Identity服務驗證用戶/項目憑據,并在成功時創建并返回帶有令牌服務的令牌。
Identity服務提供身份驗證憑據驗證以及有關用戶 和組的數據。在基本情況下,此數據由Identity服務管理,允許它還處理與此數據關聯的所有CRUD操作。在更復雜的情況下,數據由權威后端服務管理。例如,身份服務充當LDAP的前端。在這種情況下,LDAP服務器是真實的來源,身份服務的作用是準確地傳遞該信息。
Users表示單個API使用者。用戶本身必須由特定域擁有,因此所有用戶名不是全局唯一的,而是僅對其域唯一。
Groups是表示用戶集合的容器。組本身必須由特定域擁有,因此所有組名稱不是 全局唯一的,而是僅對其域唯一。
資源服務提供有關項目和域的數據。
Projects代表ownershipOpenStack 的基本單元,因為OpenStack中的所有資源都應歸特定項目所有。項目本身必須由特定域擁有,因此所有項目名稱不是 全局唯一的,但對于其域是唯一的。如果未指定項目的域,則將其添加到默認域。
Domains是項目,用戶和組的高級容器。每個都歸一個域所有。每個域定義一個名稱空間,其中存在API可見的名稱屬性。Keystone提供了一個默認域名,名稱為“默認”。
在Identity v3 API中,屬性的唯一性如下:
域名。所有領域的全球獨特性。
角色名稱。在擁有的域內獨一無二。
用戶名。在擁有的域內獨一無二。
項目名。在擁有的域內獨一無二。
團隊名字。在擁有的域內獨一無二。
由于其容器架構,域可以用作委派OpenStack資源管理的方式。如果授予適當的分配,則域中的用戶仍可以訪問另一個域中的資源。
Assignment服務提供有關角色和角色分配的數據。
Roles規定最終用戶可以獲得的授權級別。角色可以在域或項目級別授予。可以在單個用戶或組級別分配角色。角色名稱在擁有域中是唯一的。
一個3元組,有一個Role,一個Resource和一個Identity。
一旦用戶的憑證已經過驗證,令牌服務就會驗證和管理用于驗證請求的令牌。
二、登陸并修改openstack管理員密碼
在完成openstack搭建后,按照http://serverip/dashboard/ 登陸,登陸提示會需要admin管理員賬戶密碼。默認密碼保存在keystonerc_admin 文件
cat keystonerc_admin
export OS_PASSWORD后面就是默認密碼,后進入dashboard界面登陸
登陸進去后,可以在設置修改管理員密碼
完成后,同時要修改 keystonerc_admin文件中export OS_PASSWORD后密碼,然后按照如下命令配置生效
source keystonerc_admin #重新加載
注意,admin用戶是管理員,可以擁有整個資源的權限,默認分配到admin的項目組中,所以在管理界面修改完成管理員密碼后必須修改keystonetc_admin的文件的中的密碼,不然會導致其他組件服務認證失敗
三、創建項目與用戶
3.1創建項目
首先創建一個項目,在身份管理中點擊項目
創建項目名稱為test-cloud,域信息和域ID因為是測試環境,都保持默認
項目成員為登陸云服務的租戶名稱,可以后期添加,目前保持默認,配額是限制該項目資源的使用,測試環境下保持默認即可
點擊完成創建,即可創建好項目test_cloud,可以作為vdc(虛擬數據中心)提供給租戶使用
3.2創建用戶
為test_cloud創建一個管理員,負責分配資源,名稱為vdc_admin。在身份驗證-用戶中創建,如下所示:
說明:
1、選擇項目test_cloud代表使用此資源
2、選擇角色_member_
然后再以vdc_admin登陸openstack,可以看到可獲取的資源的明顯不同
四、創建外部網絡
4.1 openstack中網絡概念
在openstack中,所有的網絡服務都是由neutron實現。openstack官方對neutron中描述如下:
OpenStack網絡(neutron)管理OpenStack環境中所有虛擬網絡基礎設施(VNI),物理網絡基礎設施(PNI)的接入層。OpenStack網絡允許租戶創建包括像 firewall, :term:`load balancer`和 :term:`virtual private network (×××)`等這樣的高級虛擬網絡拓撲。
網絡服務提供網絡,子網以及路由這些對象的抽象概念。每個抽象概念都有自己的功能,可以模擬對應的物理設備:網絡包括子網,路由在不同的子網和網絡間進行路由轉發。
對于任意一個給定的網絡都必須包含至少一個外部網絡。不像其他的網絡那樣,外部網絡不僅僅是一個定義的虛擬網絡。相反,它代表了一種OpenStack安裝之外的能從物理的,外部的網絡訪問的視圖。外部網絡上的IP地址可供外部網絡上的任意的物理設備所訪問
外部網絡之外,任何 Networking 設置擁有一個或多個內部網絡。這些軟件定義的網絡直接連接到虛擬機。僅僅在給定網絡上的虛擬機,或那些在通過接口連接到相近路由的子網上的虛擬機,能直接訪問連接到那個網絡上的虛擬機。
如果外部網絡想要訪問實例或者相反實例想要訪問外部網絡,那么網絡之間的路由就是必要的了。每一個路由都配有一個網關用于連接到外部網絡,以及一個或多個連接到內部網絡的接口。就像一個物理路由一樣,子網可以訪問同一個路由上其他子網中的機器,并且機器也可以訪問路由的網關訪問外部網絡。
另外,你可以將外部網絡的IP地址分配給內部網絡的端口。不管什么時候一旦有連接連接到子網,那個連接被稱作端口。你可以給實例的端口分配外部網絡的IP地址。通過這種方式,外部網絡上的實體可以訪問實例.
neutron利用了linux重要網絡技術,相關概念如下:
bridge:網橋,Linux中用于表示一個能連接不同網絡設備的虛擬設備,linux中
傳統實現的網橋類似一個hub設備,而ovs管理的網橋一般類似交換機。
br-int:bridge-integration,綜合網橋,常用于表示實現主要內部網絡功能的網
橋。
br-ex:bridge-external,外部網橋,通常表示負責跟外部網絡通信的網橋。
GRE:General Routing Encapsulation,一種通過封裝來實現隧道的方式。在
openstack中一般是基于L3的gre,即original pkt/GRE/IP/Ethernet
VETH:虛擬ethernet接口,通常以pair的方式出現,一端發出的網包,會被另
一端接收,可以形成兩個網橋之間的通道。
qvb:neutron veth, Linux Bridge-side
qvo:neutron veth, OVS-side
TAP設備:模擬一個二層的網絡設備,可以接受和發送二層網包。
TUN設備:模擬一個三層的網絡設備,可以接受和發送三層網包。
iptables:Linux 上常見的實現安全策略的防火墻軟件。
Vlan:虛擬 Lan,同一個物理 Lan 下用標簽實現隔離,可用標號為1-4094。
VXLAN:一套利用 UDP 協議作為底層傳輸協議的 Overlay 實現。一般認為作
為 VLan 技術的延伸或替代者。
namespace:用來實現隔離的一套機制,不同 namespace 中的資源之間彼此
不可見。
Neutron管理下面的實體:
網絡:隔離的 L2 域,可以是虛擬、邏輯或交換。
子網:隔離的 L3 域,IP 地址塊。其中每個機器有一個 IP,同一個子網的主機彼此 L3 可見。
端口:網絡上虛擬、邏輯或交換端口。 所有這些實體都是虛擬的,擁有自動生成的唯一標示id,支持CRUD功能,并在數據庫中跟蹤記錄狀態。
網絡隔離的 L2 廣播域,一般是創建它的用戶所有。用戶可以擁有多個網絡。網絡是最基礎的,子網和端口都需要關聯到網絡上。網絡上可以有多個子網。同一個網絡上的主機一般可以通過交換機或路由器連通起來。
子網隔離的 L3 域,子網代表了一組分配了 IP 的虛擬機。每個子網必須有一個 CIDR 和關聯到一個網絡。IP 可以從 CIDR 或者用戶指定池中選取。子網可能會有一個網關、一組 DNS 和主機路由。不同子網之間 L3 是互相不可見的,必須通過一個三層網關(即路由器)經過 L3 上進行通信。
端口可以進出流量的接口,往往綁定上若干 MAC 地址和 IP 地址,以進行尋址。一般為虛擬交換機上的虛擬接口。虛擬機掛載網卡到端口上,通過端口訪問網絡。當端口有 IP 的時候,意味著它屬于某個子
邏輯概念如下圖所示:
大致架構如下:(VLAN模式)
由于本次采用allinone的部署,控制節點和網絡節點合并在一起,同時,測試環境下只有一個網卡。
4.2將neutron與外部網絡連接
neuntron主要是通過br-ex與外部網絡連接通訊
首先將/etc/sysconfig/network-scripts/ifcfg-ens192(實際情況物理網卡名稱可能不同,如kvm中為eth0),復制為/etc/sysconfig/network-scripts/ifcfg-br-ex,
編輯/ etc / sysconfig / network-scripts / ifcfg-br-ex,重點修改如下內容
DEVICE=br-ex DEVICETYPE=ovs TYPE=OVSBridge BOOTPROTO=static IPADDR=172.31.208.100 # 這個ip地址就是ens01網卡的ip地址 NETMASK=255.255.255.0 GATEWAY=192.168.122.1 DNS1=192.168.122.1 ONBOOT=yes
然后修改/etc/sysconfig/network-scripts/ifcfg-ens192
DEVICE=ens192 TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=br-ex ONBOOT=yes
完成修改保存后,重啟網絡服務
systemctl restart network
現在,使用Neutron創建外部網絡。
. keystonerc_admin neutron net-create external_network --provider:network_type flat --provider:physical_network extnet --router:external
然后我們就可以在openstack dashbord中看到創建好的外部網路
4.2 配置子網
使用之間創建好的vdc_admin登陸,開始創建網絡,名稱為public
然后定義子網private_network網段為分配私網網段,192.168.1.0/24
下一步,定義子網dhcp地址范圍和dns信息,這里不用添加主機路由
完成私網網絡配置后,還需要配置一個路由器,虛擬機實例分配到私網地址后,通過該路由器進行snat到exernal網絡,再到外部物理網絡
然后點擊新建的路由器router,添加接口
此時就完成了路由器的添加。
此時查看網絡拓撲,如下所示:
可以看,虛擬網絡public已經通過虛擬機路由器與外部網絡是連通的了
配置完成,可以再命令行中驗證創建的網絡情況
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。