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

Kubernetes 1.2中如何使用ConfigMap

203次閱讀
沒有評論

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

這篇文章主要介紹 Kubernetes 1.2 中如何使用 ConfigMap,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

使用 ConfigMap

很多應用程序的配置需要通過配置文件,命令行參數和環境變量的組合配置來完成。這些配置應該從 image 內容中解耦,以此來保持容器化應用程序的便攜性。ConfigMap API 資源提供了將配置數據注入容器的方式,同時保持容器是不知道 Kubernetes 的。ConfigMap 可以被用來保存單個屬性,也可以用來保存整個配置文件或者 JSON 二進制大對象。

ConfigMap 總覽

ConfigMap API 資源保持鍵-值對配置數據,這個數據可以在 pods 里使用,或者被用來為像 controller 一樣的系統組件存儲配置數據。雖然 ConfigMap 跟 Secrets 類似,但是 configmap 可以更方便的處理不包含敏感信息的字符串

讓我們來看看完成的例子吧:

data  一欄包括了配置數據。就如同你們看到的那樣,ConfigMap 可以被用來保存單個屬性,也可以用來保存一個配置文件。

配置數據可以通過很多種方式在 Pods 里被使用。ConfigMaps 可以被用來:

1、      設置環境變量的值

2、  在容器里設置命令行參數

3、  在數據卷里面創建 config 文件

用戶和系統組件兩者都可以在 ConfigMap 里面存儲配置數據。

創建 ConfigMaps

你可以使用  kubectl create configmap  命令輕松從文字值、文件或者目錄來創建 ConfigMaps。

讓我們來看一看創建 ConfigMap 的很多不同的方法吧:

1、從文件創建

現在我們已經有一個包含一些文件的目錄,它已經包含了我們想要設置 ConfigMaps 的數據:

kubectl create configmap 命令可以被用來創建 ConfigMap 來存儲這個目錄里面每個文件的內容:

當 –from-file 指向目錄的時候,每個在目錄底下的所有文件會被用在 ConfigMap 里面創建一個鍵值對,鍵的名字就是文件名,值就是文件的內容。

讓我們來看一下這個命令創建的 ConfigMap:

你可以看到在映射里面的兩個是從 kubectl 指定的目錄中創建的文件名。這些鍵的內容可能會很大,所以在 kubectl describe 的輸出中,你只能夠看到鍵的名字和他們的大小。

如果我們想要看到鍵的值的話,我們可以僅僅只是 kubectl get 資源:

2、從文件創建

我們也可以傳遞給 –from-file 一個特定文件,并且多次傳遞到 kubectl。以下命令跟上文例子中的結果是一樣的:

我們也可以用  –from-file  通過傳遞  key=value 為個別文件設置鍵來使用:

–from-file=game-special-key=docs/user-guide/configmap/kubectl/game.properties

3、從字面值創建

為 ConfigMap 使用 kubectl create configmap 提供字面值。–from-literal 選項采用了   語法,這個語法允許字面值被直接運用到命令行:

Kubernetes 1.2 中如何使用 ConfigMap

Kubernetes 1.2 中如何使用 ConfigMap

在 pods 里面使用 ConfigMap

使用案例:在環境變量中使用 ConfigMap

ConfigMap 可以被用來填入環境變量。舉個例子,思考以下的 ConfigMap:

Kubernetes 1.2 中如何使用 ConfigMap

我們可以像這樣在一個 pod 中來使用這個 ConfigMap 的鍵:

Kubernetes 1.2 中如何使用 ConfigMap

當這個 pod 運行的時候,它的輸出將包括以下幾行:

Kubernetes 1.2 中如何使用 ConfigMap

使用案例:用 ConfigMap 設置命令行參數

ConfigMap 也可以被使用來設置容器中的命令或者參數值。這是一個已經完成的使用 Kubernetes$(VAR_NAME) 替換的語法??紤] ConfigMap:

Kubernetes 1.2 中如何使用 ConfigMap

為了輸入值到命令行里面,我們必須使用我們想要使用的鍵來作為環境變量,就如在上一個例子中的一樣。然后我們可以參考他們,在容器的命令里使用 $(VAR_NAME) 語法。

Kubernetes 1.2 中如何使用 ConfigMap

當這個 pod 正在運行的時候,從 test-container 容器的輸出將會是:

Kubernetes 1.2 中如何使用 ConfigMap

使用案例:通過數據卷插件使用 ConfigMap 

ConfigMap 也可以在數據卷里面被使用。再次回到我們的 ConfigMap 的例子:

Kubernetes 1.2 中如何使用 ConfigMap

在數據卷里面使用這個 ConfigMap,我們有不同的選項。最基本的就是將文件填入數據卷,在這個文件中,鍵就是文件名,鍵值就是文件內容:

Kubernetes 1.2 中如何使用 ConfigMap

當這個 pod 運行的時候,輸出是這樣的:

Kubernetes 1.2 中如何使用 ConfigMap

我們也可以在 ConfigMap 值被映射的數據卷里控制路徑。

Kubernetes 1.2 中如何使用 ConfigMap

當 pod 運行的時候,輸出是這樣的:

Kubernetes 1.2 中如何使用 ConfigMap

真實案例:配置 Redis

讓我們來看一下真實的案例:用 Configmap 配置 redis。我們想要將 redis 作為一個緩存用推薦配置來輸入 redis。Redis 配置應該包括:

Kubernetes 1.2 中如何使用 ConfigMap

 docs/user-guide/configmap/redis 里面有這樣一個文件;有了它,我們可以使用下面的命令來創建一個 ConfigMap 實例:

Kubernetes 1.2 中如何使用 ConfigMap

Kubernetes 1.2 中如何使用 ConfigMap

現在,讓我們用這個配置來創建一個 pod:

Kubernetes 1.2 中如何使用 ConfigMap

注意,這個 pod 有一個 ConfigMap 數據卷,它在一個叫 redis.conf 的文件里替代了  example-redis-config  ConfigMap 的  redis-config 密鑰。這個數據卷增長到 redis 容器的  /redis-master 目錄里,在 /redis-master/redis.conf 里替代了我們的配置文件,/redis-master/redis.conf

就是 image 為 master 查找的 redis 配置文件。

Kubernetes 1.2 中如何使用 ConfigMap

如果我們 kubectl exec 到這個 pod,并且運行 redis-cli 工具,我們可以檢查到我們的配置被正確運用:

Kubernetes 1.2 中如何使用 ConfigMap

限制條件

ConfigMaps 必須在 pod 中被使用之前創建。Controllers 可以會被寫來容忍某些配置文件數據的缺失。Configmaps 屬于 namespace。他們只有在相同的 namespaces 中通過 pods 被引用。

ConfigMap 大小的配額是已經一個設置好的功能。

Kubelet 只支持從 API 服務器的 pods 使用 ConfigMap。這包括了任意的用 Kubectl 創建的 pods,或者間接的通過 replication controller 創建的 pods。它不包括通過 Kubelet 的  –manifest-url 標志創建的 pods,也不包括從它的 REST API 創建的 pods(一般不用這些方法創建 pods)。

以上是“Kubernetes 1.2 中如何使用 ConfigMap”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2681字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 安泽县| 冷水江市| 东台市| 岑溪市| 托里县| 镇赉县| 富川| 尼玛县| 玉田县| 湾仔区| 新绛县| 金川县| 四平市| 将乐县| 诏安县| 都昌县| 陇西县| 鹤壁市| 四子王旗| 娄底市| 奇台县| 合阳县| 嵊州市| 西平县| 大新县| 科技| 忻城县| 沙河市| 乃东县| 剑阁县| 甘谷县| 都匀市| 普格县| 渑池县| 上虞市| 达州市| 绵阳市| 多伦县| 南江县| 丹阳市| 新乡市|