如何基于國(guó)產(chǎn)CPU的云平臺(tái)構(gòu)建容器管理平臺(tái)?(上篇)
隨著“中興事件”不斷升級(jí),引起了國(guó)人對(duì)國(guó)產(chǎn)自主可控技術(shù)的高度關(guān)注;本人作為所在單位的運(yùn)維工程師,也希望能找到一個(gè)穩(wěn)定、能兼容國(guó)產(chǎn)CPU的一整套架構(gòu)方案,來(lái)構(gòu)建IaaS平臺(tái)和PaaS平臺(tái),滿足單位對(duì)安全自主可控的需求。要基于全國(guó)產(chǎn)方式解決公司業(yè)務(wù)需求至少要在軟硬件層面滿足,而國(guó)內(nèi)基本都是基于x86解決方案,想找到滿足需求的國(guó)產(chǎn)化解決方案還是非常困難的事情。但筆者由于一個(gè)偶然的機(jī)會(huì),接觸到了國(guó)產(chǎn)的芯片廠商和云計(jì)算廠商,并得知他們已經(jīng)實(shí)現(xiàn)了全國(guó)產(chǎn)化的云計(jì)算平臺(tái),筆者也親自動(dòng)手體驗(yàn)了安裝部署該云計(jì)算平臺(tái),并在其之上安裝部署了容器平臺(tái),以下是筆者的分享。
***節(jié) 基于國(guó)產(chǎn)CPU的服務(wù)器
縱觀國(guó)內(nèi)能用于商用國(guó)產(chǎn)CPU服務(wù)器也沒(méi)幾家真實(shí)能用的;有的是基于3B1500國(guó)產(chǎn)商用28納米8核處理***主頻達(dá)1.5GHz;通過(guò)多方查閱相關(guān)資料目前性能無(wú)法滿足云平臺(tái)需求,而且還不支持虛擬化。
一個(gè)偶然機(jī)會(huì)參加2018年貴州大數(shù)據(jù)博覽會(huì),參會(huì)過(guò)程中發(fā)現(xiàn)一個(gè)有意思的事情,就是在阿里云展臺(tái)看到國(guó)產(chǎn)云平臺(tái)+國(guó)產(chǎn)芯片宣傳字樣。
于是上前跟現(xiàn)場(chǎng)的工作人員進(jìn)行簡(jiǎn)單的溝通,了解到國(guó)產(chǎn)CPU是由華芯通設(shè)計(jì)開(kāi)發(fā),這顆芯片內(nèi)置48顆物理核心,單核心2.6GHz,64Bit、支持虛擬化!沒(méi)想到這顆CPU居然支持虛擬化,看來(lái)距離我的想法又進(jìn)一步,起碼已經(jīng)有硬件可以實(shí)現(xiàn)了。還了解到目前已經(jīng)有國(guó)產(chǎn)云平臺(tái)具備商用環(huán)境;名字叫ZStack for Alibaba Cloud,據(jù)工作人員介紹目前已有業(yè)務(wù)系統(tǒng)運(yùn)行在基于華芯通CPU的云平臺(tái)上,云平臺(tái)就是ZStack。熱心的工作人員帶我去華芯通的專柜進(jìn)行詳細(xì)參觀。
看到實(shí)物那一刻,我發(fā)現(xiàn)這個(gè)跟x86架構(gòu)的服務(wù)器區(qū)別并不大,之前一直以為它是一個(gè)類似路由器這樣的小盒子。沒(méi)想到ARM服務(wù)器工藝已和x86服務(wù)器自造工藝無(wú)太大差別。
第二節(jié) 國(guó)產(chǎn)云平臺(tái)
ZStack作為國(guó)內(nèi)為數(shù)不多的自研云平臺(tái),根據(jù)官網(wǎng)信息已發(fā)布基于國(guó)產(chǎn)CPU架構(gòu)的版本,那么完全可以實(shí)現(xiàn)基于國(guó)產(chǎn)CPU架構(gòu)來(lái)構(gòu)建國(guó)產(chǎn)云平臺(tái)。
ZStack架構(gòu):
這架構(gòu)圖摘自他們的產(chǎn)品白皮書(shū),從架構(gòu)上看整個(gè)邏輯還是比較清晰,各組件依賴度并不高,不會(huì)因?yàn)楣芾砜刂乒?jié)點(diǎn)故障而影響業(yè)務(wù)系統(tǒng)。經(jīng)過(guò)仔細(xì)研究ZStack架構(gòu)發(fā)現(xiàn)以下特點(diǎn):
全異步架構(gòu):異步消息、異步方法、異步HTTP調(diào)用
無(wú)狀態(tài)服務(wù):?jiǎn)未握?qǐng)求不依賴其他請(qǐng)求
無(wú)鎖架構(gòu):一致性哈希算法。
進(jìn)程內(nèi)微服務(wù):微服務(wù)解耦。
再看看ZStack的功能架構(gòu)圖:
從圖里可以發(fā)現(xiàn),服務(wù)之間的交互統(tǒng)一走消息隊(duì)列,整個(gè)拓?fù)浣Y(jié)構(gòu)不再緊密,實(shí)現(xiàn)星狀的架構(gòu),各服務(wù)之間只有消息的交互,服務(wù)之間基本獨(dú)立,添加或者刪除某個(gè)服務(wù)不會(huì)影響整個(gè)架構(gòu)(只會(huì)失去某些功能)。
回到文章的主題上,了解到以上信息后,我們決定使用華芯通CPU+ZStack國(guó)產(chǎn)化云平臺(tái)來(lái)實(shí)現(xiàn)容器平臺(tái)管理方案敲定后,接下來(lái)就是走借測(cè)流程。
通過(guò)之前展會(huì)聯(lián)系的華芯通負(fù)責(zé)人幫忙,在等了2、3個(gè)星期之后,機(jī)器寄到了單位。
上圖是他們的工程機(jī),但做工已經(jīng)非常精細(xì),完全不輸給主流大廠的X86服務(wù)器。接下來(lái)先部署云平臺(tái),之前提到的ZStack是國(guó)產(chǎn)化云計(jì)算平臺(tái)的先行者,核心引擎也是完全開(kāi)源的,筆者通過(guò)ZStack的官方網(wǎng)站,下載了他們的iso系統(tǒng),并根據(jù)用戶手冊(cè)的圖文教程做了燒錄,不得不說(shuō),整個(gè)文檔做的非常清晰,很快就完成了準(zhǔn)備工作,下面就按照文檔進(jìn)入安裝過(guò)程。
3、安裝云平臺(tái)
3.1啟動(dòng)ARM服務(wù)器,從U盤(pán)啟動(dòng)
通過(guò)Console連接看到如下一些信息,這是ARM服務(wù)器在進(jìn)行自檢。
直到出現(xiàn)以下信息:
按Delete或者ESC建進(jìn)入BIOS設(shè)置。
3.2 ARM服務(wù)器BIOS基本設(shè)置
3.2.1修改時(shí)間
3.2.2快速選擇引導(dǎo)設(shè)備
選擇引導(dǎo)設(shè)備后按回車鍵,快速引導(dǎo)。
3.2.3使用基于VNC方式安裝ZStack
當(dāng)選擇引導(dǎo)設(shè)備后,將進(jìn)入啟動(dòng)項(xiàng)選擇界面,如下圖所示:
選擇using VNC模式進(jìn)行引導(dǎo)啟動(dòng);
選擇usingVNC模式引導(dǎo)啟動(dòng),即可實(shí)現(xiàn)通過(guò)VNC圖形模式進(jìn)行安裝;
表示啟動(dòng)VNC服務(wù),并自動(dòng)從DHCP工具獲取IP地址同時(shí)自動(dòng)分配默認(rèn)VNC端口5901;當(dāng)出現(xiàn)這個(gè)界面即可使用VNC viewer客戶端進(jìn)行連接。
3.2.4安裝設(shè)置
A. 選擇安裝模式
目前ZStack For ARM有3種安裝模式分別對(duì)應(yīng)為:
•企業(yè)版管理節(jié)點(diǎn)模式
• 計(jì)算節(jié)點(diǎn)模式
• 專家模式
可根據(jù)實(shí)施規(guī)劃進(jìn)行選擇部署,選擇建議:
Ø 如果在實(shí)施方案中將管理節(jié)點(diǎn)獨(dú)立,則***次安裝時(shí)應(yīng)選擇管理節(jié)點(diǎn)模式;
Ø 如果用承載云主機(jī),則安裝模式為計(jì)算節(jié)點(diǎn);
根據(jù)實(shí)際情況選擇好對(duì)應(yīng)的安裝模式,然后點(diǎn)擊Done按鈕;
B. 配置磁盤(pán)分區(qū):
Ø 選擇磁盤(pán):
選擇用于安裝ZStack的系統(tǒng)盤(pán)。
Ø 配置分區(qū)
Ø 自動(dòng)分區(qū)。
下面就分區(qū)模式進(jìn)行說(shuō)明:
分區(qū)模式有UEFI 模式和Legacy模式兩種,應(yīng)與BIOS設(shè)置的引導(dǎo)模式一致。
▬ UEFI 模式
/boot:創(chuàng)建分區(qū) 1GB
/boot/efi:創(chuàng)建分區(qū) 500MB
swap(交換分區(qū)):創(chuàng)建分區(qū) 32GB
/(根分區(qū)):配置剩下容量
Ø 網(wǎng)絡(luò)設(shè)置:
選擇需要修改的網(wǎng)卡,點(diǎn)擊Configure按鈕進(jìn)行配置;
設(shè)置密碼并開(kāi)始安裝:
各模式安裝部署步驟都大同小異,官網(wǎng)可以直接下載用戶手冊(cè)。安裝完后的Web UI,非常簡(jiǎn)潔大方,整個(gè)安裝過(guò)程超級(jí)簡(jiǎn)單,以前一直都是使用OpenStack的,而這回使用ZStack 不到30分鐘部署成功,1個(gè)小時(shí)內(nèi)3個(gè)節(jié)點(diǎn)全部部署成功,還順帶初始化了環(huán)境。
安裝部署結(jié)束后,可以看到還有網(wǎng)絡(luò)拓?fù)涔δ?/p>
安裝總結(jié):
底層硬件是ARM服務(wù)器,云平臺(tái)底層也是基于ARM64位的系統(tǒng)。安裝部署超級(jí)方便,管理控制層與業(yè)務(wù)層完全獨(dú)立,就是說(shuō)如果管控節(jié)點(diǎn)宕掉,根本就不影響業(yè)務(wù)系統(tǒng)的正常運(yùn)行,這一點(diǎn)是OpenStack無(wú)法實(shí)現(xiàn)的。在測(cè)試過(guò)程中嘗試各種斷電關(guān)機(jī)測(cè)試,整個(gè)平臺(tái)運(yùn)行依然不受影響,穩(wěn)定性非常高。目前在ZStack For ARM 云平臺(tái)上輕松跑了16個(gè)ARM架構(gòu)的云主機(jī)。