久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

ConfigMap怎么使用

162次閱讀
沒有評論

共計 2330 個字符,預計需要花費 6 分鐘才能閱讀完成。

本篇內容介紹了“ConfigMap 怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

將 ConfigMap 作為一種環境變量

在本例中,我們將在 Kubernetes 中創建一個新的環境變量,并將其用于代碼中。在 Java 中,可以通過 System.getenv(String) API 在代碼中使用環境變量。在常規 Java 應用程序中,可以在 J2EE 應用程序容器(如 Oracle WLS 或 IBM WAS)中設置環境變量,也可以在 OS 中設置環境變量。然而,在 Kubernetes 中情況并不相同。要使用環境變量,我們必須根據 literal 創建配置映射。

通過 kubectl create configmap 命令,我們創建了兩個環境變量:app.name 和 app.desc。

我們來了解一下這背后發生了什么。

現在注意數據部分,在數據部分下,你會找到鍵值對。從技術上來說,ConfigMap 僅僅是鍵值存儲。屬性的名稱是鍵,屬性的值是值。應用程序的代碼會要求你查找這些鍵值對。

為了在 Java 代碼中使用此環境變量,我們需要編寫以下代碼:

下面的代碼段定義了兩個 K8s 環境變量,分別為“SPRING_BOOT_HELLO_WORLD_APP_NAME”和“SPRING_BOOT_HELLO_WORLD_DESC”。這些變量將從 ConfigMap app-env-config 獲取值。需要重點關注的是鍵。

屬性配置文件可以在單個文件中保存很多個屬性,以在不同環境中運行應用程序。在 Spring Boot 應用程序中,屬性保存在 classpath 下的 application.properties 文件中。我們來看一下打包在應用程序 jar 包中的 application.properties 文件。

我們正在使用命令 kubectl create configmap 從單個文件或從多個文件創建 ConfigMap。

現在讓我們查看完整的代碼。

將 ConfigMap 掛載為文件

在本節中,我將說明如何使用 ConfigMap 掛載文件以外部化配置。在此示例中,我將使用 ConfigMap 來外部化 application.properties 文件。即使默認文件打包在 jar 中,也位于 src / main / resources 下。簡單來說,我們將通過 ConfigMap 所提供的文件來覆蓋默認文件。

第一步是從 application.properties 創建 ConfigMap。讓我們了解如何在 K8s 中存儲此 ConfigMap。

通過 ConfigMap,我們將掛載 application.properties 文件到 K8s 集群中,并且可以在應用程序中使用它。請注意,數據部分包含了 application.properties 的內容,鍵是文件名。

現在,為了覆蓋默認配置文件,我們需要(通過 ConfigMap)將 application.properties 掛載到應用程序的 classpath 中。Spring Boot 通過提供不同的選項來提供這一功能。SpringApplication 在以下位置從 application.properties 文件加載屬性,并將它們添加到 Spring Environment:

當前目錄的 /config 子目錄

當前目錄

classpath / config 包

The classpath root

如果你想了解更多信息,可以查閱官方文檔:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files

最簡單,最好的方法是將 application.properties 掛載在“/ config”目錄中。

仔細檢查掛載路徑,請注意 ConfigMap 的名稱應與我們在上面創建的 app-file-configmap 完全相同,鍵為文件名。另外,請確保將 volume mount 配置的名稱更改為 volume 配置的名稱。

這段代碼說明了如何在 application.properties 文件中定義屬性。如果使用 Spring 推薦的標準方法的話,這十分簡單。具體而言,就是使用 @Value 注釋將屬性值注入到變量中。

現在,我們可以繼續進行 ConfigMap 示例應用程序了。我們來看一下完整的代碼段。

ConfigMap 怎么使用

讓我們創建一個 Docker 鏡像并將其上傳到 Dockerhub。在本例中,鏡像名稱是 k8s-springboot-helloworld-configmap—app。

以下是 K8S pod 配置文件:

ConfigMap 怎么使用

現在我們使用 NodePort 服務類型創建服務,以便可以從 K8S 集群外部使用 Welcome 服務。

ConfigMap 怎么使用

現在,讓我們把這些更改應用于 K8S。

導航到瀏覽器并訪問 http:// minikube_ip : service_node_port /welcome。在本例,應該是 http:// 192.168.99.100:30880/welcome。

認真觀察輸出,返回的字符串是:

ConfigMap 怎么使用

同時,檢查代碼中硬編碼的環境變量的默認值,以及打包在 jar 中的 application.properties 的 property 默認值。你發現從 ConfigMap 中獲取了環境變量和 application.properties 的值。

“ConfigMap 怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2330字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 旺苍县| 定西市| 扬州市| 永德县| 韩城市| 万载县| 宁津县| 蓬莱市| 桃园县| 磐安县| 清水河县| 宁武县| 麻城市| 祁东县| 云梦县| 共和县| 兴山县| 文水县| 犍为县| 兰西县| 博客| 会昌县| 汝州市| 正镶白旗| 长寿区| 崇礼县| 阜宁县| 通许县| 浮梁县| 秭归县| 工布江达县| 米脂县| 和硕县| 东城区| 镇雄县| 盐边县| 长沙市| 光泽县| 图们市| 枞阳县| 连山|