您好,登錄后才能下訂單哦!
Docker和Rancher讓大家能更輕易地部署和管理基于微服務(wù)的應(yīng)用程序。然而,如果有些服務(wù)是依賴于其他動態(tài)服務(wù)的,那該如何管理它們的配置?你是否時常覺得,要是有方法能自動檢測后端服務(wù)的變化,并實現(xiàn)配置文件的動態(tài)更新就好了?本文給你答案。
前言
Docker和Rancher讓大家能更輕易地部署和管理基于微服務(wù)的應(yīng)用程序。然而,有一個關(guān)鍵的挑戰(zhàn)是,如果有些服務(wù)是依賴于其他動態(tài)服務(wù)的,那該如何管理它們的配置?
試想以下情形:您有多個運行Web應(yīng)用程序的后端容器,和一些將所有的請求都代理到這些后端容器的nginx容器?,F(xiàn)在,你必須要部署一個新版本的Web應(yīng)用程序,這意味著你需要構(gòu)建和部署新版本的后端容器。在這些部署工作完成之后,nginx的配置需要更改為指向新的后端容器。那么,你該怎樣處理nginx呢?改變其配置,構(gòu)建一個新的容器并部署它?此刻的你是不是會覺得,要是有方法能自動檢測后端服務(wù)的變化,并實現(xiàn)nginx的動態(tài)更新就好了?
這就是Rancher-Gen要閃亮登場的時刻!
Rancher-Gen是一個Python的工具,它能監(jiān)聽的Rancher服務(wù)的變化,并呈現(xiàn)一個用戶指定的Jinja2模板。這允許用戶為現(xiàn)有的、并基于這些變化的服務(wù)生成配置文件。另外,Rancher-Gen提供了一種機制,在模板呈現(xiàn)之后會運行通知命令。下面的教程會介紹如何自動生成運行g(shù)host博客平臺后端服務(wù)的nginx配置文件 。
教程
下面介紹的所有配置文件都可以在Rancher-Gen庫中的演示目錄下找到。
第1步 – 部署Ghost服務(wù)
為簡單起見,我們打算使用Docker hub中的官方ghost鏡像。因此,創(chuàng)建一個docker-compose.yml 文件,并添加以下的ghost服務(wù):
現(xiàn)在,用Rancher Compose部署ghost服務(wù):
第2步 – 用Rancher-Gen創(chuàng)建nginx鏡像
下面是用以搭建nginx鏡像的Dockerfile:
讓我們來一步一步拆解Dockerfile。步驟1和2不言自明:只需安裝nginx、Python和Rancher-Gen。
第3步要設(shè)置鏡像啟動時運行的服務(wù)。第一個服務(wù)是nginx,它用/etc/servce/nginx文件運行。該文件的內(nèi)容是:
注意一下在通知步驟之后,我們是怎樣通過名為 /nginxconf/default.j2 和/etc/nginx/sites-available/default 的這兩個路徑的。前者是Jinjia2模板,后者是渲染模板的輸出位置。以下是在default.j2文件的內(nèi)容:
Dockerfile的第4步和第5步在鏡像中設(shè)置了運行命令“/sbin/my_init”并暴露端口80和443。
現(xiàn)在是時候構(gòu)建鏡像了:
第3步 – 創(chuàng)建并部署nginx服務(wù)
現(xiàn)在我們已有了nginx鏡像,就可以開始向我們在第1步中創(chuàng)建的docker-compose.yml文件中添加nginx服務(wù)了。
上述可變的RANCHER_GEN_OPTIONS環(huán)境是用于向Rancher-Gen傳遞附加命令行選項的 。你可以在Rancher-Gen文檔中查看這些選項的說明。
現(xiàn)在運行rancher-compose來啟動nginx服務(wù):
此時,ghost和nginx服務(wù)都啟動并運行了:
而且,將瀏覽器指向運行中的nginx容器中主機的IP地址,你就可以訪問ghost了:
如果你使用shell來檢查nginx容器,并打開渲染的文件 /etc/nginx/sites-enabled/default,你將會看到以下的輸出:
正如預(yù)期的那樣,這是在運行rancher-gen命令時的基于指定模板的渲染輸出。此時,如果你要升級ghost服務(wù),并再次查看渲染文件,你會發(fā)現(xiàn)上游部分下的IP地址已經(jīng)改變了。
結(jié)論
總結(jié)來說,Rancher-Gen是一個自動化工具,可用于生成文件,并運行通知命令。借助Jinja2的模板表現(xiàn)力,及其整潔的命令行界面,Rancher-Gen可用于生成大多數(shù)配置文件,并自動解決那些對大多數(shù)系統(tǒng)管理員和軟件工程師而言繁瑣和重復(fù)的工作。
原文來源:Rancher Labs
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。