當前位置:首頁 » 文件管理 » k8s緩存

k8s緩存

發布時間: 2023-12-10 10:58:14

1. spring boot 使用 k8s 的 configMap 作為外部配置

spring boot 應用以容器的方式運行在 k8s 集群上面是非常方便的,但是不同的環境需要不同的配置文件,我們可以使用外部的配置中心,比如 nacos 、 apollo 。 k8s 也提供了 configMap 用來將環境配置信息和容器鏡像解耦,便於應用配置的修改。本文主要從以下幾個方面介紹 spring boot 使用 k8s 的 configMap 作為外部配置的使用方法:

當應用程序啟動時,Spring Boot 會自動從以下位置查找並載入 application.properties 和 application.yaml 文件。

配置文件優先順序從高到底的順序如下:

高優先順序配置會覆蓋低優先順序配置

如果我們運行時想指定運行哪個環境的配置文件,可以有三種方式:

ConfigMap 是一種 API 對象,用來將非機密性的數據保存到鍵值對中。使用時 pod 可以將其用作環境變數、命令行參數或者存儲卷中的配置文件。

創建 configMap 的幾種方式:

從前面的介紹我們可以知道,spring boot 載入配置文件的最高優先順序是 項目根路徑下的 /config 子目錄 ,所以可以將 configMap 中的配置文件掛載到容器中的項目根路徑下的 config 子目錄中。

當卷中使用的 configMap 被更新時,所投射的鍵最終也會被更新。 kubelet 組件會在每次周期性同步時檢查所掛載的 configMap 是否為最新。 不過,kubelet 使用的是其本地的高速緩存來獲得 configMap 的當前值。 高速緩存的類型可以通過 KubeletConfiguration 結構 的 欄位來配置。

configMap 既可以通過 watch 操作實現內容傳播(默認形式),也可實現基於 TTL 的緩存,還可以直接經過所有請求重定向到 API 伺服器。 因此,從 configMap 被更新的那一刻算起,到新的主鍵被投射到 Pod 中去,這一 時間跨度可能與 kubelet 的同步周期加上高速緩存的傳播延遲相等。 這里的傳播延遲取決於所選的高速緩存類型 (分別對應 watch 操作的傳播延遲、高速緩存的 TTL 時長或者 0)。

以環境變數方式使用的 configMap 數據不會被自動更新,更新這些數據需要重新啟動 Pod。

參考文檔:

k8s 官網

spring boot 官網

熱點內容
做解壓橡皮 發布:2025-01-21 15:03:06 瀏覽:990
雙系統win訪問mac 發布:2025-01-21 14:53:52 瀏覽:484
安卓車機系統如何安裝carplay 發布:2025-01-21 14:52:24 瀏覽:589
sql操作手冊 發布:2025-01-21 14:46:08 瀏覽:311
青橙腳本 發布:2025-01-21 14:44:05 瀏覽:218
東風本田crv時尚版是什麼配置 發布:2025-01-21 14:20:04 瀏覽:219
安卓如何多開軟體每個機型不一樣 發布:2025-01-21 14:15:29 瀏覽:501
iis配置php5 發布:2025-01-21 14:08:19 瀏覽:274
凱叔講故事為什麼聯系不到伺服器 發布:2025-01-21 13:56:50 瀏覽:387
linux鏡像文件下載 發布:2025-01-21 13:34:36 瀏覽:218