You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s运行SCDF任务时如何挂载keystore并注入配置

SCDF K8s环境下ConfigMap/Secret注入支持说明

Spring Cloud Data Flow(SCDF)在Kubernetes运行时完全支持从ConfigMap、Secret注入配置,也支持将其中存储的文件(如PKCS12格式的Kafka keystore)挂载到任务Pod内,无需修改业务应用代码,通过SCDF标准的部署属性配置即可实现。

配置方式说明

你之前使用的app.<应用名>.*前缀是用来传递Spring Boot应用配置的,涉及K8s层的卷、环境变量注入,需要使用deployer.<应用名>.kubernetes.*前缀的部署属性。

1. 挂载Secret/ConfigMap中的文件(适用于keystore证书场景)

如果需要把Secret中存储的keystore文件挂载到容器内指定路径,配置示例如下:

# 声明关联K8s中的Secret作为存储卷
deployer.my-app-name.kubernetes.volumes=[{name: kafka-certs-vol, secret: {secretName: kafka-client-keystore}}]
# 将存储卷挂载到容器内目标路径
deployer.my-app-name.kubernetes.volumeMounts=[{name: kafka-certs-vol, mountPath: /etc/kafka/ssl}]

如果要挂载ConfigMap中的文件,只需将卷定义中的secret字段替换为configMap即可:

deployer.my-app-name.kubernetes.volumes=[{name: app-conf-vol, configMap: {name: my-app-config-files}}]
deployer.my-app-name.kubernetes.volumeMounts=[{name: app-conf-vol, mountPath: /etc/app/config}]

挂载完成后,你可以直接在原有应用配置中补全keystore的容器内路径,完整配置参考:

app.my-app-name.spring.kafka.bootstrap-servers=kafka-host:443
app.my-app-name.spring.kafka.security.protocol=SSL
app.my-app-name.spring.kafka.ssl.keystore.location=/etc/kafka/ssl/keystore.p12
app.my-app-name.spring.kafka.ssl.keystore.password=password
app.my-app-name.spring.kafka.ssl.key.password=password

2. 直接注入键值对配置为环境变量

如果不需要挂载文件,仅需要把Secret/ConfigMap中的键值对注入为容器环境变量(可被Spring Boot自动识别绑定),可以使用更简化的配置:

# 注入Secret中所有键值对为环境变量
deployer.my-app-name.kubernetes.envVarsSecret=kafka-client-keystore
# 注入ConfigMap中所有键值对为环境变量
deployer.my-app-name.kubernetes.configMapName=my-app-config

注意事项

  • 上述配置对SCDF的Task(任务)、Stream应用均生效,无需修改SCDF服务端全局配置,在单任务启动时按需传递即可。
  • 卷挂载规则和原生K8s完全一致,如果需要避免覆盖挂载路径下的原有文件,可以在volumeMounts配置中增加subPath字段指定单个文件的挂载路径。

内容的提问来源于stack exchange,提问作者Rens Verhage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 20:48:20