openstack--8--控制節點部署Dashboard


Horizon介紹


 

Dashboard服務,這里具體的產品就是Horizon
1、它提供一個Web界面操作Openstack的系統
2、使用Django框架基於Openstack API開發
3、支持將Session 存儲在DB、Memcached
4、支持集群

 

安裝和配置Horizon


 

1、安裝軟件包
[root@linux-node1 ~]# yum install openstack-dashboard -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * epel: mirror01.idc.hinet.net
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Package 1:openstack-dashboard-9.0.1-1.el7.noarch already installed and latest version
Nothing to do
[root@linux-node1 ~]# 

  

2、更改配置文件
/etc/openstack-dashboard/local_settings
1、把這里改成控制節點的IP,下面的URL的%s調用了它
2、把URL的版本改成v3
3、把角色改成user,目前我們只有user和admin兩種角色,通過openstack role list可以查看
[root@linux-node1 ~]# vim /etc/openstack-dashboard/local_settings
[root@linux-node1 ~]# 

 

30行,允許訪問的主機改成*,表示所有,逗號留着,表示列表
 

 

55行,默認如下
改成如下
配置API版本,去掉除了56行的注釋

 

 
 

啟用對域的支持
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

通過儀表盤創建用戶時的默認域配置為 default :
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"

 

 
如果您選擇網絡參數1,禁用支持3層網絡服務:
需要把下面的True都改成false
OPENSTACK_NEUTRON_NETWORK = {
    ...
    'enable_router': False,
    'enable_quotas': False,
    'enable_distributed_router': False,
    'enable_ha_router': False,
    'enable_lb': False,
    'enable_firewall': False,
    'enable_vpn': False,
    'enable_fip_topology_check': False,
}

改完之后如下

 

 
配置時區,改為如下
TIME_ZONE = "Asia/Shanghai"

 

3、重啟服務
[root@linux-node1 ~]# systemctl restart httpd.service memcached.service
[root@linux-node1 ~]# 

[root@linux-node1 ~]# systemctl reload httpd
[root@linux-node1 ~]# 

 

 

網頁登錄和操作


 

瀏覽器輸入
http://192.168.56.11/dashboard
打開如下界面

先用普通用戶登錄

 

 

 

 可以通過此頁面登錄雲主機控制台

 

 

  點擊切換標簽,可以看到網絡和實例名字

 

 
 
使用admin用戶登錄

 

 

 

通過頁面創建雲主機
再次使用demo用戶登錄,刪除雲主機

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
點擊啟動實例

 

 

可以登錄控制台

 

 

 

虛擬機的創建流程介紹


 

第一階段
用戶通過keystone認證,獲得一個token,就可以請求別的服務了
比如創建虛擬機。nova-api拿着這個token去keystone對比,是否合法
然后nova-api把創建虛擬機這個事件寫到庫里
第一階段完成了


第二階段是nova組件之間的交互
通過rabbitmq消息隊列,nova-api把創建虛擬機消息發到消息隊列里
其它的nova-compute,nova-conductor以及nova-scheduler是訂閱了消息隊列這個主題的,不是api主動通知它們,而是它們監聽消息隊列自己取消息
nova-scheduler先過濾符合條件的計算節點,然后根據權重選擇一個最佳的節點
計算權重有一個默認算法,資源使用率低的先創建。以及從數據庫里取計算節點數據,然后把計算結果存到數據庫里。
其實它計算完畢,還會發消息發送到消息隊列里,然后nova-compute從消息隊列里取事件(上面圖用雙向表示了,其實可以再分解詳細的)
nova-compute取到創建虛擬機事件,要去數據庫里取創建虛擬機的屬性(配置等)(圖上第9步)
這個圖是老圖了,因為現在M版的nova-compute不能直接連接數據庫的,其實是通過nova-conductor連接數據庫的
由此可以看到消息隊列的樞紐中心作用。它掛了不影響現網,但是影響創建虛擬機

第三階段
最后獲取鏡像,網絡,存儲資源,分別校驗。nova-compute帶着token請求的。
比如鏡像,它拿着這個token去keystone驗證,有沒有效。成功后才獲得鏡像許可

第四階段
nova-compute通過api調用libvirt創建kvm,同時nova-api不停的輪詢查詢數據庫,看kvm的狀態,更新狀態給消息隊列,然后dashboard取得最新數據狀態
圖里沒畫出來

 
 


免責聲明!

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



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