|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
シークレット
シークレットは、パスワード、トークン、またはキーなどの機密データを保存します。それらは、1つ以上のキーと値のペアを含む場合があります。
|
このページは、一般的なシークレットについてです。プライベートレジストリの設定に関する詳細は、レジストリに関するセクションを参照してください。 |
ワークロードを構成する際に、含めるシークレットを選択できます。コンフィグマップと同様に、シークレットはワークロードによって環境変数またはボリュームマウントとして参照できます。
マウントされたシークレットは、サブパスボリュームとしてマウントされていない限り、自動的に更新されます。更新されたシークレットがどのように伝播されるかの詳細については、 Kubernetesのドキュメントを参照してください。
ネームスペースにおけるシークレットの作成
-
左上隅で、*☰ > クラスター管理*をクリックします。
-
シークレットを追加したいクラスターに移動し、*Explore*をクリックします。
-
シークレットに移動するには、またはのいずれかをクリックできます。
-
ネームスペースタブを選択します。
-
[作成]をクリックします。
-
作成するシークレットのタイプを選択します。
-
シークレットのための*ネームスペース*を選択します。
-
シークレットの*名前*を入力してください。
Kubernetesは、シークレット、証明書、レジストリをすべて シークレットとして分類し、ネームスペース内の2つのシークレットが同じ名前を持つことはできません。したがって、競合を防ぐために、シークレットはワークスペース内のすべてのシークレットの中で一意の名前を持つ必要があります。
-
*データ*から、*追加*をクリックしてキーと値のペアを追加します。必要なだけ多くの値を追加できます。
コピー&ペーストすることで、シークレットに複数のキーと値のペアを追加できます。
image::bulk-key-values.gif[シークレット]に複数のキーと値のペアをコピー&ペーストして追加します。
-
[保存]をクリックします。
*結果:*あなたのシークレットは、選択したネームスペースに追加されます。シークレットは、またはをクリックすることでRancher UIで表示できます。
マウントされたシークレットは、サブパスボリュームとしてマウントされていない限り、自動的に更新されます。更新されたシークレットがどのように伝播されるかの詳細については、 Kubernetesのドキュメントを参照してください。
プロジェクト内でのシークレットの作成
プロジェクトスコープでシークレットを作成する際、そのシークレットはプロジェクト内のすべてのネームスペースにコピーされます。
UIでプロジェクトスコープのシークレットを作成する
-
左上隅で、☰ > クラスター管理をクリックします。
-
シークレットを追加したいクラスターに移動し、Exploreをクリックします。
-
シークレットに移動するには、ストレージ > シークレットまたはその他のリソース > コア > シークレットをクリックできます。
-
プロジェクトスコープタブを選択します。
-
プロジェクトスコープのシークレットを作成をクリックします。
-
作成するシークレットのタイプを選択します。
-
シークレットのためのプロジェクトを選択します。
-
シークレットの名前を入力してください。
Kubernetesは、シークレット、証明書、レジストリをすべて シークレットとして分類し、ネームスペース内の2つのシークレットが同じ名前を持つことはできません。プロジェクトのネームスペースのいずれかに既存のシークレットと同じ名前のプロジェクトスコープのシークレットを作成すると、既存のシークレットが上書きされます。
-
データから、追加をクリックしてキーと値のペアを追加します。必要なだけ多くの値を追加できます。
シークレットに複数のキーと値のペアをコピー&ペーストして追加できます。
-
[保存]をクリックします。
結果:あなたのシークレットは、プロジェクト内の各ネームスペースに追加されます。シークレットは、ストレージ > シークレットまたはその他のリソース > コア > シークレットをクリックすることで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`のコピーが含まれます。
次は何ですか?
これで、あなたはシークレットをネームスペースに追加したので、デプロイするワークロードにそれを追加できます。
ワークロードにシークレットを追加する方法の詳細については、ワークロードのデプロイを参照してください。