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 格式将其外部化到配置映射:
11.3.2. 应用 application.yaml ConfigMap 属性 复制链接链接已复制到粘贴板!
在大多数情况下,单个属性可以正常工作,但有时我们发现 YAML 更为方便。在本例中,我们使用一个名为 application.yaml
的单个属性,并在其中嵌入 YAML:
11.3.3. 应用 application.properties ConfigMap 属性 复制链接链接已复制到粘贴板!
您还可以在 Spring Boot application.properties
文件的风格中定义 ConfigMap 属性。在本例中,我们使用一个名为 application.properties
的单个属性,并列出其中的属性设置:
11.3.4. 部署 ConfigMap 复制链接链接已复制到粘贴板!
要部署 ConfigMap 并使它可以被 Spring Boot 应用程序访问,请执行以下步骤。
流程
-
在 Spring Boot 应用程序中,使用 外部化配置机制 来访问 ConfigMap 属性源。例如,通过利用
@Configuration
注释标注 Java bean,即可获得由 ConfigMap 注入的 bean 的属性值。 -
在项目的
bootstrap.properties
文件中(或bootstrap.yaml
文件)中,设置spring.application.name
属性以匹配 ConfigMap 的名称。 在与您的应用程序关联的服务帐户上启用
查看
权限(默认情况下,这是名为default
的服务帐户)。例如,在default
服务帐户中添加view
权限:oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow