gpt4 book ai didi

yaml - 在此上下文中不允许映射值

转载 作者:行者123 更新时间:2023-12-01 00:27:00 26 4
gpt4 key购买 nike

我是 YAML 格式和 kubernetes 的新手。

下面是一个 dep_prom.yml 文件。

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
name: prometheus-deployment
name: prometheus
#namespace: prometheus
spec:
replicas: 1
template:
metadata:
labels:
app: prometheus
spec:
containers:
- image: prom/prometheus:master
name: prometheus
command:
- "/bin/prometheus"
args:
- "-config.file=/etc/prometheus/prometheus.yml"
- "-storage.local.path=/prometheus"
- "-storage.local.retention=24h"
ports:
- containerPort: 9090
protocol: TCP
volumeMounts:
- mountPath: "/prometheus"
name: data
- mountPath: "/etc/prometheus"
name: config-volume
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 500m
memory: 2500Mi
volumes:
- name: data
hostPath:
path: /data/prometheus
- name: config-volume
configMap:
name: prometheus
nodeSelector: westporch-kubeminion-1
kubernetes.io/hostname: 10.0.24.52
---

但是...当我执行 kubectl create -f dep_prom.yml

错误:将 YAML 转换为 JSON 时出错:yaml:第 47 行:此上下文中不允许映射值

第 47 行是 nodeSelector: westporch-kubeminion-1

我认为 YAML 文件格式是正常的。

是什么导致了这个错误?

最佳答案

您表示您认为 YAML 格式是正常的,但事实并非如此。这是由第一个文档末尾的行引起的 YAML 错误,开头是 kubernetes.io/hostname相对于它之前的缩进。因为这些都是键值对行(即块样式映射的项目对)而不是

      nodeSelector: westporch-kubeminion-1
kubernetes.io/hostname: 10.0.24.52

你要么需要做:
      nodeSelector: westporch-kubeminion-1
kubernetes.io/hostname: 10.0.24.52

但它可能是 nodeSelector需要一个映射作为参数而不是标量 westporch-kubeminion-1现在有了。
      nodeSelector:
kubernetes.io/hostname: 10.0.24.52

此错误可能会掩盖文件中的第二个错误,具体取决于 kubernetes 的宽松程度。 ---是指令结束标记,因为指令是可选的,所以它可以出现在 YAML 文档的开头。示例底部的那个表示新文档的开始。一旦您解决了第一个错误,您可能会收到有关基于该错误的单个文档的警告。 (文档结束标记由三个点组成: ... 位于行首,后跟空格。

当然,您所做的任何更改都应确认 kubernetes 所期望的内容,但上述流显然作为 YAML 本身无效。

关于yaml - 在此上下文中不允许映射值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44327773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com