保密字典(K8s Secret)用於配置應用運行時的敏感資訊,如密鑰或認證。使用保密字典(K8s Secret)的好處是可以在應用部署後靈活變更配置,而無需重新構建鏡像。
如需從配置中心動態擷取所需的配置資訊,則不適用本文,請參見使用MSE的Nacos註冊中心或管理分布式配置(ACM)。
如僅需儲存應用運行時的環境變數,而不涉及敏感資訊,請參見管理和使用配置項(K8s ConfigMap)。
建立保密字典
在SAE保密字典(Secret)中,在頂部選擇目標地區和命名空間,點擊建立。注意需要選擇目標應用所在的命名空間。
自訂保密字典的名稱。
選擇類型並配置:
Opaque:以索引值對的形式儲存無特定格式的敏感資訊,如密碼或API密鑰。
索引值對:定義索引值對的Key和Value。點擊添加,可以定義多個索引值對。
重要Value在儲存時僅支援Base64編碼格式,可以通過以下方式定義:
填寫原始格式的Value,開啟系統自動對 value 進行 Base64編碼。
填寫經過Base64編碼後的Value,關閉系統自動對 value 進行 Base64編碼(否則將二次編碼)。
私人鏡像倉庫登入密鑰:用於儲存訪問私人容器鏡像倉庫的憑證,確保SAE在部署應用時有許可權拉取私人鏡像。
鏡像倉庫地址:格式為
<鏡像倉庫的網域名稱或IP>:<鏡像倉庫的服務連接埠>,需要確保SAE和鏡像倉庫間的網路連通性。對於阿里雲Container RegistryACR企業版,配置網路訪問並擷取鏡像倉庫地址的方式,請參見使用企業版執行個體推送和拉取鏡像。使用者名稱和密碼。
TLS認證:當應用服務需要對外提供HTTPS訪問時,可用於儲存TLS認證。
Cert和Key:TLS 認證的公開金鑰(Cert)以及私密金鑰(Key),需要輸入Base64編碼內容。
在保密字典(Secret)列表中查看已建立的保密字典,可以按需執行編輯、複製、刪除操作。
重要對保密字典(Secret)進行修改後,需要手動重新部署引用該保密字典的應用,以確保變更生效。
刪除保密字典(Secret)將會影響引用該保密字典的應用的正常運行,請注意在刪除前解除應用對保密字典的引用。
使用保密字典拉取鏡像
以部署應用時拉取鏡像為例,請參見使用不同帳號ACR執行個體的鏡像部署應用或使用非ACR執行個體的鏡像部署應用。
將保密字典(Secret)用作應用的環境變數
建立應用
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊建立應用。在應用基本資料頁面進行配置後,單擊下一步:進階設定。
對正在啟動並執行應用進行變更
警告重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。在左側導覽列點擊基礎資訊,在右上方點擊部署應用。
對已停止的應用進行變更
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。點擊基礎資訊,點擊修改應用配置。
在環境變數地區,選擇類型為引用保密字典,自訂在當前應用中的變數名稱(對於引用全部鍵,則無需指定變數名稱,而是直接使用鍵名作為變數名稱),然後選擇引用已建立的保密字典名稱和鍵(保密字典中的變數名,支援引用全部鍵)。點擊添加,可以添加多個保密字典。
等待應用部署成功。驗證配置是否生效:登入應用執行個體的Webshell,執行
env | grep <變數名稱>,注意將其中<變數名稱>替換為之前配置的實際值。返回變數名和變數值的映射,表明配置生效。
將保密字典(Secret)作為設定檔掛載到應用的檔案系統
將保密字典(Secret)掛載到應用程式容器內的檔案系統,保密字典的值作為檔案內容,檔案路徑和檔案名稱可自訂。如果檔案路徑下存在同名檔案,則掛載的檔案會替換原有檔案。
建立應用
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊建立應用。在應用基本資料頁面進行配置後,單擊下一步:進階設定。
對正在啟動並執行應用進行變更
警告重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。在左側導覽列點擊基礎資訊,在右上方點擊部署應用。
對已停止的應用進行變更
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。點擊基礎資訊,點擊修改應用配置。
在保密字典地區,單擊+ 添加,選擇引用已建立的保密字典名稱和鍵(保密字典中的變數名,支援掛載全部鍵),然後自訂掛載路徑(對於掛載單個鍵,填寫包含檔案名稱的絕對路徑;對於掛載全部鍵,填寫不包含檔案名稱的絕對路徑,SAE將各配置項的鍵名自動作為檔案名稱)。可以添加多個保密字典。
等待應用部署成功。驗證配置是否生效:登入應用執行個體的Webshell,查看掛載路徑下的檔案內容。