我正在尝试将文件probes.json挂载到图像。我首先尝试通过手动指定值来创建类似于我的probes.json文件的configmap。
但是,当我应用复制器控制器时,出现错误。
我应该如何将JSON文件传递到configmap中/如何在data参数中指定值?
我尝试了以下步骤,但是出现错误。
Sheet5
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"
}
]
ReplicaContainer:
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
答案 0 :(得分:5)
此部分-
应该与name:
下第一行的volumeMounts
volumeMounts:
name: config-volume
- mountPath: /star/probes.json
像这样:
volumeMounts:
- name: config-volume
mountPath: /star/probes.json
答案 1 :(得分:2)
我想补充我今天学到的更多点,
使用以下代码安装文件将删除该目录下的所有文件,在本例中为容器中的星号目录。
- 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