11.3. 使用 ConfigMap PropertySource


Kubernetes 具有将配置传递给应用程序的 ConfigMap 的概念。Spring Cloud Kubernetes 插件提供与 ConfigMap 集成,以便 Spring Boot 可访问配置映射。

启用后,ConfigMap PropertySource 将查找名为 应用程序的 ConfigMap (请参阅 spring.application.name)。如果找到映射,它将读取其数据并执行以下操作:

11.3.1. 应用单个属性

假设我们有一个名为 demo 的 Spring Boot 应用程序,它使用属性读取其线程池配置。

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

这可以以 YAML 格式将其外部化到配置映射:

kind: ConfigMap
apiVersion: v1
metadata:
  name: demo
data:
  pool.size.core: 1
  pool.size.max: 16
Copy to Clipboard Toggle word wrap

11.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
Copy to Clipboard Toggle word wrap

11.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
Copy to Clipboard Toggle word wrap

11.3.4. 部署 ConfigMap

要部署 ConfigMap 并使它可以被 Spring Boot 应用程序访问,请执行以下步骤。

流程

  1. 在 Spring Boot 应用程序中,使用 外部化配置机制 来访问 ConfigMap 属性源。例如,通过利用 @Configuration 注释标注 Java bean,即可获得由 ConfigMap 注入的 bean 的属性值。
  2. 在项目的 bootstrap.properties 文件中(或 bootstrap.yaml 文件)中,设置 spring.application.name 属性以匹配 ConfigMap 的名称。
  3. 在与您的应用程序关联的服务帐户上启用 查看 权限(默认情况下,这是名为 default的服务帐户)。例如,在 default 服务帐户中添加 view 权限:

    oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat