成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Kubernetes 1.2 新功能解析:ConfigMap (中)

honmaple / 1095人閱讀

摘要:使用很多應(yīng)用程序的配置需要通過(guò)配置文件,命令行參數(shù)和環(huán)境變量的組合配置來(lái)完成。舉個(gè)例子,思考以下的我們可以像這樣在一個(gè)中來(lái)使用這個(gè)的鍵當(dāng)這個(gè)運(yùn)行的時(shí)候,它的輸出將包括以下幾行使用案例用設(shè)置命令行參數(shù)也可以被使用來(lái)設(shè)置容器中的命令或者參數(shù)值。

使用ConfigMap

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

ConfigMap總覽

ConfigMap API資源保持鍵-值對(duì)配置數(shù)據(jù),這個(gè)數(shù)據(jù)可以在pods里使用,或者被用來(lái)為像controller一樣的系統(tǒng)組件存儲(chǔ)配置數(shù)據(jù)。雖然ConfigMap跟Secrets類似,但是configmap可以更方便的處理不包含敏感信息的字符串
讓我們來(lái)看看完成的例子吧:

data 一欄包括了配置數(shù)據(jù)。就如同你們看到的那樣,ConfigMap可以被用來(lái)保存單個(gè)屬性,也可以用來(lái)保存一個(gè)配置文件。
配置數(shù)據(jù)可以通過(guò)很多種方式在Pods里被使用。ConfigMaps可以被用來(lái):

設(shè)置環(huán)境變量的值

在容器里設(shè)置命令行參數(shù)

在數(shù)據(jù)卷里面創(chuàng)建config文件

用戶和系統(tǒng)組件兩者都可以在ConfigMap里面存儲(chǔ)配置數(shù)據(jù)。

創(chuàng)建ConfigMaps

你可以使用 kubectl create configmap 命令輕松從文字值、文件或者目錄來(lái)創(chuàng)建ConfigMaps。
讓我們來(lái)看一看創(chuàng)建ConfigMap的很多不同的方法吧

從目錄創(chuàng)建

現(xiàn)在我們已經(jīng)有一個(gè)包含一些文件的目錄,它已經(jīng)包含了我們想要設(shè)置ConfigMaps的數(shù)據(jù):

kubectl create configmap命令可以被用來(lái)創(chuàng)建ConfigMap來(lái)存儲(chǔ)這個(gè)目錄里面每個(gè)文件的內(nèi)容:

當(dāng)--from-file指向目錄的時(shí)候,每個(gè)在目錄底下的所有文件會(huì)被用在ConfigMap里面創(chuàng)建一個(gè)鍵值對(duì),鍵的名字就是文件名,值就是文件的內(nèi)容。
讓我們來(lái)看一下這個(gè)命令創(chuàng)建的ConfigMap:

你可以看到在映射里面的兩個(gè)是從kubectl指定的目錄中創(chuàng)建的文件名。這些鍵的內(nèi)容可能會(huì)很大,所以在kubectl describe的輸出中,你只能夠看到鍵的名字和他們的大小。
如果我們想要看到鍵的值的話,我們可以僅僅只是kubectl get資源:

從文件創(chuàng)建

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

我們也可以用 --from-file 通過(guò)傳遞 key=value為個(gè)別文件設(shè)置鍵來(lái)使用:

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

從字面值創(chuàng)建

為ConfigMap使用kubectl create configmap提供字面值。--from-literal選項(xiàng)采用了 語(yǔ)法,這個(gè)語(yǔ)法允許字面值被直接運(yùn)用到命令行:

在pods里面使用ConfigMap

使用案例:在環(huán)境變量中使用ConfigMap
ConfigMap可以被用來(lái)填入環(huán)境變量。舉個(gè)例子,思考以下的ConfigMap:

我們可以像這樣在一個(gè)pod中來(lái)使用這個(gè)ConfigMap的鍵:

當(dāng)這個(gè)pod運(yùn)行的時(shí)候,它的輸出將包括以下幾行:

使用案例:用ConfigMap設(shè)置命令行參數(shù)

ConfigMap也可以被使用來(lái)設(shè)置容器中的命令或者參數(shù)值。這是一個(gè)已經(jīng)完成的使用Kubernetes$(VAR_NAME)替換的語(yǔ)法??紤]ConfigMap:

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

當(dāng)這個(gè)pod正在運(yùn)行的時(shí)候,從test-container容器的輸出將會(huì)是:

使用案例:通過(guò)數(shù)據(jù)卷插件使用ConfigMap

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

在數(shù)據(jù)卷里面使用這個(gè)ConfigMap,我們有不同的選項(xiàng)。最基本的就是將文件填入數(shù)據(jù)卷,在這個(gè)文件中,鍵就是文件名,鍵值就是文件內(nèi)容:

當(dāng)這個(gè)pod運(yùn)行的時(shí)候,輸出是這樣的:

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

當(dāng)pod運(yùn)行的時(shí)候,輸出是這樣的:

真實(shí)案例:配置Redis

讓我們來(lái)看一下真實(shí)的案例:用Configmap配置redis。我們想要將redis作為一個(gè)緩存用推薦配置來(lái)輸入redis。Redis 配置應(yīng)該包括:

docs/user-guide/configmap/redis里面有這樣一個(gè)文件;有了它,我們可以使用下面的命令來(lái)創(chuàng)建一個(gè)ConfigMap實(shí)例:

現(xiàn)在,讓我們用這個(gè)配置來(lái)創(chuàng)建一個(gè)pod:

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

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

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

限制條件

ConfigMaps必須在pod中被使用之前創(chuàng)建。Controllers可以會(huì)被寫來(lái)容忍某些配置文件數(shù)據(jù)的缺失。Configmaps屬于namespace。他們只有在相同的namespaces中通過(guò)pods被引用。
ConfigMap大小的配額是已經(jīng)一個(gè)設(shè)置好的功能。
Kubelet只支持從API服務(wù)器的pods使用ConfigMap。這包括了任意的用Kubectl創(chuàng)建的pods,或者間接的通過(guò)replication controller創(chuàng)建的pods。它不包括通過(guò)Kubelet的 --manifest-url標(biāo)志創(chuàng)建的pods,也不包括從它的REST API創(chuàng)建的pods(一般不用這些方法創(chuàng)建pods)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/32464.html

相關(guān)文章

  • Kubernetes 1.2 功能解析ConfigMap (上)

    摘要:我們希望能夠讓應(yīng)用的開發(fā)者在里充分使用這樣的模式。盡管允許類似于驗(yàn)證信息和秘鑰這些信息從應(yīng)用當(dāng)中分離,但在過(guò)去并沒有為了普通的或者非配置而存在的對(duì)象。從數(shù)據(jù)角度來(lái)看,的類型只是鍵值組。 容器的配置管理——把應(yīng)用的代碼和配置區(qū)分開,是一個(gè)好的操作。我們希望能夠讓應(yīng)用的開發(fā)者在Kubernetes里充分使用這樣的模式。盡管Secrets API允許類似于驗(yàn)證信息和秘鑰這些信息從應(yīng)用當(dāng)中分離...

    李濤 評(píng)論0 收藏0
  • Kubernetes 1.2 功能解析ConfigMap (下)

    摘要:的工作就是為作出的修改查看我們的配置文件,并且運(yùn)行讀取配置文件的新版本回調(diào)函數(shù),使用設(shè)置新的。它的目標(biāo)是使任意額外的成為一個(gè)單獨(dú)更新的,這樣我們只要執(zhí)行一次回調(diào)函數(shù)。 Kubernetes 1.2版本添加了一個(gè)叫ConfigMap的新功能。這個(gè)功能提供給容器注入應(yīng)用程序數(shù)據(jù)的方式。注入配置文件對(duì)于大部分應(yīng)用程序來(lái)說(shuō)很強(qiáng)大,但是新的ConfigMap功能不僅可以在容器開啟時(shí)提供初始配置功...

    Blackjun 評(píng)論0 收藏0
  • 如何使用Kubernetesconfigmap通過(guò)環(huán)境變量注入到pod里

    摘要:實(shí)際上就是一系列鍵值對(duì),存儲(chǔ)于里。在區(qū)域,我給該注入一個(gè)名為的環(huán)境變量,值從鍵值對(duì)的鍵名稱為的值中取。創(chuàng)建這個(gè)使用命令查看這個(gè)運(yùn)行生成的日志,發(fā)現(xiàn)輸出的環(huán)境變量列表中,出現(xiàn)了,這個(gè)是我在文件里注入的環(huán)境變量名稱,而就來(lái)自里的值。 在Kubernetes官網(wǎng)里,有這樣一篇文章,提到了Kubernetes里的一個(gè)最佳實(shí)踐就是把應(yīng)用代碼同配置信息分開,一種方式就是使用Kubernetes 1...

    W4n9Hu1 評(píng)論0 收藏0
  • 如何使用Kubernetesconfigmap通過(guò)環(huán)境變量注入到pod里

    摘要:實(shí)際上就是一系列鍵值對(duì),存儲(chǔ)于里。在區(qū)域,我給該注入一個(gè)名為的環(huán)境變量,值從鍵值對(duì)的鍵名稱為的值中取。創(chuàng)建這個(gè)使用命令查看這個(gè)運(yùn)行生成的日志,發(fā)現(xiàn)輸出的環(huán)境變量列表中,出現(xiàn)了,這個(gè)是我在文件里注入的環(huán)境變量名稱,而就來(lái)自里的值。 在Kubernetes官網(wǎng)里,有這樣一篇文章,提到了Kubernetes里的一個(gè)最佳實(shí)踐就是把應(yīng)用代碼同配置信息分開,一種方式就是使用Kubernetes 1...

    YorkChen 評(píng)論0 收藏0
  • 如何使用Kubernetesconfigmap通過(guò)環(huán)境變量注入到pod里

    摘要:實(shí)際上就是一系列鍵值對(duì),存儲(chǔ)于里。在區(qū)域,我給該注入一個(gè)名為的環(huán)境變量,值從鍵值對(duì)的鍵名稱為的值中取。創(chuàng)建這個(gè)使用命令查看這個(gè)運(yùn)行生成的日志,發(fā)現(xiàn)輸出的環(huán)境變量列表中,出現(xiàn)了,這個(gè)是我在文件里注入的環(huán)境變量名稱,而就來(lái)自里的值。 在Kubernetes官網(wǎng)里,有這樣一篇文章,提到了Kubernetes里的一個(gè)最佳實(shí)踐就是把應(yīng)用代碼同配置信息分開,一種方式就是使用Kubernetes 1...

    luffyZh 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<