我已将 server.path 值上传到 kubernetes configmap 中,并将 db.name 和 db.password 上传到 kubernetes secret 中。当我通过 env 命令检查时,这些值在服务容器中可用,也像“echo $server_path”。现在我试图将这些值绑定到相同的基于 spring-cloud-config-server 的服务相关的 application-dev.properties 文件中。我正在使用 server.path=${server_path}, db.name=${db_name} 之类的占位符
这不起作用,我在邮递员响应中获得了准确的键和占位符名称,而不是应该来自 ConfigMap 和 Secrets 的键和占位符值。
我是新来的。
请帮忙
我尝试了使用 ${placeholder} 将 k8s configMap 和 Secrets env 值绑定到应用程序属性文件的所有方法。它不工作。我是新来的。请帮助。
出于测试目的,我有一个键值对到 configMap。它的 jcsmp_PUB_ACK_WINDOW_SIZE :“50”
这是我的 configMap yaml。
尝试使用 RefKeys 将 configmap 和秘密分配给环境变量,如下所示
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx
env:
- name: myvalue
valueFrom:
configMapKeyRef:
name: my-config # Configmap name
key: my-property
- name: my_password
valueFrom:
secretKeyRef:
name: my-secret #Secret name
key: password
另一种方法是您可以将 configmap 和 secrets 挂载为 volumes。这样这些配置就会挂载到 Pod 中。您可以使用 mountpath 并按如下方式访问容器内的这些配置
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx
volumeMounts:
- name: config-volume
moutnPath: /config
- name: secret-volume
mountPath: /secrets
volumes:
- name: config-volume
configMap:
name: my-config #Configmap name
- name: secret-volume
secret:
secretName: my-secret #Secret name