在容器組中使用保密字典
在工作負載連接后端數(shù)據(jù)庫服務(wù)、對客戶端請求進行安全驗證等業(yè)務(wù)場景中,您可能需要保存一些敏感的配置信息,如用戶名、密碼和證書等。建議您通過阿里云容器計算服務(wù)ACS集群的保密字典(Secret)來管理這些敏感信息,避免信息暴露。本文介紹如何在ACS控制臺創(chuàng)建保密字典,以及如何通過數(shù)據(jù)卷和環(huán)境變量的方式使用保密字典。
前提條件
使用保密字典時,Pod和保密字典需處于同一集群和命名空間中。
已使用kubectl連接Kubernetes集群。具體操作,請參見獲取集群KubeConfig并通過kubectl工具連接集群。
創(chuàng)建保密字典
通過本示例創(chuàng)建保密字典secret-test。
登錄容器計算服務(wù)控制臺,在左側(cè)導(dǎo)航欄選擇集群。
在集群頁面,單擊目標集群ID,然后在左側(cè)導(dǎo)航欄,選擇
。在無狀態(tài)頁面中,單擊使用YAML創(chuàng)建資源。
選擇示例模板或自定義,拷貝YAML內(nèi)容,然后單擊創(chuàng)建。
您可以使用如下YAML示例模板創(chuàng)建保密字典。
apiVersion: v1 kind: Secret metadata: name: secret-test type: Opaque data: username: YWRtaW4= #明文為admin,需要用Base64編碼。 password: MTIzNDU= #明文為12345,需要用Base64編碼。
您也可以通過ACS控制臺界面創(chuàng)建保密字典,請參見創(chuàng)建保密字典。
通過數(shù)據(jù)卷的方式使用保密字典
以下兩種配置方法您可任選其一進行配置。
通過命令行配置
保密字典可以在Pod中作為文件使用。如示例所示,secret-test保密字典的username和password以文件方式保存在/srt目錄下。
創(chuàng)建并復(fù)制以下內(nèi)容到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
執(zhí)行以下命令,配置保密字典。
kubectl apply -f example0.yaml
執(zhí)行以下命令,驗證保密字典配置成功。
kubectl describe pod pod0 | grep -A 4 Volumes
預(yù)期輸出:
Volumes: srt: Type: Secret (a volume populated by a Secret) SecretName: secret-test Optional: false
通過控制臺配置
登錄容器計算服務(wù)控制臺,在左側(cè)導(dǎo)航欄選擇集群。
在集群頁面,單擊目標集群ID,然后在左側(cè)導(dǎo)航欄,選擇
。在無狀態(tài)頁面,單擊使用鏡像創(chuàng)建。
說明詳細配置說明,請參見創(chuàng)建無狀態(tài)工作負載Deployment。
在應(yīng)用基本信息頁簽中,按需進行相應(yīng)配置,然后單擊下一步。
在容器配置頁簽,在數(shù)據(jù)卷區(qū)域,單擊增加本地存儲,存儲卷類型為保密字典,掛載源為創(chuàng)建保密字典創(chuàng)建好的密鑰,容器路徑為在容器中訪問的路徑。配置好相應(yīng)信息后,單擊下一步。
本例中,配置示例如下所示。
在高級配置頁簽中,進行相應(yīng)配置,然后單擊創(chuàng)建。
通過環(huán)境變量的方式使用保密字典
以下兩種配置方法您可任選其一進行配置。
通過命令行進行配置
本示例將會把secret-test保密字典中的user和password設(shè)置為Pod的環(huán)境變量。
創(chuàng)建并拷貝以下內(nèi)容到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
執(zhí)行以下命令,配置保密字典。
kubectl apply -f example1.yaml
執(zhí)行以下命令,驗證保密字典配置是否成功。
kubectl describe pod pod1 | grep -A 2 Environment
預(yù)期輸出:
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
通過控制臺配置
登錄容器計算服務(wù)控制臺,在左側(cè)導(dǎo)航欄選擇集群。
在集群頁面,單擊目標集群ID,然后在左側(cè)導(dǎo)航欄,選擇
。在無狀態(tài)頁面中,單擊使用鏡像創(chuàng)建。
說明詳細說明,請參見創(chuàng)建無狀態(tài)工作負載Deployment。
在應(yīng)用基本信息頁簽中,按需進行相應(yīng)配置,然后單擊下一步。
在容器配置頁簽,在環(huán)境變量區(qū)域,單擊,類型為密鑰,變量/變量引用為創(chuàng)建保密字典中創(chuàng)建好的密鑰,再分別選擇使用的key并輸入變量名稱。
本例中,配置示例如下所示。