Kubernetes 如何从多个ConfigMap资源构建DSN env?
为了使服务正常工作,它需要一个名为Kubernetes 如何从多个ConfigMap资源构建DSN env?,kubernetes,Kubernetes,为了使服务正常工作,它需要一个名为DSN的环境变量,它会打印成postgres://user:password@postgres.svc.cluster.local:5432/数据库。我使用ConfigMap资源生成的此值: apiVersion: v1 kind: ConfigMap metadata: name: idp-config namespace: diary data: DSN: postgres://user:password@postgres.svc.cluster
DSN
的环境变量,它会打印成postgres://user:password@postgres.svc.cluster.local:5432/数据库
。我使用ConfigMap
资源生成的此值:
apiVersion: v1
kind: ConfigMap
metadata:
name: idp-config
namespace: diary
data:
DSN: postgres://user:password@postgres.svc.cluster.local:5432/database
此ConfigMap作为环境变量装载在我的service Pod中。由于这些值不同于
user
和password
,并且这些PostgreSQL凭据位于另一个k8s资源中(aSecret
和aConfigMap
),如何在k8s资源yaml中正确构建此DSN
环境,以便我的服务可以连接到数据库?深入挖掘我能够找到的Kubernetes文档。根据:
您在Pod配置中定义的环境变量可以在配置中的其他位置使用,例如在为Pod容器设置的命令和参数中。在下面的示例配置中,GREETING、HONORIFIC和NAME环境变量分别设置为Warm GREETING to、the Most honorible和Kubernetes。然后,在传递给env print demo容器的CLI参数中使用这些环境变量
apiVersion: v1
kind: Pod
metadata:
name: print-greeting
spec:
containers:
- name: env-print-demo
image: bash
env:
- name: GREETING
value: "Warm greetings to"
- name: HONORIFIC
value: "The Most Honorable"
- name: NAME
value: "Kubernetes"
command: ["echo"]
args: ["$(GREETING) $(HONORIFIC) $(NAME)"]