在幾乎所有的應用開發中,都會涉及到配置檔案的變更,比如說在web的程式中,需要連接配接資料庫,緩存甚至是隊列等等。應用開發上線過程需要分别部署到開發環境、測試環境、預釋出環境等多個環境。而每一個環境都要定義其獨立的各種配置。如何對配置檔案進行管理,是應用程式管理的重要内容。
Kubernetes中通過ConfigMap資源管理應用程式的配置資訊。ConfigMap本質上是一個基于key/value鍵值方式存儲的一段文本。Kubernetes支援三種使用方式:
設定成容器的環境變量。
在容器的啟動參數中使用。
将key中的内容,作為檔案挂載到容器某個目錄下。
騰訊雲容器服務根據使用者使用的場景。基于Kubenertes的ConfigMap實作了通過配置檔案設定容器的環境變量和将key中的内容挂載到容器的某個目錄。
在示例中我們建立一個如下所示的配置檔案。
然後将對應的key設定成容器的環境變量。
當Pod結束後會輸出
騰訊雲容器服務基于Kubenertes的ConfigMap實作了将配置檔案導入成容器的環境變量。并且在此基礎上,提供管理配置檔案版本的功能。配置檔案的修改都是基于版本進行儲存,配置檔案儲存後不能修改隻能新增版本,這樣保證了配置檔案同一個版本的内容不變,友善復原和追溯。
在騰訊雲容器服務中将配置檔案,設定成容器的環境變量操作步驟如下:
(1) 在配置頁面建立對應的配置項

(2) 在服務建立(更新)時選擇從配置檔案導入環境變量
(3) 選擇需要導入的環境變量
(4) 檢視導入的環境變量
這樣在服務建立(更新)時配置檔案對應的内容就會被設定成容器對應的環境變量。
使用<code>kubectl exec -it dapi-test-pod /bin/ash</code>指令進入容器後,檢視挂載檔案的資訊。
在某些情況下,程式已經定義了配置檔案的讀取形式為:從某個路徑下的檔案讀取。這樣簡單的通過環境變量的方式就不能滿足需求。
騰訊雲容器服務考慮到具體的需求場景,同樣也支援将配置檔案中的内容,通過檔案的形式挂載到指定目錄。
具體的步驟如下:
(1) 建立對應的配置檔案
(2) 從配置檔案導入挂載項
(3) 選擇對應的挂載項
(4) 檢視建立的挂載項
(5) 在容器中設定對應的挂載點
這樣在就可以将配置檔案中對應的内容,通過檔案的方式挂載到容器指定的目錄了。同樣的,我們登入容器後檢視挂載檔案的資訊。
可以看到分别将DASHBOARD.CONF.INI和REPLICAS中的内容挂載到了/etc/config/和/etc/config2/兩個目錄。(騰訊雲容器服務支援遠端在UI界面遠端直接登入容器,具體操作方法可以參考)
Kubernetes中對于程式的配置檔案通過ConfigMap進行管理。在使用上支援配置檔案設定成容器的環境變量以及将配置檔案的内容作為檔案挂載到指定目錄。
騰訊雲容器服務基于Kubenertes中ConfigMap的功能,支援配置檔案設定成容器的環境變量和支援挂載到制定目錄。在UI界面直接進行操作,更加友善。同時支援配置檔案的版本管理,便于復原和追溯。