Kubernetes以json格式配置映射错误

Kubernetes以json格式配置映射错误,json,kubernetes,Json,Kubernetes,我正在尝试将probes.json文件装载到图像。我首先尝试通过手动指定值来创建一个类似于probes.json文件的configmap 然而,当我应用replicator控制器时,我得到了一个错误 如何将JSON文件传递到configmap/如何在数据参数中指定值 我尝试了以下步骤,但是,我得到了一个错误 $ cat probes.json [ { "id": "F", "url": "http://frontend.stars:80/status" }, {

我正在尝试将probes.json文件装载到图像。我首先尝试通过手动指定值来创建一个类似于probes.json文件的configmap

然而,当我应用replicator控制器时,我得到了一个错误

如何将JSON文件传递到configmap/如何在数据参数中指定值

我尝试了以下步骤,但是,我得到了一个错误

$ cat probes.json 
[
  {
    "id": "F",
    "url": "http://frontend.stars:80/status"
  },
  {
    "id": "B",
    "url": "http://backend.stars:6379/status"
  },
  {
    "id": "C",
    "url": "http://client.stars:9000/status"
  }
]
配置映射:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-vol-config
  namespace: stars
data:
  id: F
  id: B
  id: C
  F: |
   url: http://frontend.stars:80/status
  B: |
   url: http://backend.stars:6379/status
  C: |
   url: http://client.stars:9000/status
复制容器:

apiVersion: v1
kind: ReplicationController
metadata:
  name: management-ui
  namespace: stars
spec:
  replicas: 1
  template:
    metadata:
      labels:
        role: management-ui
    spec:
      containers:
      - name: management-ui
        image: calico/star-collect:v0.1.0
        imagePullPolicy: Always
        ports:
        - containerPort: 9001
        volumeMounts:
          name: config-volume
        - mountPath: /star/probes.json
      volumes:
        - name: config-volume
          configMap:
             name: my-vol-config
错误:

kubectl apply -f calico-namespace/management-ui.yaml
service "management-ui" unchanged
error: error converting YAML to JSON: yaml: line 20: did not find expected key

此部分,
-
应在
volumeMounts

    volumeMounts:
      name: config-volume
    - mountPath: /star/probes.json
像这样:

    volumeMounts:
      - name: config-volume
        mountPath: /star/probes.json

我想补充我今天学到的更多要点

使用下面的代码挂载文件将删除该目录下的所有文件,在本例中为容器中的星形目录

-    volumeMounts:
      - name: config-volume
        mountPath: /star/probes.json
要解决这个问题,我们应该使用子路径

  volumeMounts:
    - name: "config-volume"
      mountPath: "/star/probes.json"
      subPath: "probes.json"
不要在如何将键值对传递到数据中上下功夫,请尝试作为json文件传递,并记住在创建configmap时指定名称空间

在我的示例中:我有probes.json,我尝试将其作为一种方式传递,而不将每个值传递给我的数据。我使用下面的命令创建了我的configmap

kubectl create configmap config --namespace stars --from-file calico-namespace/probes.json

我认为最新的yaml是无效的。例如,检查。我想你需要在钥匙前去掉破折号,它会的do@Tom冈萨雷斯·道林仍然犯同样的错误