管理和使用配置項(xiàng)(K8s ConfigMap)
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細(xì)閱讀。
命名空間中的配置項(xiàng)用于存儲(chǔ)應(yīng)用所需的配置信息,它可以作為容器運(yùn)行環(huán)境中的環(huán)境變量,便于應(yīng)用部署后靈活變更容器配置,也可以通過命令行參數(shù)或掛載配置文件的方式向容器中注入配置信息。本文介紹如何在SAE控制臺(tái)創(chuàng)建和使用命名空間的配置項(xiàng)。
背景信息
在Serverless 應(yīng)用引擎 SAE(Serverless App Engine)環(huán)境中,ConfigMap和Secret是兩種用來存儲(chǔ)配置信息的資源,它們都允許將配置與容器鏡像分離,便于應(yīng)用配置的管理。不過,它們之間的適用場景有所不同。
ConfigMap通常被用于存儲(chǔ)常規(guī)配置項(xiàng),如配置文件內(nèi)容、命令行參數(shù)和其他非機(jī)密數(shù)據(jù)。它們能夠以文件掛載、環(huán)境變量或命令行參數(shù)的方式注入到Pod內(nèi),使您能夠輕松地更新應(yīng)用設(shè)置而無需重建容器鏡像。
Secret主要用于保存敏感數(shù)據(jù),例如密碼、證書和SSH密鑰等。與ConfigMaps類似,Secret可以作為文件掛載或者以環(huán)境變量的形式提供給Pod的容器。為了降低泄露的危險(xiǎn),Kubernetes對Secret中的數(shù)據(jù)進(jìn)行了加密,并在內(nèi)存中安全地處理。
限制條件
命名空間的配置項(xiàng)僅用于容器運(yùn)行環(huán)境的存儲(chǔ)及配置,如果您需要?jiǎng)?chuàng)建應(yīng)用代碼的配置文件,請參見管理配置。
如果您需要存儲(chǔ)密鑰、證書等敏感信息,請使用保密字典。具體信息,請參見管理和使用保密字典(K8s Secret)。
創(chuàng)建配置項(xiàng)
登錄SAE控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊命名空間,在頂部菜單欄選擇目標(biāo)地域,然后單擊目標(biāo)命名空間名稱。
在左側(cè)導(dǎo)航欄,單擊配置項(xiàng),在配置項(xiàng)頁面,單擊創(chuàng)建。
在彈出的創(chuàng)建配置項(xiàng)面板,根據(jù)下表說明完成參數(shù)配置,然后單擊確定。
使用表單編輯
配置項(xiàng)
說明
示例
所屬命名空間
不支持修改。
cn-beijing:******
配置項(xiàng)名稱
自定義名稱。
test
配置映射
單擊使用表單編輯,然后單擊+ 添加變量,在對話框中自定義變量名和變量值。
變量:env_shell
值:/bin/sh
單擊使用表單編輯,然后單擊+ 添加變量,在變量對話框中自定義變量名,并在值對應(yīng)的文本框中單擊圖標(biāo)。接著,在彈出的編輯面板中將文件拖拽至該面板,文件內(nèi)容將自動(dòng)生成于編輯面板中,隨后可對文件內(nèi)容進(jìn)行修改。
變量名:server_xml
變量值:將已修改的
server.xml
文件內(nèi)容復(fù)制到彈出的編輯面板中。
重要由于配置項(xiàng)是通過注入方式修改配置文件,即配置項(xiàng)中的內(nèi)容會(huì)覆蓋原配置文件中的內(nèi)容,因此需要先將原配置文件的內(nèi)容復(fù)制到本地,修改后再將其復(fù)制到配置項(xiàng)中。
使用JSON格式編輯
配置項(xiàng)
說明
示例
所屬命名空間
不支持修改。
cn-beijing:******
配置項(xiàng)名稱
自定義名稱。
test
配置映射
單擊使用 JSON 格式編輯,在代碼框中輸入JSON格式的配置信息。
{ "nv_shell": "/bin/sh", "nginx_conf": "daemon off;\nworker_processes 2;\nuser www-data;\n\nevents {\n use epoll;\n worker_connections 128;\n}\n\nerror_log logs/error.log info;\n\nhttp {\n server_tokens off;\n include mime.types;\n charset utf-8;\n\n access_log logs/access.log combined;\n\n server {\n server_name localhost;\n listen 127.0.0.1:80;\n\n error_page 500 502 503 504 /50x.html;\n\n location / {\n root html;\n }\n\n }" }
使用YAML格式編輯
配置項(xiàng)
說明
示例
所屬命名空間
不支持修改。
cn-beijing:******
配置項(xiàng)名稱
自定義名稱。
test
配置映射
單擊使用 YAML 格式編輯,在代碼框中輸入YAML格式的配置信息。
nv_shell: /bin/sh nginx_conf: |- daemon off; worker_processes 2; user www-data; events { use epoll; worker_connections 128; } error_log logs/error.log info; http { server_tokens off; include mime.types; charset utf-8; access_log logs/access.log combined; server { server_name localhost; listen 127.0.0.1:80; error_page 500 502 503 504 /50x.html; location / { root html; } }
創(chuàng)建的配置項(xiàng)將顯示在配置項(xiàng)頁面,您可以對其進(jìn)行編輯、復(fù)制和刪除操作。
說明修改后的配置項(xiàng)新版本僅對新實(shí)例生效(如手動(dòng)新擴(kuò)容或自動(dòng)彈性的新實(shí)例),對存量實(shí)例不生效。
刪除配置項(xiàng)將會(huì)影響這些應(yīng)用的正常運(yùn)行。請先在關(guān)聯(lián)應(yīng)用中解除對該配置項(xiàng)的使用后再刪除。
重要當(dāng)您對應(yīng)用中的配置項(xiàng)進(jìn)行修改后,為了確保這些更改能夠在應(yīng)用的所有實(shí)例中生效并保持一致,您需要手動(dòng)執(zhí)行重啟應(yīng)用或重新部署應(yīng)用的操作。
注入配置信息
在創(chuàng)建應(yīng)用過程中注入配置信息
登錄SAE控制臺(tái),在左側(cè)導(dǎo)航欄選擇 ,然后選擇目標(biāo)地域和目標(biāo)命名空間,最后單擊創(chuàng)建應(yīng)用。
在創(chuàng)建應(yīng)用頁面,按照下表說明完成應(yīng)用基本信息的參數(shù)配置。
配置區(qū)域
配置項(xiàng)
說明
基礎(chǔ)信息設(shè)置區(qū)域
應(yīng)用名稱
自定義應(yīng)用名稱。名稱為1~36個(gè)字符,可包含數(shù)字、字母以及中劃線(-),必須以字母開頭。
應(yīng)用描述
介紹應(yīng)用的基本情況。
命名空間類型
可選擇的有以下兩種類型:
系統(tǒng)創(chuàng)建:應(yīng)用將在目標(biāo)地域下的默認(rèn)命名空間內(nèi)進(jìn)行創(chuàng)建。
選擇已有命名空間:從下拉列表選擇已創(chuàng)建的自定義命名空間、交換機(jī) vSwitch和安全組。
應(yīng)用部署方式
選擇鏡像部署,然后單擊設(shè)置鏡像。
在彈出的設(shè)置鏡像面板中,按照以下說明進(jìn)行部署。
技術(shù)棧語言:選擇目標(biāo)語言。
語言環(huán)境:在下拉框中選擇對應(yīng)語言的運(yùn)行環(huán)境。
說明當(dāng)技術(shù)棧語言是Java或PHP時(shí),才能選擇語言環(huán)境。
選擇我的阿里云鏡像。
說明您也可以選擇Demo鏡像、自定義鏡像和其它阿里云賬號(hào)私有鏡像,然后按照控制臺(tái)提示設(shè)置其他信息。本文以拉取我的阿里云鏡像倉庫中鏡像為例進(jìn)行說明。
鏡像服務(wù)版本:選擇鏡像服務(wù)個(gè)人版或鏡像服務(wù)企業(yè)版。
單擊鏡像倉庫命名空間,選擇鏡像倉庫命名空間。
單擊目標(biāo)鏡像倉庫名稱選擇鏡像版本列的下拉框,選擇鏡像版本。
單擊確定。
容量設(shè)置
單實(shí)例規(guī)格
設(shè)置單實(shí)例的CPU和內(nèi)存,取值范圍為[1,50]。默認(rèn)值為2。
實(shí)例數(shù)
設(shè)置實(shí)例個(gè)數(shù),取值范圍為[1,50]。默認(rèn)值為2。
單擊下一步:高級設(shè)置。
在高級設(shè)置頁面,單擊配置管理區(qū)域。
單擊+ 添加,從下拉列表中選擇在創(chuàng)建配置項(xiàng)中創(chuàng)建的配置項(xiàng)名稱,并選擇期望注入此應(yīng)用的鍵,然后填寫自定義掛載路徑。
說明除了在命名空間頁面提前創(chuàng)建好配置項(xiàng),您也可以在配置管理區(qū)域單擊創(chuàng)建配置項(xiàng)(K8s configmap),在創(chuàng)建配置項(xiàng)面板創(chuàng)建配置項(xiàng)。
您也可單擊管理配置項(xiàng),對已創(chuàng)建好的配置項(xiàng)進(jìn)行編輯。
支持掛載全部鍵。從鍵下拉列表選擇全部,將該配置項(xiàng)的所有鍵掛載到該路徑。
支持添加多個(gè)配置項(xiàng)。
單擊創(chuàng)建應(yīng)用。
可以通過以下方式驗(yàn)證配置是否生效:
方式一:
在應(yīng)用基本信息頁面的左側(cè)導(dǎo)航欄,單擊變更記錄,在變更記錄頁面,查看應(yīng)用變更詳情。如果顯示執(zhí)行成功,表示應(yīng)用部署成功,配置已生效。
方式二:
在應(yīng)用基本信息頁面,單擊實(shí)例部署信息頁簽,查看實(shí)例的運(yùn)行狀態(tài)。如果運(yùn)行狀態(tài)顯示為Running,表示應(yīng)用部署成功,配置已生效。
在部署應(yīng)用過程中注入配置信息
重新部署應(yīng)用后,該應(yīng)用將會(huì)被重啟。為避免業(yè)務(wù)中斷等不可預(yù)知的錯(cuò)誤,請?jiān)跇I(yè)務(wù)低峰期執(zhí)行部署操作。
登錄SAE控制臺(tái),在左側(cè)導(dǎo)航欄選擇 ,然后選擇目標(biāo)地域和目標(biāo)命名空間,最后單擊創(chuàng)建應(yīng)用。
在目標(biāo)應(yīng)用的基本信息頁面,單擊部署應(yīng)用。
在部署應(yīng)用頁面,單擊配置管理區(qū)域,然后選擇配置項(xiàng)名稱和鍵,填寫掛載路徑。
說明除了在命名空間頁面提前創(chuàng)建好配置項(xiàng),您也可以在配置管理區(qū)域單擊創(chuàng)建配置項(xiàng)(K8s configmap),在創(chuàng)建配置項(xiàng)面板創(chuàng)建配置項(xiàng)。
支持掛載全部鍵。從鍵下拉列表選擇全部,將該配置項(xiàng)的所有鍵掛載到該路徑。
支持添加多個(gè)配置項(xiàng)。
單擊確認(rèn)。
可以通過以下方式驗(yàn)證配置是否生效:
方式一:
在應(yīng)用基本信息頁面的左側(cè)導(dǎo)航欄,單擊變更記錄,在變更記錄頁面,查看應(yīng)用變更詳情。如果顯示執(zhí)行成功,表示應(yīng)用部署成功,配置已生效。
方式二:
在應(yīng)用基本信息頁面,單擊實(shí)例部署信息頁簽,查看實(shí)例的運(yùn)行狀態(tài)。如果運(yùn)行狀態(tài)顯示為Running,表示應(yīng)用部署成功,配置已生效。
將配置項(xiàng)用作環(huán)境變量
配置項(xiàng)可以用作容器運(yùn)行環(huán)境中的環(huán)境變量,便于部署后靈活變更容器配置。本文介紹如何在設(shè)置環(huán)境變量時(shí)引用配置項(xiàng)。
登錄SAE控制臺(tái),在左側(cè)導(dǎo)航欄選擇 ,然后選擇目標(biāo)地域和目標(biāo)命名空間,最后單擊創(chuàng)建應(yīng)用。
在創(chuàng)建應(yīng)用頁面,按照頁面提示完成應(yīng)用基本信息的參數(shù)配置,然后單擊下一步:高級設(shè)置。
在高級設(shè)置頁面,單擊環(huán)境變量區(qū)域。
在環(huán)境變量區(qū)域,單擊類型下拉框,選擇引用配置項(xiàng),自定義變量名稱,然后選擇配置項(xiàng)名稱和鍵。
說明除了在命名空間頁面提前創(chuàng)建好配置項(xiàng),您也可以在環(huán)境變量區(qū)域單擊創(chuàng)建配置項(xiàng)(K8s configmap),在創(chuàng)建配置項(xiàng)面板進(jìn)行創(chuàng)建。
單擊+ 添加,可以引用多個(gè)配置項(xiàng)。
單擊創(chuàng)建應(yīng)用。
可以通過以下方式驗(yàn)證配置是否生效:
方式一:
在應(yīng)用基本信息頁面的左側(cè)導(dǎo)航欄,單擊變更記錄,在變更記錄頁面,查看應(yīng)用變更詳情。如果顯示執(zhí)行成功,表示應(yīng)用部署成功,配置已生效。
方式二:
在應(yīng)用基本信息頁面,單擊實(shí)例部署信息頁簽,查看實(shí)例的運(yùn)行狀態(tài)。如果運(yùn)行狀態(tài)顯示為Running,表示應(yīng)用部署成功,配置已生效。
最佳實(shí)踐
PHP如何配置php-fpm.conf
本文以使用YAML編輯為例創(chuàng)建配置項(xiàng)進(jìn)行說明。
創(chuàng)建配置項(xiàng)。具體操作,請參見創(chuàng)建配置項(xiàng)。
配置項(xiàng)
說明
示例
所屬命名空間
不支持修改。
cn-beijing:******
配置項(xiàng)名稱
自定義名稱。
php-fpm
配置項(xiàng)描述
非必填項(xiàng):自定義配置項(xiàng)描述信息。
www.conf
配置映射
單擊使用 YAML 編輯,在代碼框中輸入YAML格式的配置信息。
www_conf: | [www] user = www-data group = www-data listen = 127.0.0.1:9000 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
注入配置信息。具體操作,請參見注入配置信息。
配置項(xiàng)
說明
配置項(xiàng)名稱
選擇已創(chuàng)建的php-fpm。
鍵
選擇已創(chuàng)建的www.conf。
掛載路徑
輸入以下路徑。
/usr/local/etc/php-fpm.d/www.conf