9

您好我正在使用 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 当我尝试显示 pod 的结果时

当我“描述我的豆荚”时,我得到了

错误:找不到密钥 database_host

我的问题是,为什么我的部署文件与我定义的 configmap 不匹配

我通过这个命令创建了 configmap

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

4

3 回答 3

2

如“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"
于 2018-12-17T11:20:26.187 回答
2

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

于 2019-09-07T15:06:32.293 回答
2

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

于 2018-06-25T17:49:05.627 回答