同一個應用程式在不同環境執行時,通常需要不同設定,例如介面位址、日誌等級或功能開關。如果每次修改設定都重新製作映像,流程會變得繁瑣,也容易產生難以追蹤的版本。ConfigMap 能保存非機密設定,讓程式與環境差異分開管理。
ConfigMap 以鍵值方式保存資料,Pod 可以將內容載入成環境變數,或掛載成檔案。前者適合少量簡單參數,後者適合較完整的設定文件。選擇方式時應配合應用程式原本的讀取機制,不必為了使用平台功能而增加不必要的轉換。
修改 ConfigMap 不代表所有執行中的程式會立即採用新值。以環境變數載入的內容,通常需要重建 Pod 才會更新;透過磁碟區掛載的內容可能延後同步,程式本身也要支援重新讀取。若使用子路徑掛載,更不能期待自動取得更新。
ConfigMap 不適合存放密碼或私鑰,也不應拿來代替資料庫。它的主要價值是讓設定可被明確描述、檢視與套用。下一篇會把一個環境名稱注入容器,再修改內容,驗證設定更新和工作負載更新之間的關係。
參考:ConfigMap