在工作負載串連後端資料庫服務、對用戶端請求進行安全驗證等業務情境中,您可能需要儲存一些敏感的配置資訊,如使用者名稱、密碼和認證等。建議您通過阿里雲容器計算服務ACS叢集的保密字典(Secret)來管理這些敏感資訊,避免資訊暴露。本文介紹如何在ACS控制台建立保密字典,以及如何通過資料卷和環境變數的方式使用保密字典。
前提條件
使用保密字典時,Pod和保密字典需處於同一叢集和命名空間中。
已使用kubectl串連Kubernetes叢集。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集。
建立保密字典
通過本樣本建立保密字典secret-test。
登入容器計算服務控制台,在左側導覽列選擇叢集。
在叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇
。在無狀態頁面中,單擊使用YAML建立資源。
選擇樣本模板或自訂,拷貝YAML內容,然後單擊建立。
您可以使用如下YAML樣本模板建立保密字典。
apiVersion: v1 kind: Secret metadata: name: secret-test type: Opaque data: username: YWRtaW4= #明文為admin,需要用Base64編碼。 password: MTIzNDU= #明文為12345,需要用Base64編碼。
您也可以通過ACS控制台介面建立保密字典,請參見建立保密字典。
通過資料卷的方式使用保密字典
以下兩種配置方法您可任選其一進行配置。
通過命令列配置
保密字典可以在Pod中作為檔案使用。如樣本所示,secret-test保密字典的username和password以檔案方式儲存在/srt目錄下。
建立並複製以下內容到example0.yaml中。
apiVersion: v1 kind: Pod metadata: name: pod0 spec: containers: - name: redis image: redis volumeMounts: - name: srt mountPath: "/srt" readOnly: true volumes: - name: srt secret: secretName: secret-test
執行以下命令,配置保密字典。
kubectl apply -f example0.yaml
執行以下命令,驗證保密字典配置成功。
kubectl describe pod pod0 | grep -A 4 Volumes
預期輸出:
Volumes: srt: Type: Secret (a volume populated by a Secret) SecretName: secret-test Optional: false
通過控制台配置
登入容器計算服務控制台,在左側導覽列選擇叢集。
在叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇
。在無狀態頁面,單擊使用鏡像建立。
說明詳細配置說明,請參見建立無狀態工作負載Deployment。
在應用基本資料頁簽中,按需進行相應配置,然後單擊下一步。
在容器配置頁簽,在資料卷地區,單擊增加本機存放區,儲存卷類型為保密字典,掛載源為建立保密字典建立好的密鑰,容器路徑為在容器中訪問的路徑。配置好相應資訊後,單擊下一步。
本例中,配置樣本如下所示。
在進階配置頁簽中,進行相應配置,然後單擊建立。
通過環境變數的方式使用保密字典
以下兩種配置方法您可任選其一進行配置。
通過命令列進行配置
本樣本將會把secret-test保密字典中的user和password設定為Pod的環境變數。
建立並拷貝以下內容到example1.yaml中。
apiVersion: v1 kind: Pod metadata: name: pod1 spec: containers: - name: redis image: redis env: - name: USERNAME valueFrom: secretKeyRef: name: secret-test key: username - name: PASSWORD valueFrom: secretKeyRef: name: secret-test key: password
執行以下命令,配置保密字典。
kubectl apply -f example1.yaml
執行以下命令,驗證保密字典配置是否成功。
kubectl describe pod pod1 | grep -A 2 Environment
預期輸出:
Environment: USERNAME: <set to the key 'username' in secret 'secret-test'> Optional: false PASSWORD: <set to the key 'password' in secret 'secret-test'> Optional: false
通過控制台配置
登入容器計算服務控制台,在左側導覽列選擇叢集。
在叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇
。在無狀態頁面中,單擊使用鏡像建立。
說明詳細說明,請參見建立無狀態工作負載Deployment。
在應用基本資料頁簽中,按需進行相應配置,然後單擊下一步。
在容器配置頁簽,在環境變數地區,單擊,類型為密鑰,變數/變數引用為建立保密字典中建立好的密鑰,再分別選擇使用的key並輸入變數名稱。
本例中,配置樣本如下所示。