真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Docker+Rancher如何創(chuàng)建集成環(huán)境

這篇文章主要為大家展示了“Docker+Rancher如何創(chuàng)建集成環(huán)境”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Docker+Rancher如何創(chuàng)建集成環(huán)境”這篇文章吧。

10多年的改則網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整改則建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“改則網(wǎng)站設(shè)計(jì)”,“改則網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

之前《構(gòu)建環(huán)境容器化》和《創(chuàng)建持續(xù)集成流水線》,我們使用Docker創(chuàng)建了一個(gè)集中管理的構(gòu)建環(huán)境,它可以應(yīng)用到任意數(shù)量的機(jī)器上。接著,我們將環(huán)境設(shè)置到了Jenkins CI上,自動(dòng)化處理了源代碼的持續(xù)構(gòu)建、打包和測(cè)試。在本章中,我們將進(jìn)一步對(duì)流水線進(jìn)行研究(如下所示),了解如何將項(xiàng)目持續(xù)部署到一個(gè)長(zhǎng)時(shí)間運(yùn)行的測(cè)試環(huán)境中。除了自動(dòng)驗(yàn)收測(cè)試外,它還將允許人工測(cè)試代碼。有了這樣的環(huán)境,你就可以在產(chǎn)品投入生產(chǎn)之前讓你的客戶或者QA(質(zhì)量管理員)看到最新的變化。此外,它還是一個(gè)構(gòu)建和部署到生產(chǎn)環(huán)境的好方法,我們將這一章中進(jìn)行介紹。

Docker+Rancher如何創(chuàng)建集成環(huán)境

創(chuàng)建應(yīng)用程序環(huán)境

在我們構(gòu)建并且測(cè)試了應(yīng)用程序后,可以將它部署到一個(gè)長(zhǎng)期運(yùn)行的、潛在面向外部的環(huán)境中。這種環(huán)境要允許客戶或者QA在產(chǎn)品投入生產(chǎn)前查看和測(cè)試最新的更改,它也是生產(chǎn)過程中一個(gè)重要步驟。有了它,我們能夠發(fā)現(xiàn)在自動(dòng)化集成測(cè)試中會(huì)隱藏起來(lái)、只有在真實(shí)環(huán)境才能發(fā)現(xiàn)的bug。我們通常把這樣的環(huán)境稱為QA或集成環(huán)境,當(dāng)然你也可以自己命名。我們將通過以下步驟來(lái)創(chuàng)建集成環(huán)境:

  1. 在Rancher中創(chuàng)建一個(gè)集成環(huán)境

  2. 定義Docker Compose以及Rancher Compose模板

  3. 用Rancher創(chuàng)建應(yīng)用程序堆棧

  4. 用Rancher和AWS Route53管理DNS記錄

  5. 添加對(duì)HTTPS的支持

在Rancher中創(chuàng)建一個(gè)集成環(huán)境

在Rancher UI中,在左上角選擇Manage Environments 以及 Add Environment,會(huì)出現(xiàn)下面屏幕顯示的內(nèi)容,添加Name(Integration),給每個(gè)環(huán)境添加一定的描述。你還需要選擇有權(quán)訪問環(huán)境的用戶和組織清單。

Docker+Rancher如何創(chuàng)建集成環(huán)境

在環(huán)境設(shè)置好后,在屏幕左上角的下拉菜單中選擇Integration(集成)環(huán)境。現(xiàn)在我們可以為集成環(huán)境創(chuàng)建應(yīng)用程序堆棧了。在這之前,我們先了解一下Rancher部署的API密鑰。從頂部菜單中選擇API > Key,接著Add Account API Key。會(huì)出現(xiàn)一個(gè)彈出式屏幕,在這里你可以創(chuàng)建一個(gè)命名的API密鑰對(duì)。在后續(xù)步驟中我們需要使用到Rancher Compose創(chuàng)建測(cè)試環(huán)境。我們將創(chuàng)建名為JenkinsKey的密鑰對(duì),由Jenkins實(shí)例運(yùn)行Rancher Compose。記得要留下密鑰(access key)和密碼(secret key)以備后用,之后不會(huì)再顯示這些值了。請(qǐng)注意,API密鑰匙是針對(duì)于特定環(huán)境的,因此需要為每個(gè)環(huán)境創(chuàng)建一個(gè)新密鑰。

Docker+Rancher如何創(chuàng)建集成環(huán)境

定義Compose模板

在上篇文章中,我們創(chuàng)建了一個(gè)Docker Compose模板定義我們的項(xiàng)目所需的容器類型。Compose模板(docker-compose.yml)如下圖所示?,F(xiàn)在我們將使用與之前相同的Docker Compose模板,不過增加了auth-lb服務(wù)。這會(huì)在我們的go-auth服務(wù)前添加一個(gè)負(fù)載均衡器,并將所有運(yùn)行該服務(wù)的容器的流量分開。在服務(wù)前添加一個(gè)負(fù)載均衡器對(duì)于確??捎眯院蛿U(kuò)展性來(lái)說(shuō)至關(guān)重要,因?yàn)榧词挂粋€(gè)(或多個(gè))服務(wù)容器死亡,它依然能夠提供流量。另外,它還能將負(fù)載擴(kuò)展到多個(gè)容器上,這些容器可能在多個(gè)主機(jī)上運(yùn)行。我在本文中使用的Rancher舊版本不支持3版本的compose文件,因此我們必須要設(shè)置版本為2,刪除錯(cuò)誤的環(huán)境變量,修正go-auth的版本。

Docker+Rancher如何創(chuàng)建集成環(huán)境

Docker+Rancher如何創(chuàng)建集成環(huán)境

我們?cè)诙嘀鳈C(jī)環(huán)境中使用的是Rancher Compose啟動(dòng)環(huán)境,這樣更貼近生產(chǎn)環(huán)境,允許我們測(cè)試和各種服務(wù)的集成,例如Rancher和Docker Hub等等。和我們之前不同,我們以前基于Docker Compose的環(huán)境是明確設(shè)計(jì)成獨(dú)立于外部服務(wù),在CI服務(wù)器本身上啟動(dòng)的,無(wú)需將鏡像推送到dockerhub。

現(xiàn)在我們使用Rancher Compose啟動(dòng)一個(gè)多主機(jī)測(cè)試環(huán)境來(lái)代替Docker Compose,我們還需要定義一個(gè)rancher compose模板。創(chuàng)建一個(gè)叫做rancher-compose.yml的文件,添加以下內(nèi)容。在這個(gè)文件中,我們定義了兩個(gè)需要用到auth-service的容器、一個(gè)運(yùn)行數(shù)據(jù)庫(kù)的容器以及另一個(gè)運(yùn)行負(fù)載均衡器的容器。

Docker+Rancher如何創(chuàng)建集成環(huán)境

接下來(lái)我們將向auth-service中添加一個(gè)健康檢查(health check),確保我們可以檢測(cè)到容器何時(shí)啟動(dòng)以及能夠響應(yīng)請(qǐng)求。為此,我們使用go-auth服務(wù)的/health URI。rancher-compose.yml的auth-service部分現(xiàn)在應(yīng)該是這樣的:

Docker+Rancher如何創(chuàng)建集成環(huán)境

我們現(xiàn)在給每2秒(2000毫秒)運(yùn)行的服務(wù)容器的9000端口定義一個(gè)健康檢查。該檢查會(huì)向/health URL發(fā)出http請(qǐng)求,連續(xù)3次檢查失敗會(huì)將容器標(biāo)記為不健康,而2次成功則標(biāo)記為健康。

同樣,我們需要將lb_config部分添加到負(fù)載均衡器rancher-compose.yml文件中,讓它知道針對(duì)哪個(gè)服務(wù)(GoAuth),需要公開哪些端口,以及如何驗(yàn)證負(fù)載均衡器之后實(shí)例的健康情況。rancher-compose.yml文件的auth-lb部分應(yīng)該如下所示:

Docker+Rancher如何創(chuàng)建集成環(huán)境

用Rancher CLI創(chuàng)建一個(gè)應(yīng)用程序堆棧

現(xiàn)在我們定義好了模板,就可以使用Rancher Compose來(lái)啟動(dòng)我們的環(huán)境了。接下來(lái),只需要檢出go-message項(xiàng)目并從Rancher UI中下載Rancher CLI即可。關(guān)于如何在開發(fā)機(jī)器上設(shè)置rancher-compose,可以參考這里的說(shuō)明:

https://rancher.com/docs/rancher/v1.5/en/cattle/rancher-compose/。 運(yùn)行 ./rancher config為接下來(lái)的命令指定rancher url、access key、secret key和默認(rèn)環(huán)境。

在Rancher CLI設(shè)置好后,你可以使用下面的創(chuàng)建命令來(lái)設(shè)置你的集成環(huán)境。這里的命令是假設(shè)docker-compose.yml和rancher-compose.yml文件是在當(dāng)前目錄下的。

Docker+Rancher如何創(chuàng)建集成環(huán)境

在UI中,你現(xiàn)在應(yīng)該能夠看到你的項(xiàng)目的堆棧和服務(wù)了。注意,create命令在創(chuàng)建堆棧的同時(shí)還會(huì)啟動(dòng)所有的服務(wù)。

Docker+Rancher如何創(chuàng)建集成環(huán)境

要確保一切正常,找到運(yùn)行“authlb”服務(wù)的主機(jī)的公共IP,使用下面的命令創(chuàng)建一個(gè)用戶。你應(yīng)該會(huì)得到200 OK的回復(fù),而重復(fù)上述請(qǐng)求會(huì)返回409錯(cuò)誤,提示與數(shù)據(jù)庫(kù)現(xiàn)有用戶出現(xiàn)沖突。到這為止,我們就為應(yīng)用程序提供了一個(gè)基本的集成環(huán)境,這也是一個(gè)長(zhǎng)期運(yùn)行的環(huán)境。

管理DNS記錄

現(xiàn)在這個(gè)環(huán)境是需要長(zhǎng)期運(yùn)行并且對(duì)外開放的,我們將會(huì)使用DNS條目以及HTTPS。這樣我們能夠安全地在企業(yè)防火錢之外分發(fā)應(yīng)用程序,并允許更多的臨時(shí)用戶依賴持久的DNS而不是可能會(huì)改變的IPs。你可以使用你所選擇的DNS提供者。而我們?cè)谶@里將演示如何在Amazon Route53中設(shè)置DNS條目。進(jìn)入到AWS Console > Route53 > Hosted Zones,選擇Create Hosted Zone。在hosted zone(托管區(qū)域)中,你需要指定你選擇的域名(比如gomessenger.com)。當(dāng)你在AWS Console中時(shí),你還可以為Rancher創(chuàng)建用戶進(jìn)行Route53的更新。轉(zhuǎn)到AWS Console > IAMS > Users,選擇Create New Users。記住用戶的Access Key和Secret Key,之后我們還會(huì)使用到。在用戶創(chuàng)建后,你需要將AmazonRoute53FullAccess策略添加到用戶中,這樣它就可以對(duì)route53進(jìn)行更新。

現(xiàn)在我們已經(jīng)有了Hosted Zone以及IAMs用戶設(shè)置,我們可以將Route53集成添加到我們的 Rancher Server(rancher服務(wù)器)。有關(guān)如何操作的詳細(xì)說(shuō)明可以在這里找到:https://rancher.com/introducing-rancher-service-discovery-integration-with-amazon-route53/ 。簡(jiǎn)而言之,你需要在rancher服務(wù)器上瀏覽Catalog > Library并選擇Route 53 DNS。系統(tǒng)會(huì)要求你指定之前設(shè)置的Hosted Zone,以及具有Route53訪問權(quán)限的Rancher IAMs用戶的AWS Access和Secret Keys。輸入信息并且單擊創(chuàng)建后,你應(yīng)該能看到在你的環(huán)境中有一個(gè)包含route53服務(wù)的新堆棧。

Docker+Rancher如何創(chuàng)建集成環(huán)境

該服務(wù)會(huì)監(jiān)聽Rancher事件,捕獲任何任何負(fù)載均衡器實(shí)例的啟動(dòng)和終止。有了這些信息,它將自動(dòng)為所有運(yùn)行負(fù)載均衡器容器的主機(jī)創(chuàng)建DNS條目。DNS條目的格式是[Loadbalancer].[stack].[env].[domain],比如:

goauth.integration.testing.gomessenger.com.

隨著越來(lái)越多的容器在各個(gè)Rancher計(jì)算節(jié)點(diǎn)上啟動(dòng)與關(guān)閉,Route53服務(wù)將保持DNS記錄的一致性。這對(duì)我們的集成測(cè)試環(huán)境來(lái)說(shuō)至關(guān)重要,我們稍后就會(huì)看到它的重要性。我們需要重新啟動(dòng)環(huán)境容器來(lái),以便將更新作為持續(xù)部署的一部分。通過使用Route53 DNS集成,我們不必再為給我們的客戶和測(cè)試人員獲取最新主機(jī)名而擔(dān)心了。

啟用HTTPS

在為我們的環(huán)境創(chuàng)建DNS記錄后,讓它支持HTTPS協(xié)議會(huì)是一個(gè)不錯(cuò)的選擇。首先,我們需要拿到我們域名的SSL證書。你可以從很多可信任的證書頒發(fā)機(jī)構(gòu)中選擇一個(gè)購(gòu)買域名的SSL證書。如果你沒有證書,可以生成自簽名(self-signed)證書來(lái)完成設(shè)置,在一段時(shí)間后把它更換成可信任的證書。自簽名證書的含義是:任何用戶都會(huì)在瀏覽器中看到“此連接不可信”的警告,但通信仍然是加密的。那么要生成自簽名證書,首先需要生成ssl密鑰,它可以由openssl的genrsa命令實(shí)現(xiàn)。然后你可以用這個(gè)密鑰文件,使用req命令生成證書。下面列出了這一步驟。你也可以將證書的sha256指紋打印并儲(chǔ)存下來(lái),這樣就手動(dòng)地保證了在發(fā)出HTTPS請(qǐng)求時(shí)向你顯示相同的證書。在缺少可信證書的情況下,手動(dòng)匹配指紋是避免中間人攻擊的唯一方法。

Docker+Rancher如何創(chuàng)建集成環(huán)境

現(xiàn)在你已經(jīng)擁有了證書和私鑰文件,下面需要講這些文件上傳到Rancher中。我們可以在Rancher UI的Infrastructure選項(xiàng)卡,單擊Certificates部分的Add Certificate按鈕上傳證書。你還需要給你的證書起一個(gè)有意義的名稱,填寫描述。接著分別在Private Key和Certificate字段復(fù)制粘貼integration.gomessenger.com.key和integration.gomessenger.com.crt的內(nèi)容(或者選擇Read from File從文件讀?。?。在完成了表單后,點(diǎn)擊保存,等待片刻證書便生效了。

Docker+Rancher如何創(chuàng)建集成環(huán)境

證書激活之后,我們可以將HTTPS端點(diǎn)添加到我們的環(huán)境中。想要做到這一點(diǎn),我們必須修改rancher-compose文件,讓它包含SSL端口配置。我們將第二個(gè)端口(9001)添加到ports部分,讓我們的環(huán)境可以在負(fù)載均衡器之外訪問,并且使用io.rancher.loadbalancer.ssl.ports標(biāo)簽指定'9001'是具有SSL終止的公共負(fù)載均衡器端口。

此外,因?yàn)槲覀冊(cè)谪?fù)載均衡器處終止了SSL,我們可以使用原9000端口上的常規(guī)HTTP將請(qǐng)求發(fā)送到我們的實(shí)際服務(wù)容器中。我們使用了io.rancher.loadbalancer.target.auth-service標(biāo)簽來(lái)指定從9001到9000的映射。

Docker+Rancher如何創(chuàng)建集成環(huán)境

我們還需要更新rancher-compose文件指定SSL證書,該證書是我們?cè)谪?fù)載均衡器服務(wù)中針對(duì)SSL終止要使用的。將我們之前上傳的證書名稱添加到default_cert上。有了這些更改,你還需要?jiǎng)h除并重新創(chuàng)建堆棧,這是因?yàn)槟壳斑€沒有辦法將這些屬性添加到已有的堆棧上。

Docker+Rancher如何創(chuàng)建集成環(huán)境

現(xiàn)在可以使用curl命令確保一切正常了。當(dāng)你使用https協(xié)議說(shuō)明符和9001端口嘗試相同的命令時(shí),應(yīng)該會(huì)看到一個(gè)failure,說(shuō)你使用了一個(gè)不受信任的證書。你可以使用--insecure開關(guān)關(guān)閉可信證書檢查,并且在沒有證書的情況下使用https。

以上是“Docker+Rancher如何創(chuàng)建集成環(huán)境”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享名稱:Docker+Rancher如何創(chuàng)建集成環(huán)境
分享網(wǎng)址:http://weahome.cn/article/geipoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部