すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:Pod で Secret を使用する

最終更新日:Nov 09, 2025

ワークロードでは、バックエンドデータベースへの接続やクライアントリクエストの認証のために、ユーザー名、パスワード、証明書などの機密情報を保存する必要がある場合があります。Alibaba Cloud Container Compute Service (ACS) クラスターで Secret を使用してこの情報を管理し、公開されるのを防ぐことができます。このトピックでは、ACS コンソールで Secret を作成し、それをボリュームまたは環境変数として使用する方法について説明します。

前提条件

Secret の作成

この例では、secret-test という名前の Secret を作成する方法を示します。

  1. ACS コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけてその ID をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. [デプロイメント] ページで、[YAML から作成] をクリックします。

  4. サンプルテンプレートを選択するか、[カスタム] を選択します。次に、YAML コンテンツをコピーして [作成] をクリックします。

    次のサンプル YAML テンプレートは、Secret を作成する方法を示しています。

    apiVersion: v1
    kind: Secret
    metadata:
      name: secret-test
    type: Opaque
    data:
      username: YWRtaW4=  # admin の Base64 エンコード値。
      password: MTIzNDU=  # 12345 の Base64 エンコード値。

ACS コンソールで Secret を作成することもできます。詳細については、「Secret の作成」をご参照ください。

Secret をボリュームとして使用する

kubectl の使用

Secret を Pod 内のファイルとして使用できます。この例では、secret-test Secret の 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. Pod を作成します。

    kubectl apply -f example0.yaml
  3. Secret がマウントされていることを確認します。

    kubectl describe pod pod0 | grep -A 4 Volumes

    期待される出力:

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

コンソールの使用

  1. ACS コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけてその ID をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. [デプロイメント] ページで、[イメージから作成] をクリックします。

    説明

    パラメーターの詳細については、「ステートレスアプリケーション (Deployment) の作成」をご参照ください。

  4. [基本情報] タブでパラメーターを設定し、[次へ] をクリックします。

  5. [コンテナー設定] タブの [ボリューム] セクションで、[ローカルストレージの追加] をクリックします。ボリュームタイプ[Secret] に設定します。マウントソース には、「Secret の作成」セクションで作成した Secret を選択します。コンテナーパス には、コンテナー内のアクセスパスを指定します。パラメーターを設定したら、[次へ] をクリックします。

    次の図に設定例を示します。

    配置数据卷

  6. [高度な設定] タブでパラメーターを設定し、[作成] をクリックします。

Secret を環境変数として使用する

次のいずれかの方法を使用できます。

kubectl の使用

この例では、secret-test Secret の username キーと 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. Pod を作成します。

    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. ACS コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけてその ID をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. [デプロイメント] ページで、[イメージから作成] をクリックします。

    説明

    詳細については、「ステートレスアプリケーション (Deployment) の作成」をご参照ください。

  4. [基本情報] タブでパラメーターを設定し、[次へ] をクリックします。

  5. [コンテナー設定] タブの [環境変数] セクションで、[追加] をクリックします。タイプ[Secret] に設定します。変数/参照 には、「Secret の作成」セクションで作成した Secret を選択します。次に、参照するキーを選択し、変数の名前を入力します。