91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker+Rancher如何創建集成環境

發布時間:2021-12-22 16:19:26 來源:億速云 閱讀:187 作者:小新 欄目:云計算

這篇文章主要為大家展示了“Docker+Rancher如何創建集成環境”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Docker+Rancher如何創建集成環境”這篇文章吧。

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

Docker+Rancher如何創建集成環境

創建應用程序環境

在我們構建并且測試了應用程序后,可以將它部署到一個長期運行的、潛在面向外部的環境中。這種環境要允許客戶或者QA在產品投入生產前查看和測試最新的更改,它也是生產過程中一個重要步驟。有了它,我們能夠發現在自動化集成測試中會隱藏起來、只有在真實環境才能發現的bug。我們通常把這樣的環境稱為QA或集成環境,當然你也可以自己命名。我們將通過以下步驟來創建集成環境:

  1. 在Rancher中創建一個集成環境

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

  3. 用Rancher創建應用程序堆棧

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

  5. 添加對HTTPS的支持

在Rancher中創建一個集成環境

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

Docker+Rancher如何創建集成環境

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

Docker+Rancher如何創建集成環境

定義Compose模板

在上篇文章中,我們創建了一個Docker Compose模板定義我們的項目所需的容器類型。Compose模板(docker-compose.yml)如下圖所示。現在我們將使用與之前相同的Docker Compose模板,不過增加了auth-lb服務。這會在我們的go-auth服務前添加一個負載均衡器,并將所有運行該服務的容器的流量分開。在服務前添加一個負載均衡器對于確保可用性和擴展性來說至關重要,因為即使一個(或多個)服務容器死亡,它依然能夠提供流量。另外,它還能將負載擴展到多個容器上,這些容器可能在多個主機上運行。我在本文中使用的Rancher舊版本不支持3版本的compose文件,因此我們必須要設置版本為2,刪除錯誤的環境變量,修正go-auth的版本。

Docker+Rancher如何創建集成環境

Docker+Rancher如何創建集成環境

我們在多主機環境中使用的是Rancher Compose啟動環境,這樣更貼近生產環境,允許我們測試和各種服務的集成,例如Rancher和Docker Hub等等。和我們之前不同,我們以前基于Docker Compose的環境是明確設計成獨立于外部服務,在CI服務器本身上啟動的,無需將鏡像推送到dockerhub。

現在我們使用Rancher Compose啟動一個多主機測試環境來代替Docker Compose,我們還需要定義一個rancher compose模板。創建一個叫做rancher-compose.yml的文件,添加以下內容。在這個文件中,我們定義了兩個需要用到auth-service的容器、一個運行數據庫的容器以及另一個運行負載均衡器的容器。

Docker+Rancher如何創建集成環境

接下來我們將向auth-service中添加一個健康檢查(health check),確保我們可以檢測到容器何時啟動以及能夠響應請求。為此,我們使用go-auth服務的/health URI。rancher-compose.yml的auth-service部分現在應該是這樣的:

Docker+Rancher如何創建集成環境

我們現在給每2秒(2000毫秒)運行的服務容器的9000端口定義一個健康檢查。該檢查會向/health URL發出http請求,連續3次檢查失敗會將容器標記為不健康,而2次成功則標記為健康。

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

Docker+Rancher如何創建集成環境

用Rancher CLI創建一個應用程序堆棧

現在我們定義好了模板,就可以使用Rancher Compose來啟動我們的環境了。接下來,只需要檢出go-message項目并從Rancher UI中下載Rancher CLI即可。關于如何在開發機器上設置rancher-compose,可以參考這里的說明:

https://rancher.com/docs/rancher/v1.5/en/cattle/rancher-compose/。 運行 ./rancher config為接下來的命令指定rancher url、access key、secret key和默認環境。

在Rancher CLI設置好后,你可以使用下面的創建命令來設置你的集成環境。這里的命令是假設docker-compose.yml和rancher-compose.yml文件是在當前目錄下的。

Docker+Rancher如何創建集成環境

在UI中,你現在應該能夠看到你的項目的堆棧和服務了。注意,create命令在創建堆棧的同時還會啟動所有的服務。

Docker+Rancher如何創建集成環境

要確保一切正常,找到運行“authlb”服務的主機的公共IP,使用下面的命令創建一個用戶。你應該會得到200 OK的回復,而重復上述請求會返回409錯誤,提示與數據庫現有用戶出現沖突。到這為止,我們就為應用程序提供了一個基本的集成環境,這也是一個長期運行的環境。

管理DNS記錄

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

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

Docker+Rancher如何創建集成環境

該服務會監聽Rancher事件,捕獲任何任何負載均衡器實例的啟動和終止。有了這些信息,它將自動為所有運行負載均衡器容器的主機創建DNS條目。DNS條目的格式是[Loadbalancer].[stack].[env].[domain],比如:

goauth.integration.testing.gomessenger.com.

隨著越來越多的容器在各個Rancher計算節點上啟動與關閉,Route53服務將保持DNS記錄的一致性。這對我們的集成測試環境來說至關重要,我們稍后就會看到它的重要性。我們需要重新啟動環境容器來,以便將更新作為持續部署的一部分。通過使用Route53 DNS集成,我們不必再為給我們的客戶和測試人員獲取最新主機名而擔心了。

啟用HTTPS

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

Docker+Rancher如何創建集成環境

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

Docker+Rancher如何創建集成環境

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

此外,因為我們在負載均衡器處終止了SSL,我們可以使用原9000端口上的常規HTTP將請求發送到我們的實際服務容器中。我們使用了io.rancher.loadbalancer.target.auth-service標簽來指定從9001到9000的映射。

Docker+Rancher如何創建集成環境

我們還需要更新rancher-compose文件指定SSL證書,該證書是我們在負載均衡器服務中針對SSL終止要使用的。將我們之前上傳的證書名稱添加到default_cert上。有了這些更改,你還需要刪除并重新創建堆棧,這是因為目前還沒有辦法將這些屬性添加到已有的堆棧上。

Docker+Rancher如何創建集成環境

現在可以使用curl命令確保一切正常了。當你使用https協議說明符和9001端口嘗試相同的命令時,應該會看到一個failure,說你使用了一個不受信任的證書。你可以使用--insecure開關關閉可信證書檢查,并且在沒有證書的情況下使用https。

以上是“Docker+Rancher如何創建集成環境”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邢台县| 威海市| 龙陵县| 马鞍山市| 南靖县| 安徽省| 黔南| 平南县| 松溪县| 安多县| 将乐县| 加查县| 扎赉特旗| 汉阴县| 临猗县| 耒阳市| 安新县| 滨州市| 岑溪市| 怀集县| 石嘴山市| 房山区| 内丘县| 临城县| 嘉义县| 天祝| 乐东| 阿拉尔市| 屯门区| 溆浦县| 乾安县| 车险| 合山市| 黔江区| 康平县| 汝阳县| 姜堰市| 云林县| 阳西县| 乌鲁木齐市| 龙里县|