摘要:我們希望能夠讓應用的開發者在里充分使用這樣的模式。盡管允許類似于驗證信息和秘鑰這些信息從應用當中分離,但在過去并沒有為了普通的或者非配置而存在的對象。從數據角度來看,的類型只是鍵值組。
容器的配置管理——把應用的代碼和配置區分開,是一個好的操作。我們希望能夠讓應用的開發者在Kubernetes里充分使用這樣的模式。盡管Secrets API允許類似于驗證信息和秘鑰這些信息從應用當中分離,但在過去并沒有為了普通的或者非secret配置而存在的對象。在Kubernetes 1.2中,我們加入了一個新的API資源,叫做ConfigMap來處理這種類型的配置數據。
ConfigMap基本原理ConfigMap的API概念上來說是很簡單的。從數據角度來看,ConfigMap的類型只是鍵值組。應用可以從不同角度來配置,所以關于給用戶如何存儲和使用配置數據,我們需要給他們一些彈性。在一個pod里面使用ConfigMap大致有三種方式:
命令行參數
環境變量
數據卷文件
這些不同的方法就需要有不同的數據建模方式來使用數據。為了盡可能提供多的彈性,我們使用ConfigMap來承載既有粗力度也有細粒度的數據。另外,由于應用會從環境變量和包含配置數據的文件讀取配置信息,我們建立ConfigMap來支持這兩者任何一種的讀取方式。讓我們來看一個例子,ConfigMap時如何獲得這兩種配置的。
用過Secrets的人會發現ConfigMap用起來很簡單——二者非常相似。這些API的一個主要的區別在于,Secret的數值是用byte數組形式存起來的用來支持存儲像SSH keys這樣的二進制。在JSON和YAML里,byte數組被序列化成base64位字符串。這意味著光看被序列化的格式,無法很容易地得出Secret的內容是什么。由于ConfigMap是為了僅僅存儲配置信息而非二進制,數值被存為字符串,這樣在被序列化格式也可讀。
我們希望創建ConfigMap就像在它里面存數據一樣有彈性。創建一個ConfigMap對象,我們已經加了一個kubectl命令,叫做“kubectl create configmap”,提供三種方式來說明健值組:
說明liberal key和value
說明一個多帶帶的文件
說明一個給每個文件創建key的路徑
這些不同的選項可以在一個命令里混合、配對著或重復使用。
使用ConfigMap也很簡單,對于用過Secrets的開發者來說也會感覺熟悉。下面是一個例子,如何來使用上文的ConfigMap來部署,跑一個游戲的server:
從上面這個例子可以看出,這個部署使用了從ConfigMap的兩個不同機制的key。這個類似于屬性一樣的 ConfigMap的key被用作為部署模版中單個容器的環境變量,類似文件一樣的key填充一個數據卷。
我們希望這些基本原理操作起來還算容易,也想看看大家用ConfigMap能搭出什么樣的東西來。大家如果對K8S項目和配置方面的內容感興趣,可以來參與我們的工作:
(1)我們關于Configuration的在slack上的渠道:點擊
(2)K8S configuration這塊的email list可以加入:點擊
(3)Configuration興趣小組,每周三太平洋時間上午10點:SIG-Config hangout: 點擊
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32438.html
摘要:的工作就是為作出的修改查看我們的配置文件,并且運行讀取配置文件的新版本回調函數,使用設置新的。它的目標是使任意額外的成為一個單獨更新的,這樣我們只要執行一次回調函數。 Kubernetes 1.2版本添加了一個叫ConfigMap的新功能。這個功能提供給容器注入應用程序數據的方式。注入配置文件對于大部分應用程序來說很強大,但是新的ConfigMap功能不僅可以在容器開啟時提供初始配置功...
摘要:使用很多應用程序的配置需要通過配置文件,命令行參數和環境變量的組合配置來完成。舉個例子,思考以下的我們可以像這樣在一個中來使用這個的鍵當這個運行的時候,它的輸出將包括以下幾行使用案例用設置命令行參數也可以被使用來設置容器中的命令或者參數值。 使用ConfigMap 很多應用程序的配置需要通過配置文件,命令行參數和環境變量的組合配置來完成。這些配置應該從image內容中解耦,以此來保持容...
摘要:我們很高興地宣布,在中,增加了對可配置的私有區域通常稱為存根域和外部上游名稱服務器的支持。例如,下面的配置插入單個存根域和兩個上游名稱服務器。具有存根域后綴的名稱例如將被發送到配置的自定義解析程序。 許多用戶他們想要集成domain name zones(現有域名區域)到Kubernetes DNS 命名空間。例如,混合云用戶可能希望在群集內解析其內部.corp域地址。其他用戶可能具有...
摘要:我們很高興地宣布,在中,增加了對可配置的私有區域通常稱為存根域和外部上游名稱服務器的支持。例如,下面的配置插入單個存根域和兩個上游名稱服務器。具有存根域后綴的名稱例如將被發送到配置的自定義解析程序。 許多用戶他們想要集成domain name zones(現有域名區域)到Kubernetes DNS 命名空間。例如,混合云用戶可能希望在群集內解析其內部.corp域地址。其他用戶可能具有...
摘要:實際上就是一系列鍵值對,存儲于里。在區域,我給該注入一個名為的環境變量,值從鍵值對的鍵名稱為的值中取。創建這個使用命令查看這個運行生成的日志,發現輸出的環境變量列表中,出現了,這個是我在文件里注入的環境變量名稱,而就來自里的值。 在Kubernetes官網里,有這樣一篇文章,提到了Kubernetes里的一個最佳實踐就是把應用代碼同配置信息分開,一種方式就是使用Kubernetes 1...
閱讀 1184·2021-11-22 13:54
閱讀 2435·2021-09-22 15:36
閱讀 2738·2019-08-30 15:54
閱讀 809·2019-08-30 15:53
閱讀 3172·2019-08-30 15:53
閱讀 518·2019-08-29 15:21
閱讀 2870·2019-08-28 18:28
閱讀 3015·2019-08-26 13:37