如何在Kubernetes ConfigMap中添加协议前缀

lmvvr0a8  于 2022-10-23  发布在  Kubernetes
关注(0)|答案(1)|浏览(125)

在我的Kubernetes集群中,我有一个ConfigMap对象,其中包含我的postgres pod的地址。它是用以下YAML创建的:

apiVersion: v1
kind: ConfigMap
metadata:
  name: postgres-configmap
data:
  database_url: postgres-service

现在,我在我的一个部署配置中引用此值:

env:
 - name: DB_ADDRESS
   valueFrom:
     configMapKeyRef:
       name: postgres-configmap
       key: database_url

此部署是一个Spring Boot应用程序,它打算与数据库通信。因此,它从DB_ADDRESS环境变量中读取数据库的URL。(忽略缺省值,这些值仅在开发过程中使用)

datasource:
    url: ${DB_ADDRESS:jdbc:postgresql://localhost:5432/users}
    username:  ${POSTGRES_USER:postgres}
    password:  ${POSTGRES_PASSWORD:mysecretpassword}

因此,根据日志,问题是地址必须有jdbc:postgresql://前缀。无论是在ConfigMap的YAML中,还是在Applation.yml中,我都需要将前缀协议字符串与变量连接在一起。你知道如何在YML中做这件事吗?或者有其他解决办法的建议吗?

ht4b089n

ht4b089n1#

如果您创建一个Service,它将为您提供一个主机名(服务的名称),然后您可以在ConfigMap中使用它。例如,如果您创建了一个名为postgres的服务,则您的ConfigMap将如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
  name: postgres-configmap
data:
  database_url: jdbc:postgresql://postgres:5432/users

相关问题