【问题标题】:Mounting ConfigMaps in Spring Cloud Data flow deployed in Kubernetes在 Kubernetes 中部署的 Spring Cloud 数据流中挂载 ConfigMap
【发布时间】:2020-08-30 15:35:41
【问题描述】:

我正在使用 Spring Cloud Data flow 进行微服务编排并将它们部署在 Kubernetes 中。我的应用程序管道如下所示: Source-app --> Processor-app --> Sink-app

我能够创建和部署流,它成功地创建了部署和 Pod,我的管道在以下 SCDF 部署器属性中运行良好:

app.Source-app.deployer.kubernetes.livenessProbePath=/api/v1/actuator/health
app.Source-app.deployer.kubernetes.readinessProbePath=/api/v1/actuator/info
app.Source-app.server.port=8080
app.Processor-app.deployer.kubernetes.livenessProbePath=/api/v1/actuator/health
app.Processor-app.deployer.kubernetes.readinessProbePath=/api/v1/actuator/info
app.Processor-app.server.port=8080
app.Sink-app.deployer.kubernetes.livenessProbePath=/api/v1/actuator/health
app.Sink-app.deployer.kubernetes.readinessProbePath=/api/v1/actuator/info
app.Sink-app.server.port=8080
deployer.*.kubernetes.liveness-probe-path=/api/v1/actuator/health
deployer.*.kubernetes.readiness-probe-path=/api/v1/actuator/info

现在我的要求是,我想将上述所有配置存储在 Kubernetes 的 ConfigMap 中,然后在 SCDF 部署程序属性窗口中引用或挂载该 ConfigMap。我知道我们可以将 configMapKeyRefs 用作环境变量(仅限字符串值),例如:

deployer.Source-app.kubernetes.configMapKeyRefs=[{envVarName: 'LIVENESSPROBEPATH', configMapName: 'test-conf', dataKey: 'livenessProbePath }]
app.Source-app.deployer.kubernetes.livenessProbePath=$(LIVENESSPROBEPATH) 

...对每个属性依此类推...

但是我们需要为每个属性都这样做。 我正在寻找类似的东西,在 configMap 中提及所有属性,然后在 SCDF 中部署流时引用或安装该 ConfigMap,瞧!您的所有属性都会传递给应用程序。 我指的是官方文档并阅读了有关volumeMounts和persistentVolumes的信息,但不是很清楚。如果有人可以为我的用例提供解决方案,那将有很大帮助。

【问题讨论】:

    标签: kubernetes spring-cloud-dataflow configmap


    【解决方案1】:

    考虑你有类似这样的 configmap:

    apiVersion: v1
    data:
      USER_ID: "1"
      USER_EMAIL: user@mail.com
      IS_DATA_ENABLED : "True"
    kind: ConfigMap
    metadata:
      name: staging-configmap
      namespace: default
    

    您可以使用

    注入部署中的所有属性
    envFrom:
            - secretRef:
                name: test-secret
            - configMapRef:
                name: staging-configmap
    

    如果您也有秘密,您也可以将秘密挂载或注入到部署及其变量集操作系统中。使用configMapRef 会将配置映射的所有属性添加到部署中。

    【讨论】:

    • 非常感谢 Harsh Manvar 的回复。如前所述,我通过 Spring Cloud Data 流部署在 Kubernetes 中创建部署,而不是通过在 Kubernetes 中编写 yml 文件来手动创建部署。因此,如果我编辑由 SCDF 创建的部署文件以添加“envFrom”字段,则部署失败,即使没有,我也会将 ConfigMap 键作为 env 变量,我需要为每个部署者属性单独设置在 SCDF 中。
    • 对不起,我对 SCDF 不太了解。可能必须检查。
    • 在这里找到了我要找的东西:stackoverflow.com/questions/53001506/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2021-09-08
    • 2016-10-01
    • 2021-08-04
    相关资源
    最近更新 更多