你可能已經(jīng)知道vSphere集成容器(以下簡稱VIC)在vSphere部署中能夠像運行虛擬機那樣運行容器—但這只是開始。關(guān)于容器還有很多要了解的地方,尤其是如何在生產(chǎn)環(huán)境中使用容器。本文我們進一步了解如何部署兩個VIC組件—Harbor和Admiral。
Harbor是企業(yè)級容器注冊表。簡單來說,開發(fā)人員將容器鏡像存儲在此處,這樣運營團隊就能夠在測試及生產(chǎn)環(huán)境中部署容器了。Admiral是容器圖形管理門戶。Harbor、Admiral構(gòu)建在vSphere 6.5設(shè)備內(nèi)。為使用Harbor和Admiral,用戶必須部署全新的VMware VIC設(shè)備,這兩個組件都依賴SSL認證。
創(chuàng)建一個Harbor設(shè)備
證書與系統(tǒng)名是緊耦合的;證書用于證明服務(wù)器所具備的屬性。簡單起見,我正在使用的服務(wù)器harbor在網(wǎng)絡(luò)中稱為d.local。我設(shè)置了一個靜態(tài)的IP地址以及一個DNS A記錄。該設(shè)備的DNS名是harbor.d.local.
為創(chuàng)建該設(shè)備,首先必須為Harbor實例生成一個SSL證書。過去,我嘗試避免生成證書,但這帶來的麻煩要比生成受信證書多得多。為生成SSL證書,需要安裝OpenSSL。在文件名中包含服務(wù)器的DNS因為這樣就能夠更輕松地識別哪個服務(wù)器在使用哪個文件。使用如下命令生成一個私有秘鑰以及證書簽名請求:
openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.d.local.key -out harbor.d.local.csr
該命令將會提示你為私有key以及證書簽名請求提供一個通用名。改名字應(yīng)該是你在瀏覽器中訪問Harbor頁面的名字。在實驗中,我使用了DNS名harbor.d.local.該命令將會生成私有key以及證書簽名請求,如圖A所示。
圖A.生成私有key以及證書簽名請求
使用證書簽名請求向認證中心請求證書并下載請求認證文件。確保請求web服務(wù)器證書并下載一個使用Base64編碼生成的證書。我將證書文件重命名為harbor.d.local.crt以與命名規(guī)則保持一致。
接下來,部署VMware VIC設(shè)備。設(shè)置主機名以與證書通用名保持一致。我還設(shè)置了一個靜態(tài)IP地址以與DNS條目相匹配。
證書文件(harbour.d.local.crt)以及私有key文件(harbour.d.local.key)都是文本文件。如圖B所示,我們需要粘貼其內(nèi)容到VMware VIC虛擬設(shè)備部署向?qū)е小N覀冃枰狧arbor注冊表,因此你也應(yīng)該使用相同的證書及key文件用于管理門戶以及文件服務(wù)器。
圖B. SSL證書以及認證key文件
部署完設(shè)備后,加電啟動即可。系統(tǒng)啟動完成后,在瀏覽器中使用HTTPS訪問Harbor。在實驗中,URL是https://harbor.d.local。如果證書有問題,你將會收到一個錯誤信息,否則web頁面將會正常加載。Harbor應(yīng)該會在VIC的注冊標簽下顯示組織的容器注冊表。
現(xiàn)在你可以將用戶以及項目目錄提供給管理Docker鏡像的開發(fā)人員。
使用Admiral管理容器和虛擬容器主機部署工具以及Harbor一樣,Admiral構(gòu)建在VMware VIC設(shè)備中。Admiral是一個管理容器的web門戶。在配置Admiral時你可以使用與Harbor管理門戶相同的證書信息。在Harbor頁面頂部輸入管理鏈接訪問Admiral。在我的實驗中,可以通過https://harbor.d.local:8282訪問Admiral。
為添加一個VCH,點擊添加主機然后輸入VCH的詳細信息。將連接端口修改為2376,不要使用默認的443。為認證選擇默認的放置區(qū)以及默認的證書。
圖C.添加虛擬容器主機
輸入所有的值,點擊驗證然后確認以接受證書。如果容器主機使用的是由認證中心頒發(fā)的證書,那么不需要再次接受證書,因為證書已經(jīng)受信了。
一旦VMware VIC驗證通過,點擊添加按鈕查看容器主機列表。這些主機不一定是VIC主機;它們可以是運行Docker引擎的任何主機。資源視圖顯示所有正在運行以及停止的容器。鼠標定位到某個容器時,你可以通過點擊右鍵直接啟動、停止或者刪除容器。
鼠標單擊容器查看有關(guān)該容器的更詳細的信息,比如資源使用以及配置的日志。我沒有為Admiral容器配置任何日志,所以它沒有使用很多資源。
圖D.容器使用、屬性以及日志示例
通過模板視圖可以發(fā)現(xiàn)能夠部署的容器鏡像。如果還沒有運行Admiral,那么可以通過該窗口部署Admiral。點擊容器鏡像選項下的配置按鈕下載該容器鏡像并在其中一個VCH中加載容器。
現(xiàn)在有一些VCH列在Admiral與Harbor中,開發(fā)人員可以在其中部署Docker鏡像,這時距離像部署虛擬機那樣部署容器又更近了一步。