与configmap通信时出错

时间:2018-06-25 16:13:58

标签: kubernetes 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   当我尝试显示广告连播的结果

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

  

错误:找不到密钥database_host

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

我通过此命令创建了configmap

  

kubectl创建configmap configmap --from-file = configmap.yaml

3 个答案:

答案 0 :(得分:1)

如“ kubectl create configmap --help”中所述: --from-env-file ='':指定文件的路径以读取key = val对的行以创建配置映射(即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"

答案 1 :(得分:1)

请勿使用--from-file命令。 尝试kubectl apply -f configmap.yaml

答案 2 :(得分:0)

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