kubernetes - Kubernetes:验证错误(Deployment.spec.template.spec.container[0]):io.k8s.api.core.v1.Container 中的未知字段“ConfigMapref”
问题描述
我正在 Kubernetes 中进行我的第一次部署,并且我已经在我的命名空间中托管了我的 API,并且它已经启动并运行。所以我尝试将我的 API 与 MongoDB 连接起来。通过 Rancher 在 ConfigMaps 中添加了我的数据库详细信息。
我试图在我的部署 YAML 文件中调用数据库,但出现错误说明Unknown Field - ConfigMapref
下面是我的部署 YAML 文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myfistproject
namespace: Owncloud
spec
replicas: 2
selector:
matchLables:
app: myfirstproject
version: 1.0.0
template:
metadata:
labels:
app: myfirstproject
version: 1.0.0
spec:
containers:
- name: myfirstproject
image: **my image repo location**
imagePullPolicy: always
ports:
- containerPort: 80
configMapRef:
- name: myfirstprojectdb # This is the name of the config map created via rancher
myfirstprojectdb
ConfigMap 将存储所有详细信息,如数据库名称、用户名、密码等。
在执行管道时,我收到以下错误。
我如何需要在部署 yaml 中引用我的配置映射?
Validation Error(Deployment.spec.template.spec.container[0]): unknown field "ConfigMapref" in io.k8s.api.core.v1.Container
解决方案
还有一些错别字(例如,在大写字母:
之后spec
或Always
应该是大写字母之后丢失)。也indentation
应该在整个yaml
文件中保持一致 -请参阅 yaml 缩进和分隔。
我更正了您的 yaml,因此它通过了 api 服务器的检查 + 添加了配置映射参考(考虑到它包含 env 变量):
apiVersion: apps/v1
kind: Deployment
metadata:
name: myfistproject
namespace: Owncloud
spec:
replicas: 2
selector:
matchLabels:
app: myfirstproject
version: 1.0.0
template:
metadata:
labels:
app: myfirstproject
version: 1.0.0
spec:
containers:
- name: myfirstproject
image: **my image repo location**
imagePullPolicy: Always
ports:
- containerPort: 80
envFrom:
- configMapRef:
name: myfirstprojectdb
有用的链接:
将 ConfigMap 中的所有键值对配置为与此问题相关的容器环境变量。
推荐阅读
- assembly - 有没有更好的方法来编写这个while循环?
- python - 如何在 Python 中合并大字典?
- macos - WKWebView 在 NSViewRepresentable 中没有从一开始就显示
- python - CPU 和 GPU 生成的结果不匹配
- oracle - 解析 Oracle Clob 数据以提取模式之间的文本
- sql-server - 子查询返回超过 1 个值。SQL Server 中的触发错误
- php - Wordpress 搜索/创建属性分配然后搜索/添加值
- python - Python:基于多个数据框列的矩阵值
- r - (R):将 data.table 行变成向量
- c# - 如何在列表框中选择随机行,然后通过单击 C# 中的按钮将其保存到文件中?