web-dev-qa-db-ja.com

Kubernetes SecretsとConfigMaps

最新のKubernetesシークレットを使用しています。現在、ConfigMapsもあります。

推奨される方法は何ですか-シークレットまたは構成マップ?

追伸数回の反復の後、次のルールで安定しました。

  • configMapはソリューションドメインごとです(ドメイン内のマイクロサービス間で共有できますが、最終的には単一目的の構成エントリです)

  • 秘密はソリューションドメイン間で共有され、通常はサードパーティのシステムまたはデータベースを表します

51

私はこれらの両方の機能の著者です。考えは次のとおりです。

  1. APIキー、資格情報など、実際には秘密であるものに秘密を使用する
  2. 秘密ではない構成データに構成マップを使用する

将来的には、ローテーションなどのシークレットや、HSMなどのシークレットAPIのサポートなど、シークレットの差別化要因が存在する可能性があります。一般に、インテントベースのAPIが好きです。

お役に立てば幸いです。

99
Paul Morie

ConfigMapsとSecretsはどちらも、データをキーと値のペアとして保存します。主な違いは、Secretsはbase64にデータを保存 format while ConfigMapsはデータをプレーンテキストに保存です。

キー、パスワード、サービスアカウントの資格情報、db接続文字列などの重要なデータがある場合は、Configではなく、常にSecretsを使用する必要があります。

そして、あなたが秘密にしたくない/隠したくない環境変数、アプリのテーマ、ベースプラットフォームのURLなどを使用してアプリケーションの設定をしたい場合は、ConfigMaps

1
Mohsin

実装における顕著な違いの1つは、kubectl apply -f

  • データが変更されていない場合、ConfigMapは「変更されません」。
  • ファイルが変更されていない場合でも、秘密は常に「構成」されます
0
Michael Cole