1. 程式人生 > >kubernetes configMap詳解

kubernetes configMap詳解

configMap

Kubernetes的ConfigMap說明

  這篇博文,我們來說一說,關於在kubernetes的pod中自定義配置的問題。

  我們知道,在幾乎所有的應用開發中,都會涉及到配置文件的變更,比如說在web的程序中,需要連接數據庫,緩存甚至是隊列等等。而我們的一個應用程序從寫第一行代碼開始,要經歷開發環境、測試環境、預發布環境只到最終的線上環境。而每一個環境都要定義其獨立的各種配置。如果我們不能很好的管理這些配置文件,你的運維工作將頓時變的無比的繁瑣。為此業內的一些大公司專門開發了自己的一套配置管理中心,如360的Qcon,百度的disconf等。kubernetes也提供了自己的一套方案,即ConfigMap。kubernetes通過ConfigMap來實現對容器中應用的配置管理。

創建ConfigMap

創建ConfigMap的方式有4種:

  • 通過直接在命令行中指定configmap參數創建,即--from-literal

  • 通過指定文件創建,即將一個配置文件創建為一個ConfigMap--from-file=<文件>

  • 通過指定目錄創建,即將一個目錄下的所有配置文件創建為一個ConfigMap,--from-file=<目錄>
    通過yaml文件來創建,另一種是通過kubectl直接在命令行下創建。

  • 事先寫好標準的configmap的yaml文件,然後kubectl create -f 創建



使用ConfigMap

使用ConfigMap有三種方式,一種是通過環境變量的方式,直接傳遞pod,另一種是通過在pod的命令行下運行的方式,第三種是使用volume的方式掛載入到pod內

更新 ConfigMap 後:

  • 使用該 ConfigMap 掛載的 Env 不會同步更新

  • 使用該 ConfigMap 掛載的 Volume 中的數據需要一段時間(實測大概10秒)才能同步更新

ENV 是在容器啟動的時候註入的,啟動之後 kubernetes 就不會再改變環境變量的值,且同一個 namespace 中的 pod 的環境變量是不斷累加的,參考 Kubernetes中的服務發現與docker容器間的環境變量傳遞源碼探究。為了更新容器中使用 ConfigMap 掛載的配置,可以通過滾動更新 pod 的方式來強制重新掛載 ConfigMap,也可以在更新了 ConfigMap 後,先將副本數設置為 0,然後再擴容。

Kubernetes的ConfigMap說明

參考https://www.cnblogs.com/breezey/p/6582082.html

kubernetes configMap 熱更新測試

https://www.kubernetes.org.cn/3138.html

Kubernetes的ConfigMap詳解

參考https://blog.csdn.net/liukuan73/article/details/79492374


kubernetes configMap詳解