配置項(K8s ConfigMap)可以作為應用運行時的環境變數,也可以作為設定檔掛載到應用程式容器內的檔案系統。使用配置項(K8s ConfigMap)的好處是可以在應用部署後靈活變更配置,而無需重新構建鏡像。
如需從配置中心動態擷取所需的配置資訊,則不適用本文,請參見使用MSE的Nacos註冊中心或管理分布式配置(ACM)。
如需儲存體金鑰、認證等敏感資訊,請參見管理和使用保密字典(K8s Secret)。
建立配置項(ConfigMap)
在SAE配置項(ConfigMap)中,在頂部選擇目標地區和命名空間,點擊建立。注意需要選擇目標應用所在的命名空間。
自訂配置項名稱。
配置映射,選擇合適的編輯模式來組態變數名和變數值的映射:
使用表單編輯:添加變數,填寫變數名和變數值。可以添加多個變數。對於較長的設定檔內容,可以點擊變數值旁的
表徵圖,粘貼並編輯內容。使用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格式編輯:在代碼框中輸入單個或多個變數名和變數值的映射。樣本如下:
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; } }
在配置項(ConfigMap)列表中查看已建立的配置項,可以按需執行編輯、複製、查看歷史、刪除操作。
重要完成建立配置項(ConfigMap)後,需要將配置項(ConfigMap)用作應用的環境變數或將配置項(ConfigMap)作為設定檔掛載到應用的檔案系統方可生效。
對配置項(ConfigMap)進行修改後,需要手動重新部署引用該配置項的應用,以確保變更生效。
刪除配置項(ConfigMap)將會影響引用該配置項的應用的正常運行,請注意在刪除前解除應用對配置項的引用。
將配置項(ConfigMap)用作應用的環境變數
建立應用
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊建立應用。在應用基本資料頁面進行配置後,單擊下一步:進階設定。
對正在啟動並執行應用進行變更
警告重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。在左側導覽列點擊基礎資訊,在右上方點擊部署應用。
對已停止的應用進行變更
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。點擊基礎資訊,點擊修改應用配置。
在環境變數地區,選擇類型為引用配置項,自訂在當前應用中的變數名稱(對於引用全部鍵,則無需指定變數名稱,而是直接使用鍵名作為變數名稱),然後選擇引用已建立的配置項名稱和鍵(配置項中的變數名,支援引用全部鍵)。可以添加多個配置項。
等待應用部署成功。驗證配置是否生效:登入應用執行個體的Webshell,執行
env | grep <變數名稱>,注意將其中<變數名稱>替換為之前配置的實際值。返回變數名和變數值的映射,表明配置生效。
將配置項(ConfigMap)作為設定檔掛載到應用的檔案系統
將配置項(ConfigMap)掛載到應用程式容器內的檔案系統,配置項的值作為檔案內容,檔案路徑和檔案名稱可自訂。如果檔案路徑下存在同名檔案,則掛載的檔案會替換原有檔案。
掛載的檔案常作為應用的設定檔,以實現靈活變更配置,而無需重新構建鏡像。如需修改應用程式容器中原有的設定檔,請先將原設定檔內容複寫到本地,修改後將其儲存為配置項(ConfigMap)的值,再參考下文將其掛載到應用的檔案系統。
建立應用
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊建立應用。在應用基本資料頁面進行配置後,單擊下一步:進階設定。
對正在啟動並執行應用進行變更
警告重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。在左側導覽列點擊基礎資訊,在右上方點擊部署應用。
對已停止的應用進行變更
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。點擊基礎資訊,點擊修改應用配置。
在組態管理地區,單擊+ 添加,選擇引用已建立的配置項名稱和鍵(配置項中的變數名,支援掛載全部鍵),然後自訂掛載路徑(對於掛載單個鍵,填寫包含檔案名稱的絕對路徑;對於掛載全部鍵,填寫不包含檔案名稱的絕對路徑,SAE將各配置項的鍵名自動作為檔案名稱)。可以添加多個配置項。
等待應用部署成功。驗證配置是否生效:登入應用執行個體的Webshell,查看掛載路徑下的檔案內容。