与 configmap 通信时出错

Error communicating with the configmap

您好,我正在使用 google kubernetes 引擎来部署我的应用程序。我尝试添加一个 configMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap
  namespace: default
data:
  database_user: root
  database_password: root
  database_db: db
  database_port: 5432
  database_host: mypostgres

然后在我的应用程序部署文件中,我映射了我的环境变量,如下所示

 spec:
      containers:
      - env:
        - name: DATABASE_HOST
          valueFrom:
            configMapKeyRef:
              name: configmap
              key: database_host
        - name: DATABASE_NAME
          valueFrom:
            configMapKeyRef:
              name: configmap
              key:  database_db
        - name: DATABASE_PASSWORD
          valueFrom:
            configMapKeyRef:
              name: configmap
              key: database_password
        - name: DATABASE_USER
          valueFrom:
            configMapKeyRef:
              name: configmap
              key: database_user

        - name: DATABASE_PORT
          valueFrom:
            configMapKeyRef:
              name: configmap
              key: database_port

我的服务我没有 运行 而我得到了

CreateContainerConfigError When I try to show the result of the pod

当我 "describe my pod " 我得到了

Error: Couldn't find key database_host

我的问题是,为什么我的部署文件没有与我定义的 configmap 通信

我通过这个命令创建了 configmap

kubectl create configmap configmap --from-file=configmap.yaml

尝试configmap --from-env-file=configm

如"kubectl create configmap --help"所述: --from-env-file='': 指定文件的路径以读取 key=val 对的行以创建 configmap(即 Docker .env 文件)。

所以你只需要创建一个名为 conf 的文件,其值如下:

database_user= root
database_password= root
database_db= db
database_port= 5432
database_host= mypostgres

和运行:"kubectl create configmap coco-config --from-env-file=conf"

更新: 如果您将数据放入“ ”,问题将得到解决

apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap
  namespace: default
data:
  database_user: "root"
  database_password: "root"
  database_db: "db"
  database_port: "5432"
  database_host: "mypostgres"

不要使用 --from-file 命令。 试试 kubectl apply -f configmap.yaml