在本章節(jié)中,您將會(huì)把游戲應(yīng)用部署到CCE云容器引擎中,您需要執(zhí)行以下操作:
創(chuàng)建集群:集群是運(yùn)行應(yīng)用的邏輯分組,包含一組云服務(wù)器資源,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一臺(tái)云服務(wù)器。首次使用CCE時(shí),您需要?jiǎng)?chuàng)建一個(gè)初始集群,并添加一個(gè)節(jié)點(diǎn)。
部署mysql數(shù)據(jù)庫(kù):通過(guò)CCE的容器模板,可一鍵式部署專業(yè)的分布式mysql服務(wù)。
部署wow-auth認(rèn)證系統(tǒng):您將會(huì)把wow-auth認(rèn)證系統(tǒng)部署到CCE云容器引擎中。
部署wow-world游戲服務(wù)器:您將會(huì)把wow-world游戲服務(wù)器部署到CCE云容器引擎中。
創(chuàng)建集群
集群是運(yùn)行應(yīng)用的邏輯分組,包含一組云服務(wù)器資源,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一臺(tái)云服務(wù)器。首次使用CCE時(shí),您需要?jiǎng)?chuàng)建一個(gè)初始集群,并添加一個(gè)節(jié)點(diǎn)。
創(chuàng)建集群前,您需要?jiǎng)?chuàng)建虛擬私有云和密鑰對(duì)。
說(shuō)明:
若您已有虛擬私有云和密鑰對(duì),可重復(fù)使用,無(wú)需多次創(chuàng)建。
表1準(zhǔn)備環(huán)境列表
登錄CCE控制臺(tái),在總覽頁(yè)面,單擊右側(cè)界面的“購(gòu)買(mǎi)Kubernetes集群”。
輸入集群名稱cluster-wow,其余參數(shù)保持默認(rèn),單擊“下一步”。
配置添加節(jié)點(diǎn)的參數(shù)。除節(jié)點(diǎn)規(guī)格、網(wǎng)絡(luò)和登錄外,其余參數(shù)保持默認(rèn)即可。
節(jié)點(diǎn)規(guī)格:CPU為4核,內(nèi)存為8GB。
說(shuō)明:
此規(guī)格為部署該游戲demo的最小資源,只能裝一個(gè)游戲服務(wù)器,如需要部署更多服務(wù)器,需要擴(kuò)容節(jié)點(diǎn)或選擇更高規(guī)格的節(jié)點(diǎn)。
彈性IP:選擇“自動(dòng)創(chuàng)建”,將節(jié)點(diǎn)設(shè)為可被互聯(lián)網(wǎng)訪問(wèn),其余參數(shù)保持默認(rèn)。
登錄方式:選擇表1中已創(chuàng)建的密鑰對(duì),用于登錄節(jié)點(diǎn)的密鑰。
單擊“立即購(gòu)買(mǎi)”。查看訂單詳情無(wú)誤后,單擊“提交”。
集群創(chuàng)建預(yù)計(jì)需要6-10分鐘。請(qǐng)根據(jù)界面提示查看集群創(chuàng)建過(guò)程。
單擊“資源管理>節(jié)點(diǎn)管理”,查看到節(jié)點(diǎn)狀態(tài)為“可用”,彈性IP已綁定。
部署mysql數(shù)據(jù)庫(kù)
通過(guò)CCE的容器模板,可一鍵式部署專業(yè)的分布式mysql服務(wù)。在本例游戲demo中,您只需為wow-auth認(rèn)證系統(tǒng)和wow-world游戲服務(wù)器申請(qǐng)一個(gè)mysql服務(wù)。若是真實(shí)業(yè)務(wù),請(qǐng)根據(jù)業(yè)務(wù)需求來(lái)部署數(shù)據(jù)庫(kù)服務(wù)。
登錄CCE控制臺(tái)。
在左側(cè)導(dǎo)航欄中,單擊“模板市場(chǎng)>示例模板”,單擊“mysql-ndb”下的“安裝”。
說(shuō)明:
單擊mysql-ndb可以查看該模板的簡(jiǎn)介和架構(gòu)。
圖1安裝mysql-ndb
設(shè)置數(shù)據(jù)庫(kù)的基本信息。
模板實(shí)例名稱:自定義名稱,例如為wow-mysql。
當(dāng)前模板:mysql-ndb,不可修改。
模板版本:1.0.0。
部署集群:選擇創(chuàng)建集群中創(chuàng)建的集群。
命名空間:根據(jù)業(yè)務(wù)需要選擇命名空間。
部署工作負(fù)載規(guī)格:選擇1X。
數(shù)據(jù)庫(kù)名稱:clustertest。
數(shù)據(jù)庫(kù)普通用戶名稱:testuser。此名稱是在鏡像中設(shè)定好的。
數(shù)據(jù)庫(kù)普通用戶登錄密碼:不能為空,請(qǐng)?jiān)O(shè)置您的密碼并妥善保存。
管理員權(quán)限密碼:不能為空,請(qǐng)?jiān)O(shè)置您的密碼并妥善保存。
單擊“一鍵安裝”,查看訂單無(wú)誤后,單擊“提交訂單”。
單擊“返回模板實(shí)例列表”,在“模板實(shí)例”中可查看到wow-mysql應(yīng)用已安裝成功。
單擊wow-mysql名稱,可看到mysql的3個(gè)實(shí)例,待狀態(tài)為“運(yùn)行中”,表示mysql創(chuàng)建成功。大約需要5分鐘創(chuàng)建成功,請(qǐng)耐心等待。
wow-mysql-mgmd:MySQL的管理工作負(fù)載,主要作用是管理mysql的其它組件。
wow-mysql-ndbd:負(fù)責(zé)存儲(chǔ)數(shù)據(jù)。
wow-mysql-mysqld:是使用NDBCLUSTER存儲(chǔ)引擎的傳統(tǒng)MySQL服務(wù)器。該實(shí)例用于從數(shù)據(jù)應(yīng)用層訪問(wèn)MySQL應(yīng)用數(shù)據(jù)。
單擊wow-mysql-mysqld名稱,進(jìn)入詳情頁(yè)面。單擊“訪問(wèn)方式”頁(yè)簽,獲取并記錄“訪問(wèn)地址”。
圖2獲取訪問(wèn)地址
部署wow-auth認(rèn)證系統(tǒng)
您將會(huì)把wow-auth認(rèn)證系統(tǒng)部署到CCE云容器引擎中。在部署過(guò)程中,wow-auth認(rèn)證系統(tǒng)將通過(guò)環(huán)境變量的方式連接mysql數(shù)據(jù)庫(kù),以及wow-world游戲服務(wù)器。
登錄CCE控制臺(tái)。
在CCE左側(cè)導(dǎo)航欄中選擇“工作負(fù)載>無(wú)狀態(tài)負(fù)載Deployment”,單擊“創(chuàng)建無(wú)狀態(tài)工作負(fù)載”。
說(shuō)明:
在本例游戲demo中,認(rèn)證系統(tǒng)和游戲服務(wù)器都是無(wú)狀態(tài)工作負(fù)載,若真實(shí)業(yè)務(wù)是有狀態(tài)工作負(fù)載,一般建議改造為無(wú)狀態(tài)工作負(fù)載。以下是無(wú)狀態(tài)工作負(fù)載和有狀態(tài)工作負(fù)載的區(qū)別:
無(wú)狀態(tài)工作負(fù)載:在運(yùn)行中始終不保存任何數(shù)據(jù)或狀態(tài)的稱為“無(wú)狀態(tài)工作負(fù)載”,例如nginx。
有狀態(tài)工作負(fù)載:在應(yīng)用運(yùn)行過(guò)程中會(huì)保存數(shù)據(jù)或狀態(tài)的稱為“有狀態(tài)工作負(fù)載”。例如Mysql,它需要存儲(chǔ)產(chǎn)生的新數(shù)據(jù)。
配置工作負(fù)載基本信息。
工作負(fù)載名稱:自定義名稱,例如wow-auth。
集群名稱:選擇創(chuàng)建集群中創(chuàng)建的集群。
命名空間:保持默認(rèn)。
實(shí)例數(shù)量:建議配置為1,否則資源會(huì)不夠用。
工作負(fù)載描述:可不填寫(xiě)。
單擊“下一步:容器設(shè)置”,單擊“添加容器”選擇鏡像,搜索wow,選擇wowauth-5.0版本的鏡像。
其余參數(shù)保持默認(rèn),請(qǐng)單擊容器規(guī)格下的“自定義配額”,設(shè)置該組件需要的規(guī)格。設(shè)置完成后,選擇0.5X的規(guī)格。
說(shuō)明:
計(jì)算資源根據(jù)應(yīng)用本身所需設(shè)置,本例游戲的wow-auth組件至少需要0.5 Core的CPU,和0.5GiB的內(nèi)存。
圖3自定義配額
展開(kāi)“環(huán)境變量”,配置環(huán)境變量,用于連接數(shù)據(jù)庫(kù),以及連接wow-world游戲服務(wù)器。
說(shuō)明:
下表中的環(huán)境變量都是在鏡像中提前設(shè)定好的。若不清楚如何配置,請(qǐng)參見(jiàn)部署游戲應(yīng)用時(shí),環(huán)境變量值如何獲取?獲取對(duì)應(yīng)值。
表2設(shè)置環(huán)境變量
單擊“下一步:工作負(fù)載訪問(wèn)設(shè)置”,單擊“添加服務(wù)”,設(shè)置應(yīng)用的外部訪問(wèn)方式。
圖4添加服務(wù)
訪問(wèn)類型:選擇“節(jié)點(diǎn)訪問(wèn)(NodePort)”。
服務(wù)名稱:可以和應(yīng)用名稱保持一致,例如設(shè)置為wow-auth。
服務(wù)親和:本例選擇“集群級(jí)別”。
集群級(jí)別:集群下所有節(jié)點(diǎn)的IP+訪問(wèn)端口均可以訪問(wèn)到此服務(wù)關(guān)聯(lián)的負(fù)載,服務(wù)訪問(wèn)會(huì)因路由跳轉(zhuǎn)導(dǎo)致一定性能損失,且無(wú)法獲取到客戶端源IP。
節(jié)點(diǎn)級(jí)別:只有通過(guò)負(fù)載所在節(jié)點(diǎn)的IP+訪問(wèn)端口才可以訪問(wèn)此服務(wù)關(guān)聯(lián)的負(fù)載,服務(wù)訪問(wèn)沒(méi)有因路由跳轉(zhuǎn)導(dǎo)致的性能損失,且可以獲取到客戶端源IP。
端口配置:
協(xié)議:設(shè)置為T(mén)CP協(xié)議。
容器端口:認(rèn)證系統(tǒng)的監(jiān)聽(tīng)端口,本例監(jiān)聽(tīng)端口為3724。鏡像中已寫(xiě)3724,此數(shù)據(jù)不可填寫(xiě)其它值。
訪問(wèn)端口:容器端口映射到節(jié)點(diǎn)私有IP上的端口,設(shè)置為自動(dòng)生成。
單擊“確定”。
單擊“下一步”,高級(jí)設(shè)置不需要設(shè)置,單擊“創(chuàng)建”。
系統(tǒng)跳轉(zhuǎn)到工作負(fù)載頁(yè)面,大概1分鐘左右可創(chuàng)建成功。
部署wow-world游戲服務(wù)器
您將會(huì)把wow-world游戲服務(wù)器部署到CCE云容器引擎中。在部署過(guò)程中,wow-world認(rèn)證系統(tǒng)將通過(guò)環(huán)境變量的方式連接mysql數(shù)據(jù)庫(kù)。
登錄CCE控制臺(tái)。
在CCE左側(cè)導(dǎo)航欄中選擇“工作負(fù)載>狀態(tài)負(fù)載Deployment”,單擊“創(chuàng)建無(wú)狀態(tài)工作負(fù)載”。
配置工作負(fù)載基本信息。
工作負(fù)載名稱:自定義名稱,例如為wow-world。
集群名稱:選擇創(chuàng)建集群中創(chuàng)建的集群。
命名空間:保持默認(rèn)。
實(shí)例數(shù)量:建議配置為1,否則資源會(huì)不夠用。
工作負(fù)載描述:可不填寫(xiě)。
單擊“下一步”,單擊“添加容器”選擇鏡像,搜索wow,選擇wowworld-5.0-withmap版本的鏡像。
容器規(guī)格請(qǐng)?jiān)O(shè)置如下。計(jì)算資源根據(jù)應(yīng)用本身所需設(shè)置,本例游戲的wow-world組件至少需要2 Core的CPU,和2GiB的內(nèi)存。
圖5自定義配額
設(shè)置環(huán)境變量,用于連接數(shù)據(jù)庫(kù)。環(huán)境變量說(shuō)明如表3。
說(shuō)明:
若環(huán)境變量不清楚如何配置,請(qǐng)參見(jiàn)部署游戲應(yīng)用時(shí),環(huán)境變量值如何獲???查看如何配置。
表3設(shè)置環(huán)境變量
單擊“下一步”,單擊“添加服務(wù)”,設(shè)置工作負(fù)載的外部訪問(wèn)方式。
訪問(wèn)類型:選擇“節(jié)點(diǎn)訪問(wèn)(NodePort)”。
服務(wù)名稱:可以和工作負(fù)載名稱保持一致,例如設(shè)置為wow-world。
服務(wù)親和:本例選擇“集群級(jí)別”。
集群級(jí)別:集群下所有節(jié)點(diǎn)的IP+訪問(wèn)端口均可以訪問(wèn)到此服務(wù)關(guān)聯(lián)的負(fù)載,服務(wù)訪問(wèn)會(huì)因路由跳轉(zhuǎn)導(dǎo)致一定性能損失,且無(wú)法獲取到客戶端源IP。
節(jié)點(diǎn)級(jí)別:只有通過(guò)負(fù)載所在節(jié)點(diǎn)的IP+訪問(wèn)端口才可以訪問(wèn)此服務(wù)關(guān)聯(lián)的負(fù)載,服務(wù)訪問(wèn)沒(méi)有因路由跳轉(zhuǎn)導(dǎo)致的性能損失,且可以獲取到客戶端源IP。
協(xié)議:設(shè)置為T(mén)CP協(xié)議。
容器端口:游戲服務(wù)器的監(jiān)聽(tīng)端口,配置為8085。由于鏡像中已寫(xiě)該端口,請(qǐng)不要修改。
訪問(wèn)端口:指定端口,需要與部署認(rèn)證系統(tǒng)時(shí)環(huán)境變量中指定的biboport值保持一致。若未記錄,可參照部署游戲服務(wù)器時(shí),訪問(wèn)端口如何獲?。揩@取。
單擊“確定”。
單擊“下一步”,高級(jí)設(shè)置不需要設(shè)置,單擊“創(chuàng)建”。
系統(tǒng)跳轉(zhuǎn)到工作負(fù)載頁(yè)面,大概1分鐘左右工作負(fù)載可創(chuàng)建成功。