官术网_书友最值得收藏!

2.3 創建虛擬機實例

OpenStack 提供的一個重要的服務是計算,為用戶提供云主機。云主機就是虛擬機,在 OpenStack中稱為實例(Instance),下面示范通過Dashboard界面創建虛擬機實例的過程。首先登錄Dashboard界面,這里以系統提供的普通用戶 demo 身份登錄,其初始密碼需要到用戶目錄下面的 keystonerc_demo文件中去查找,建議登錄之后修改密碼。創建實例需要提前準備好鏡像、實例類型、安全組、密鑰對、虛擬網絡等要素。實例類型和虛擬網絡可以使用通過Packstack安裝OpenStack時系統提供的默認設置。

2.3.1 添加安全組訪問規則

虛擬機實例可以關聯到安全組,安全組中的訪問規則定義了允許哪些流量可以到達被關聯的實例。如果從外部網絡中通過SSH協議訪問實例,或者使用ping工具測試通信,就要修改默認的訪問規則,開放這些服務或端口。

進入Dashboard界面,單擊左側導航窗格中的“項目”節點,再依次單擊“網絡”和“安全組”節點,出現圖2-12所示的界面,顯示當前的安全組列表。這里有一個名為“default”的默認安全組,單擊該安全組條目右端的“管理規則”按鈕,出現圖2-13所示的界面,列出該安全組當前的管理安全組規則。

圖2-12 安全組列表

圖2-13 管理安全組規則列表

單擊“添加規則”按鈕彈出圖2-14所示的窗口,在“端口”字段中輸入“22”,然后單擊“添加”按鈕。這條規則將允許SSH訪問虛擬機。

再次打開添加規則窗口,如圖2-15所示,在“規則”字段中選擇“All ICMP”,然后單擊“添加”按鈕。這條規則將允許使用ping工具訪問虛擬機。

圖2-14 添加SSH訪問規則

圖2-15 添加ICMP訪問規則

2.3.2 創建或導入密鑰對

通過SSH訪問虛擬機實例,可以通過證書而不是密碼登錄,這就需要提供SSH憑據。而密鑰對(Key Pair)就是虛擬機啟動時被注入鏡像中的SSH憑據。要采用SSH方式以證書憑據登錄虛擬機實例,就需要創建或導入密鑰對,并在創建虛擬機實例時關聯該密鑰對。

在 Dashboard 界面中單擊左側導航窗格中的“項目”節點,再依次單擊“計算”和“密鑰對”節點,顯示當前的密鑰對列表,默認沒有任何密鑰對。單擊“創建密鑰對”按鈕,彈出圖2-16所示的窗口,為密鑰對命名(例中為“demo-key”,注意名稱中只能包含字母、空格或者破折號),再單擊“創建密鑰對”按鈕。創建新的密鑰對會注冊公鑰并下載私鑰(.pem文件),私鑰一般會自動下載到當前計算機中,注意保管SSH私鑰。新創建的密鑰對將出現在列表中,如圖2-17所示。

圖2-16 創建密鑰對

圖2-17 密鑰對列表

也可以根據需要導入密鑰對作為SSH證書。創建虛擬機實例時如果關聯該密鑰對,則密鑰對的公鑰將注入實例中,這樣用戶就可以使用密鑰對的私鑰來以SSH方式登錄實例,登錄用戶名取決所用的鏡像。

2.3.3 添加鏡像

鏡像(Image)是創建虛擬機實例的基礎。鏡像將特定的一系列文件按照規定的格式制作成一個單一的文件,以便于用戶下載和使用。創建虛擬機所有的鏡像是一個完整的操作系統。使用命令Packstack安裝OpenStack時,會自動提供一個名為“cirros”的鏡像,這是一個測試用的Linux系統鏡像。

用戶可以自行制作一個系統鏡像上傳到 OpenStack 云。為便于測試,建議從 RDO(Red Hat Enterprise Linux OpenStack Platform的社區版)網站上下載幾個專門為OpenStack預置的鏡像文件。例中下載Fedora 28 Cloud Base鏡像,它用于創建通用用途的虛擬機,筆者選擇的是Qcow2格式的鏡像。接下來通過添加鏡像功能將其上傳到云。

在Dashboard界面中單擊左側導航窗格中的“項目”節點,再依次單擊“計算”和“鏡像”節點,顯示當前的鏡像列表,默認有一個名為“cirros”的鏡像。單擊“創建鏡像”按鈕,彈出圖2-18所示的窗口,為鏡像命名(例中為“Fedora”),在“文件”字段中單擊“瀏覽”按鈕打開文件對話框,選擇已下載的鏡像文件,從“鏡像格式”下拉列表中選擇“QCOW 2-QEMU模擬器”,然后單擊“創建鏡像”按鈕。

新創建的鏡像上傳到云中,會出現在列表中,如圖2-19所示。我們可以根據需要進一步管理這些鏡像。

圖2-18 創建鏡像

圖2-19 鏡像列表

2.3.4 創建并運行虛擬機實例

在Dashboard界面中有兩種方式可以創建實例:一種是從鏡像列表中創建實例(Launch Instance);另一種是在實例列表中直接創建實例。下面分別示范這兩種方式。

1.從鏡像列表中創建實例

在 Dashboard 界面中打開鏡像列表,這里以“cirros”鏡像為例,單擊該鏡像右側的“啟動”按鈕,彈出圖2-20所示的界面,首先為它命名,并設置實例的數量(默認為1)。

單擊“源”,為實例設置源(用來創建實例的模板),如圖2-21所示,這里保持默認設置,以鏡像作為該實例的源,“創建新卷”欄處選擇“是”,實例使用具有持久性的存儲,如果選擇“否”,該實例將使用臨時性存儲。

單擊“實例類型”,由于這個鏡像很小,這里選擇系統資源最少的“m1.tiny”,如圖2-22所示。

單擊“網絡”,選擇實例所在的網絡,這里選擇已預置的私有網絡,如圖2-23所示。

其他選項保持默認設置,該實例會自動關聯安全組和分配密鑰對,最后單擊“創建實例”按鈕。

圖2-20 設置實例名稱和數量

圖2-21 設置實例的源

圖2-22 選擇實例類型

圖2-23 為實例選擇網絡

新創建的實例加入實例列表中,如圖2-24所示,顯示每個實例的基本信息和狀態。從“動作”菜單中可選擇多種操作指令,如創建快照、關閉實例、刪除實例、重啟實例等。

圖2-24 實例列表

可以通過單擊實例的名稱進入實例詳情界面,如圖2-25所示,“概況”標簽頁顯示了實例概況,除名稱等基本信息外,還包括規格、IP地址、安全組、元數據及連接的卷。

切換到“控制臺”標簽頁,可以對該實例進行交互操作。cirros鏡像的虛擬機實例可以通過用戶名“cirros”和密碼“cubswin:)”登錄,如圖2-26所示。如果控制臺無響應,則單擊圖中的灰色狀態欄。

另外,也可以在主機上使用命令行獲取該實例的VNC控制臺帶令牌(token)的統一資源定位符(Uniform Resource Locator,URL)地址,然后在瀏覽器中使用該URL臨時訪問實例的控制臺界面。例如,依次執行以下命令:

[root@node-a ~]# .keystonerc_demo # 通過OpenStack身份認證

[root@node-a ~(keystone_demo)]# nova get-vnc-console cirros novnc #獲取VNC控制臺URL

其中cirros是實例的名稱,也可以直接用實例的UUID。例中獲取的URL為:

http://192.168.199.21:6080/vnc_auto.html?token=a90a62bb-8b19-4623-945d-cfdb2b007ebe

圖2-25 顯示實例概況

圖2-26 實例控制臺

提示

訪問實例控制臺最常遇到的錯誤是“Failed to connect to server (code: 1006)”,原因一般是/etc/nova/nova.conf 配置文件中的 vnc 選項設置不當,vncserver_proxyclient_address應設置為主機節點的域名或IP地址,novncproxy_base_url中盡量使用IP地址以免在無DNS解析的情況下無法訪問vnc服務。筆者遇到的問題是vncserver_proxyclient_address設置為node-a.localdomain,該域名未做解析,解決的辦法有兩個,一是直接使用主機 IP 地址,二是在/etc/host 文件中加上一行語句“192.168.199.21 node-a nodea.localdomain”。

2.在實例列表中直接創建實例

在Dashboard界面中單擊左側導航窗格中的“項目”節點,再依次單擊“計算”和“實例”節點,顯示當前的實例列表。單擊“創建實例”按鈕,彈出相應的“創建實例”窗口,與上例操作類似,首先為該實例命名(例中為“fedora”),然后設置實例的源,如圖2-27所示,選擇“鏡像”作為實例的源,注意存儲卷大小默認為1GB,顯然不能滿足Fedora操作系統運行的需要,這里改為10GB,從可用的鏡像列表中選擇之前上傳的“Fedora”。

圖2-27 設置實例的源

單擊“實例類型”,由于這是Fedora操作系統鏡像,這里應至少選擇“m1.small”。單擊“網絡”,選擇實例所在的網絡,這里選擇內置的私有網絡。其他選項保持默認設置,會自動關聯安全組和密鑰對,最后單擊“創建實例”按鈕??梢源蜷_實例列表來查看新創建的實例的基本信息和狀態,如圖2-28所示。

圖2-28 實例列表

也可以進入實例詳情界面,進一步查看其信息,進入控制臺操作。不過Fedora操作系統鏡像并未提供登錄用戶名和密碼,可以使用SSH通過證書登錄,這將在下一節講解。

由于源設置創建新的卷,在創建實例的過程中同時創建一個卷??梢源蜷_卷列表查看(在“項目”節點下依次單擊“卷”和“卷”節點),如圖2-29所示,除了fedora實例的卷,還包括上一小節從鏡像啟動的cirros實例所創建的卷。

至此完成了兩臺虛擬機的創建,可以通過控制臺登錄cirros實例,使用ping工具分別測試路由器(例中地址為10.0.0.1)和fedora實例(例中地址為10.0.0.10)之間的連通性,如果成功,再進一步測試與外部網絡(例如192.168.199.1)的通信,如果失敗,則需要進一步調整網絡配置,以實現與外網的通信。例中測試過程如圖2-30所示。

圖2-29 卷列表

圖2-30 在控制臺中測試網絡通信

主站蜘蛛池模板: 水富县| 西乌| 恩施市| 辽阳县| 房产| 长武县| 滕州市| 花莲县| 博爱县| 青铜峡市| 略阳县| 仙桃市| 元朗区| 洛阳市| 富平县| 昌乐县| 修文县| 芮城县| 诸城市| 云阳县| 高邑县| 集贤县| 卫辉市| 钟山县| 石嘴山市| 阿坝| 连南| 张家川| 吉木萨尔县| 鄱阳县| 夏邑县| 逊克县| 呼伦贝尔市| 昌乐县| 吕梁市| 灵丘县| 福海县| 会理县| 宁都县| 满洲里市| 潞城市|