SCDF 在 K8s 安装上添加了额外的 Cloud Foundry 特定 Props

问题描述 投票:0回答:1

我们正在使用 Bitnami Helm Charts 在 K8s 集群上安装 Spring Cloud Dataflow 和 Skipper。

一切正常,我们能够部署流。

但请注意,我们没有在支撑的 helm 值中设置一些属性。

以下属性

management.endpoints.web.exposure.include: health,info,bindings
management.metrics.tags.instance.index: ${vcap.application.instance_index:${spring.cloud.stream.instanceIndex:0}}
wavefront.application.service: ${spring.cloud.dataflow.stream.app.label:unknown}-${spring.cloud.dataflow.stream.app.type:unknown}-${vcap.application.instance_index:${spring.cloud.stream.instanceIndex:0}}
management.metrics.tags.application.name: ${vcap.application.application_name:${spring.cloud.dataflow.stream.app.label:unknown}}

我遗漏了其他一些,但以上是值得关注的。

我们使用配置服务器来获取 SCDF 部署的应用程序的属性。

在那里,我们将 Web 暴露设置为包含 env/configprops,但这些会被忽略,并且由 scdf 设置的环境属性会覆盖它。

一种解决方案是将此属性添加到值 yaml 中,但这意味着我无法使用配置服务器存储库来控制它们。

对于使用 vcap 的其他属性,我相信它更多的是 PCF 约定,这适用于 K8s,而且我不确定 K8s 是否有实例索引。

我的问题是。 如何确保配置服务器属性优先于 SCDF 在已部署应用程序上设置的 env 属性。 如何在我的 k8s 安装的 SCDF 上抑制 PCF 特定属性?

spring-cloud-dataflow
1个回答
0
投票

可以指定 Spring Boot 属性以从其他属性获取值,包括本示例中的默认值:

propA=${propB:${propC:0}}

vcap
属性仅在CF环境中有效,可以在k8s默认值中删除。

结果:

management.metrics.tags.instance.index: ${${spring.cloud.stream.instanceIndex:0}
wavefront.application.service: ${spring.cloud.dataflow.stream.app.label:unknown}-${spring.cloud.dataflow.stream.app.type:unknown}-${spring.cloud.stream.instanceIndex:0}

目前 SCDF 在数据流和船长应用程序配置中添加基于 management.defaults 的默认属性。除非您在部署期间提供新值,否则它将作为参数或环境变量传递,这两者都将覆盖配置服务器中的配置。

我建议您指定数据流和船长中的默认值,并根据需要更新它们。

请记录描述问题的问题

© www.soinside.com 2019 - 2024. All rights reserved.