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 当我尝试显示 pod 的结果时
当我“描述我的豆荚”时,我得到了
错误:找不到密钥 database_host
我的问题是,为什么我的部署文件与我定义的 configmap 不匹配
我通过这个命令创建了 configmap
kubectl create configmap configmap --from-file=configmap.yaml
解决方案
如“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"
推荐阅读
- android - 如何通过动态设置宽度和高度来填充 Fresco SimpleDraweeView 中的图像?
- javascript - cs50 src5 示例网页无响应
- oracle - 错误:ORA-01848:从 DateColumn(varchar(10)) 中提取月份和年份时,一年中的某一天必须介于 1 和 365 之间(闰年为 366)
- c++ - C++ 通过接口使用从其他几个继承的类
- express - Sequelize distinct in include 在 \"DISTINCT\" 处或附近引发语法错误
- ag-grid - applyTransaction 删除不适用于 id
- loops - MS Windows Batch:使用具有可变范围和多行命令的 for 循环
- reactjs - 错误的字符转义序列
- node.js - 尝试将 apollo-angular 客户端连接到 graphql-server 时不允许使用 405 方法
- angular - 如果值为空,如何使用 Ng if 更改数据表背景颜色