Secret を使用して、パスワード、API キー、証明書などの機密情報を Kubernetes クラスターに保存します。このトピックでは、Container Service for Kubernetes (ACK) コンソールで Secret を作成する方法、Secret をボリュームとして Pod にマウントする方法、およびコンソールまたは CLI を使用して Pod の環境変数として Secret を公開する方法について説明します。
前提条件
Secret をボリュームとして Pod にマウントするには、Secret と Pod が同じクラスターと名前空間に属していることを確認してください。
背景情報
以下のシナリオで、Pod 内の Secret を使用できます。
Secret をボリュームとして Pod にマウントします。
Secret を Pod の環境変数として公開します。
Secret の詳細については、「Secrets」をご参照ください。
Secret を作成する
次の例は、secret-test という名前の Secret を作成する方法を示しています。
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のペインで、 を選択します。
[デプロイメント] ページで、右上隅にある [YAML から作成] をクリックします。
テンプレートまたは [カスタム] を選択し、次の YAML コンテンツをエディターにコピーして、[作成] をクリックします。
次の YAML コンテンツは、secret-test という名前の Secret を作成するために使用されます。
apiVersion: v1 kind: Secret metadata: name: secret-test type: Opaque data: username: admin #値は Base64 でエンコードする必要があります。 password: 12345 #値は Base64 でエンコードする必要があります。
Web インターフェースを使用して Secret を作成することもできます。詳細については、「Secret を管理する」をご参照ください。
Secret をボリュームとして Pod にマウントする
次の方法を使用して、Secret をボリュームとして Pod にマウントできます。
CLI を使用する
マウントされた Secret は、Pod 内のファイルとして使用できます。この例では、ユーザー名とパスワード情報を含む Secret secret-test が /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次のコマンドを実行して、Secret secret-test がマウントされる Pod を作成します。
kubectl apply -f example0.yaml説明example0.yaml を使用する YAML ファイルの名前に置き換えます。
コンソールを使用する
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のペインで、 を選択します。
[デプロイメント] ページで、[イメージから作成] をクリックします。
詳細については、「デプロイメントを使用してステートレス アプリケーションを作成する」をご参照ください。
[基本情報] ウィザードページで、パラメーターを構成し、[次へ] をクリックします。
[コンテナー] ウィザードページで、[ローカル ストレージの追加][ボリューム] セクションの PV タイプシークレットマウントソースシークレットを作成するコンテナーパス[次へ] をクリックします。 を に設定し、 を で作成した Secret に設定し、 をコンテナー内でアクセスされるパスに設定します。構成が完了したら、 をクリックします。
次の図は、ボリュームを構成する方法の例を示しています。

[詳細設定] ウィザードページで、パラメーターを構成し、[作成] をクリックします。
Secret を Pod の環境変数として公開する
次の方法を使用して、Secret を Pod の環境変数として公開できます。
CLI を使用する
この例では、Secret secret-test に保存されているユーザー名とパスワードが、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説明example1.yaml を使用する YAML ファイルの名前に置き換えます。
コンソールを使用する
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のペインで、 を選択します。
[デプロイメント] ページで、[イメージから作成] をクリックします。
詳細については、「デプロイメントを使用してステートレス アプリケーションを作成する」をご参照ください。
[基本情報] ウィザードページで、パラメーターを構成し、[次へ] をクリックします。
[コンテナー] ウィザードページで、[追加][環境] セクションの 種類シークレット値 / ValueFromシークレットを作成する をクリックします。 を に設定し、変数の名前を入力し、 を で作成した Secret と、Secret に保存されているユーザー名またはパスワードに設定します。
次の図は、環境変数を構成する方法の例を示しています。
