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

Container Service for Kubernetes:シークレットを使用するようにポッドを構成する

最終更新日:Dec 14, 2024

シークレットを使用して、Kubernetesクラスターに機密情報を保存することを推奨します。 情報には、パスワードと証明書が含まれます。 このトピックでは、Container Service for Kubernetes (ACK) コンソールでシークレットを作成する方法について説明します。 このトピックでは、シークレットをボリュームとしてポッドにマウントし、シークレットをポッドの環境変数として公開する方法についても説明します。 コンソールまたはCLIを使用して操作を実行できます。

前提条件

背景情報

次のシナリオでは、ポッドでシークレットを使用できます。

  • シークレットをポッドのボリュームとしてマウントします。

  • シークレットをポッドの環境変数として公開します。

Secretsの詳細については、「Secrets」をご参照ください。

シークレットの作成

次の例は、Secret-testという名前のシークレットを作成する方法を示しています。

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

  3. On theデプロイメントページをクリックします。YAMLから作成する右上隅にあります。

  4. テンプレートまたはカスタムを選択し、次のYAMLコンテンツをエディターにコピーして、作成.

    次のYAMLコンテンツを使用して、Secret-testという名前のシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: secret-test
    type: Opaque
    data:
      username: admin
      password: 12345  #The value must be encoded in Base64.

webインターフェイスを使用してシークレットを作成することもできます。 詳細については、「シークレットの管理」をご参照ください。

秘密をポッドにボリュームとしてマウントする

次の方法を使用して、シークレットをボリュームとしてポッドにマウントできます。

CLIの使用

マウントされたシークレットは、ポッド内のファイルとして使用できます。 この例では、ユーザー名とパスワード情報を含むSecret secret-testは、/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. 次のコマンドを実行して、Secret secret-testがマウントされるポッドを作成します。

    kubectl apply -f  example0.yaml
    説明

    example0.yamlを、使用するYAMLファイルの名前に置き換えます。

コンソールの使用

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

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

    詳細については、「デプロイを使用したステートレスアプリケーションの作成」をご参照ください。

  4. On the基本情報ウィザードページで、パラメーターを設定し、次へ.

  5. [コンテナー] ウィザードページで、[ボリューム] セクションの [ローカルストレージの追加] をクリックします。 [PVタイプ][シークレット] に、[ソースのマウント][シークレットの作成] で作成したシークレットに、[コンテナパス] をコンテナでアクセスするパスに設定します。 設定が完了したら、[次へ] をクリックします。

    次の図は、ボリュームの設定方法の例を示しています。

    配置数据卷

  6. On the高度なウィザードページで、パラメーターを設定し、作成.

シークレットをポッドの環境変数として公開します。

次の方法を使用して、シークレットをポッドの環境変数として公開できます。

CLIの使用

この例では、Secret secret-testに格納されているユーザー名とパスワードは、ポッドの環境変数で参照されます。

  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
    説明

    example1.yamlを、使用するYAMLファイルの名前に置き換えます。

コンソールの使用

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

  3. On theデプロイメントページをクリックします。イメージから作成右上隅にあります。

    詳細については、「デプロイを使用したステートレスアプリケーションの作成」をご参照ください。

  4. On the基本情報ウィザードページで、パラメーターを設定し、次へ.

  5. [コンテナー] ウィザードページで、[環境] セクションの [环境变量] をクリックします。 [Type][Secrets] に設定し、変数の名前を入力し、[Create a Secret] で作成したシークレットとシークレットに保存されているユーザー名またはパスワードに [Value/ValueFrom] を設定します。

    環境変数の設定例を次の図に示します。

    变量名称