Skip to content

ConfigMap Volume

ConfigMap Volume 是 Kubernetes 中一種用於將非敏感的配置資料(如配置檔案、環境變數)注入到 Pod 容器中的機制^[400-devops__06-Kubernetes__k8s-ithelp__Day16__README.md]。

在 Kubernetes 的生態系中,應用程式的配置通常與容器鏡像內容解耦,以實現鏡像的可移植性。ConfigMap Volume 允許使用者將 ConfigMap 物件中的資料,以檔案或目錄的形式掛載到容器內部的指定路徑,使容器能夠讀取這些配置。

核心功能

ConfigMap Volume 主要用於存放設定檔,常見的應用場景包括:

  • 環境變數配置:作為應用程式的環境變數檔來源。
  • 資料庫初始化:儲存資料庫連線的初始化設定。
  • 部署配置:存放偏向佈署方面的設定參數^[400-devops__06-Kubernetes__k8s-ithelp__Day16__README.md]。

透過將配置資料獨立於容器鏡像之外,ConfigMap Volume 實現了配置與代碼的分離,使得更新配置無需重新構建容器鏡像。

與 Secrets 的區別

ConfigMap 與 [[Secrets]] 在功能上非常相似,兩者都能夠將資料以 Volume 的形式掛載到 Pod 中^[400-devops__06-Kubernetes__k8s-ithelp__Day16__README.md]。主要的區別在於資料的敏感性與處理方式:

  • 用途:ConfigMap 用於存放一般的配置資料;Secrets 專門用於存放敏感資料,例如使用者帳號、密碼或憑證^[400-devops__06-Kubernetes__k8s-ithelp__Day16__README.md]。
  • 資料處理:Secrets 具有專屬的安全特性,會將內部資料進行 Base64 編碼處理^[400-devops__06-Kubernetes__k8s-ithelp__Day16__README.md]。

相關概念

  • [[Secrets]]:用於處理敏感資料與密鑰管理的機制。
  • [[EmptyDir]]:用於臨時存儲和緩存的空資料夾 Volume。
  • [[PersistentVolume]]:用於持久化存儲的生命週期獨立於 Pod 的資源。
  • 20/80學習原則:學習 Kubernetes 時,ConfigMap 是屬於基礎且高頻使用的 20% 核心知識。

Sources

^[400-devops__06-Kubernetes__k8s-ithelp__Day16__README.md]