全部產品
Search
文件中心

Container Compute Service:在容器組中使用保密字典

更新時間:Dec 11, 2024

在工作負載串連後端資料庫服務、對用戶端請求進行安全驗證等業務情境中,您可能需要儲存一些敏感的配置資訊,如使用者名稱、密碼和認證等。建議您通過阿里雲容器計算服務ACS叢集的保密字典(Secret)來管理這些敏感資訊,避免資訊暴露。本文介紹如何在ACS控制台建立保密字典,以及如何通過資料卷和環境變數的方式使用保密字典。

前提條件

建立保密字典

通過本樣本建立保密字典secret-test。

  1. 登入容器計算服務控制台,在左側導覽列選擇叢集

  2. 叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇工作負載 > 無狀態

  3. 無狀態頁面中,單擊使用YAML建立資源

  4. 選擇樣本模板或自訂,拷貝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目錄下。

  1. 建立並複製以下內容到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
  2. 執行以下命令,配置保密字典。

    kubectl apply -f example0.yaml
  3. 執行以下命令,驗證保密字典配置成功。

    kubectl describe pod pod0 | grep -A 4 Volumes

    預期輸出:

    Volumes:
      srt:
        Type:        Secret (a volume populated by a Secret)
        SecretName:  secret-test
        Optional:    false

通過控制台配置

  1. 登入容器計算服務控制台,在左側導覽列選擇叢集

  2. 叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇工作負載 > 無狀態

  3. 無狀態頁面,單擊使用鏡像建立

    說明

    詳細配置說明,請參見建立無狀態工作負載Deployment

  4. 應用基本資料頁簽中,按需進行相應配置,然後單擊下一步

  5. 容器配置頁簽,在資料卷地區,單擊增加本機存放區儲存卷類型保密字典掛載源建立保密字典建立好的密鑰,容器路徑為在容器中訪問的路徑。配置好相應資訊後,單擊下一步

    本例中,配置樣本如下所示。

    配置資料卷

  6. 進階配置頁簽中,進行相應配置,然後單擊建立

通過環境變數的方式使用保密字典

以下兩種配置方法您可任選其一進行配置。

通過命令列進行配置

本樣本將會把secret-test保密字典中的user和password設定為Pod的環境變數。

  1. 建立並拷貝以下內容到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
  2. 執行以下命令,配置保密字典。

    kubectl apply -f example1.yaml
  3. 執行以下命令,驗證保密字典配置是否成功。

    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

通過控制台配置

  1. 登入容器計算服務控制台,在左側導覽列選擇叢集

  2. 叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇工作負載 > 無狀態

  3. 無狀態頁面中,單擊使用鏡像建立

    說明

    詳細說明,請參見建立無狀態工作負載Deployment

  4. 應用基本資料頁簽中,按需進行相應配置,然後單擊下一步

  5. 容器配置頁簽,在環境變數地區,單擊環境變數類型密鑰變數/變數引用建立保密字典中建立好的密鑰,再分別選擇使用的key並輸入變數名稱。

    本例中,配置樣本如下所示。

    變數名稱