9.3. ConfigMap PropertySource の使用


Kubernetes には、設定をアプリケーションに渡すための ConfigMap という概念があります。Spring Cloud Kubernetes プラグインは、ConfigMap とのインテグレーションを提供し、Spring Boot が config map にアクセスできるようにします。

有効な場合、ConfigMap PropertySource はアプリケーションの名前が付いた ConfigMap を Kubernetes で検索します (spring.application.name を参照)。その config map が見つかった場合は、そのデータを読み取り、以下を行います。

9.3.1. 個々のプロパティーの適用

プロパティーを使用してそのスレッドプール設定を読み取る demo という名前の Spring Boot アプリケーションがあるとします。

  • pool.size.core
  • pool.size.max

これを YAML 形式で config map に外部化することができます。

kind: ConfigMap
apiVersion: v1
metadata:
  name: demo
data:
  pool.size.core: 1
  pool.size.max: 16

9.3.2. application.yaml ConfigMap プロパティーの適用

ほとんどの場合で個々のプロパティーは適切に動作しますが、YAML を使用した方が便利であることがあります。ここでは、application.yaml という名前の単一のプロパティーを使用し、YAML を内部に組み込みします。

kind: ConfigMap
apiVersion: v1
metadata:
  name: demo
data:
  application.yaml: |-
    pool:
      size:
        core: 1
        max:16

9.3.3. application.properties ConfigMap プロパティーの適用

Spring Boot の application.properties ファイルのスタイルで ConfigMap プロパティーを定義することもできます。ここでは、application.properties という名前の単一のプロパティーを使用し、内部にプロパティー設定をリストします。

kind: ConfigMap
apiVersion: v1
metadata:
  name: demo
data:
  application.properties: |-
    pool.size.core: 1
    pool.size.max: 16

9.3.4. ConfigMap のデプロイ

ConfigMap をデプロイし、Spring Boot アプリケーションにアクセスできるようにするには、以下の手順を実行します。

手順

  1. Spring Boot アプリケーションで 外部化設定 メカニズムを使用し、ConfigMap プロパティーソースへアクセスします。たとえば、Java Bean に @Configuration アノテーションを付けると、ConfigMap による Bean のプロパティー値のインジェクションが可能になります。
  2. プロジェクトの bootstrap.properties ファイル (または bootstrap.yaml ファイル) で、spring.application.name プロパティーが ConfigMap の名前と一致するよう設定します。
  3. アプリケーションに関連するサービスアカウントの view パーミッションを有効にします (デフォルトでは、default というサービスアカウントになります)。たとえば、view パーミッションを default サービスアカウントに追加するには、以下を実行します。

    oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.