Docker和Rancher讓大家能更輕易地部署和管理基于微服務的應用程序。然而,如果有些服務是依賴于其他動態(tài)服務的,那該如何管理它們的配置?你是否時常覺得,要是有方法能自動檢測后端服務的變化,并實現(xiàn)配置文件的動態(tài)更新就好了?本文給你答案。
專注于為中小企業(yè)提供網站設計制作、網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)肥東免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。前言
Docker和Rancher讓大家能更輕易地部署和管理基于微服務的應用程序。然而,有一個關鍵的挑戰(zhàn)是,如果有些服務是依賴于其他動態(tài)服務的,那該如何管理它們的配置?
試想以下情形:您有多個運行Web應用程序的后端容器,和一些將所有的請求都代理到這些后端容器的nginx容器?,F(xiàn)在,你必須要部署一個新版本的Web應用程序,這意味著你需要構建和部署新版本的后端容器。在這些部署工作完成之后,nginx的配置需要更改為指向新的后端容器。那么,你該怎樣處理nginx呢?改變其配置,構建一個新的容器并部署它?此刻的你是不是會覺得,要是有方法能自動檢測后端服務的變化,并實現(xiàn)nginx的動態(tài)更新就好了?
這就是Rancher-Gen要閃亮登場的時刻!
Rancher-Gen是一個Python的工具,它能監(jiān)聽的Rancher服務的變化,并呈現(xiàn)一個用戶指定的Jinja2模板。這允許用戶為現(xiàn)有的、并基于這些變化的服務生成配置文件。另外,Rancher-Gen提供了一種機制,在模板呈現(xiàn)之后會運行通知命令。下面的教程會介紹如何自動生成運行ghost博客平臺后端服務的nginx配置文件 。
教程
下面介紹的所有配置文件都可以在Rancher-Gen庫中的演示目錄下找到。
第1步 – 部署Ghost服務
為簡單起見,我們打算使用Docker hub中的官方ghost鏡像。因此,創(chuàng)建一個docker-compose.yml 文件,并添加以下的ghost服務:
現(xiàn)在,用Rancher Compose部署ghost服務:
第2步 – 用Rancher-Gen創(chuàng)建nginx鏡像
下面是用以搭建nginx鏡像的Dockerfile:
讓我們來一步一步拆解Dockerfile。步驟1和2不言自明:只需安裝nginx、Python和Rancher-Gen。
第3步要設置鏡像啟動時運行的服務。第一個服務是nginx,它用/etc/servce/nginx文件運行。該文件的內容是:
注意一下在通知步驟之后,我們是怎樣通過名為 /nginxconf/default.j2 和/etc/nginx/sites-available/default 的這兩個路徑的。前者是Jinjia2模板,后者是渲染模板的輸出位置。以下是在default.j2文件的內容:
Dockerfile的第4步和第5步在鏡像中設置了運行命令“/sbin/my_init”并暴露端口80和443。
現(xiàn)在是時候構建鏡像了:
第3步 – 創(chuàng)建并部署nginx服務
現(xiàn)在我們已有了nginx鏡像,就可以開始向我們在第1步中創(chuàng)建的docker-compose.yml文件中添加nginx服務了。
上述可變的RANCHER_GEN_OPTIONS環(huán)境是用于向Rancher-Gen傳遞附加命令行選項的 。你可以在Rancher-Gen文檔中查看這些選項的說明。
現(xiàn)在運行rancher-compose來啟動nginx服務:
此時,ghost和nginx服務都啟動并運行了:
而且,將瀏覽器指向運行中的nginx容器中主機的IP地址,你就可以訪問ghost了:
如果你使用shell來檢查nginx容器,并打開渲染的文件 /etc/nginx/sites-enabled/default,你將會看到以下的輸出:
正如預期的那樣,這是在運行rancher-gen命令時的基于指定模板的渲染輸出。此時,如果你要升級ghost服務,并再次查看渲染文件,你會發(fā)現(xiàn)上游部分下的IP地址已經改變了。
結論
總結來說,Rancher-Gen是一個自動化工具,可用于生成文件,并運行通知命令。借助Jinja2的模板表現(xiàn)力,及其整潔的命令行界面,Rancher-Gen可用于生成大多數(shù)配置文件,并自動解決那些對大多數(shù)系統(tǒng)管理員和軟件工程師而言繁瑣和重復的工作。
原文來源:Rancher Labs
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。