この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

シークレット

シークレットは、パスワード、トークン、またはキーなどの機密データを保存します。それらは、1つ以上のキーと値のペアを含む場合があります。

このページは、一般的なシークレットについてです。プライベートレジストリの設定に関する詳細は、レジストリに関するセクションを参照してください。

ワークロードを構成する際に、含めるシークレットを選択できます。コンフィグマップと同様に、シークレットはワークロードによって環境変数またはボリュームマウントとして参照できます。

マウントされたシークレットは、サブパスボリュームとしてマウントされていない限り、自動的に更新されます。更新されたシークレットがどのように伝播されるかの詳細については、 Kubernetesのドキュメントを参照してください。

ネームスペースにおけるシークレットの作成

  1. 左上隅で、*☰ > クラスター管理*をクリックします。

  2. シークレットを追加したいクラスターに移動し、*Explore*をクリックします。

  3. シークレットに移動するには、ストレージ  シークレットまたはその他のリソース  コア  シークレットのいずれかをクリックできます。

  4. ネームスペースタブを選択します。

  5. 作成]をクリックします。

  6. 作成するシークレットのタイプを選択します。

  7. シークレットのための*ネームスペース*を選択します。

  8. シークレットの*名前*を入力してください。

    Kubernetesは、シークレット、証明書、レジストリをすべて シークレットとして分類し、ネームスペース内の2つのシークレットが同じ名前を持つことはできません。したがって、競合を防ぐために、シークレットはワークスペース内のすべてのシークレットの中で一意の名前を持つ必要があります。

  9. *データ*から、*追加*をクリックしてキーと値のペアを追加します。必要なだけ多くの値を追加できます。

    コピー&ペーストすることで、シークレットに複数のキーと値のペアを追加できます。

    image::bulk-key-values.gif[シークレット]に複数のキーと値のペアをコピー&ペーストして追加します。

  10. 保存]をクリックします。

*結果:*あなたのシークレットは、選択したネームスペースに追加されます。シークレットは、ストレージ  シークレットまたはその他のリソース  コア  シークレットをクリックすることでRancher UIで表示できます。

マウントされたシークレットは、サブパスボリュームとしてマウントされていない限り、自動的に更新されます。更新されたシークレットがどのように伝播されるかの詳細については、 Kubernetesのドキュメントを参照してください。

プロジェクト内でのシークレットの作成

プロジェクトスコープでシークレットを作成する際、そのシークレットはプロジェクト内のすべてのネームスペースにコピーされます。

UIでプロジェクトスコープのシークレットを作成する

  1. 左上隅で、☰ > クラスター管理をクリックします。

  2. シークレットを追加したいクラスターに移動し、Exploreをクリックします。

  3. シークレットに移動するには、ストレージ > シークレットまたはその他のリソース > コア > シークレットをクリックできます。

  4. プロジェクトスコープタブを選択します。

  5. プロジェクトスコープのシークレットを作成をクリックします。

  6. 作成するシークレットのタイプを選択します。

  7. シークレットのためのプロジェクトを選択します。

  8. シークレットの名前を入力してください。

    Kubernetesは、シークレット、証明書、レジストリをすべて シークレットとして分類し、ネームスペース内の2つのシークレットが同じ名前を持つことはできません。プロジェクトのネームスペースのいずれかに既存のシークレットと同じ名前のプロジェクトスコープのシークレットを作成すると、既存のシークレットが上書きされます。

  9. データから、追加をクリックしてキーと値のペアを追加します。必要なだけ多くの値を追加できます。

    シークレットに複数のキーと値のペアをコピー&ペーストして追加できます。

    シークレットに複数のキーと値のペアをコピー&ペーストして追加します。
  10. 保存]をクリックします。

結果:あなたのシークレットは、プロジェクト内の各ネームスペースに追加されます。シークレットは、ストレージ > シークレットまたはその他のリソース > コア > シークレットをクリックすることでRancher UIで表示できます。

kubectlを使用してプロジェクトスコープのシークレットを作成する

プロジェクトスコープのシークレットは、"プロジェクトバックイングネームスペース"として知られる管理クラスター上に元のシークレットを作成することによって機能します。Rancherは、このネームスペースに重要なプロジェクト関連情報を保存します。プロジェクトCRDの`status.backingNamespace`フィールドで見つけることができるか、管理クラスターで`kubectl get projects -A`を実行することで見つけることができます。

シークレットがRancherによってプロジェクトスコープのシークレットとして承認されるためには、ラベル`management.cattle.io/project-scoped-secret: <projectID>`が必要です。

例のyaml:

apiVersion: v1
data:
  key: ZG9n
kind: Secret
metadata:
  labels:
    management.cattle.io/project-scoped-secret: p-vwxyz
  name: test-secret
  namespace: c-abc123-p-vwxyz
type: Opaque

上記のYAMLでは、ネームスペースはプロジェクト`p-vwxyz`のバッキングネームスペースであり、プロジェクトスコープのシークレットラベルはprojectIDを参照しています。管理クラスターに適用されると、プロジェクト`p-vwxyz`内のすべてのネームスペースには`test-secret`のコピーが含まれます。

次は何ですか?

これで、あなたはシークレットをネームスペースに追加したので、デプロイするワークロードにそれを追加できます。

ワークロードにシークレットを追加する方法の詳細については、ワークロードのデプロイを参照してください。