我正在尝试在 kubernetes 中运行 indy 节点。这些 indy 节点是沙箱节点,将数据写入/var/lib/indy
容器内的目录中。当我运行挂载了卷的 pod 时,它不会在卷目录中写入任何内容。尽管它在卷内创建了一个目录,但它始终是空的。但是,当我创建一个没有卷挂载选项的 pod 时,容器会将数据写入/var/lib/indy
.
以下是 Dockerfile:
Hastebin:https ://hastebin.com/hitinefizi.nginx
Kubernetes 部署:
{{- $root := .}}
{{- range .Values.indy}}
---
apiVersion: apps/v1
kind: Deployment
metadata:
# namespace: {{$root.Values.namespace}}
name: {{.name}}
spec:
selector:
matchLabels:
name: {{.name}}
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
name: {{.name}}
spec:
containers:
- name: {{.name}}
image: {{.image}}
volumeMounts:
- name: {{$root.Values.pv.metadata.name}}
mountPath: "/var/lib/indy/sandbox"
subPath: "volume/indy/{{.name}}/sandbox"
ports:
- containerPort: {{ index .ports 0 }}
- containerPort: {{ index .ports 1 }}
nodeSelector:
nodeType: {{$root.Values.hosts.blockchain}}
volumes:
- name: {{$root.Values.pv.metadata.name}}
{{- if eq $root.Values.storage.type "nfs" }}
persistentVolumeClaim:
claimName: {{$root.Values.pvc.metadata.name}}
{{- else }}
hostPath:
path: /var/kubeshare/
{{- end }}
{{- end}}
卷内的目录:
[root@centos1 kubeshare]# tree volume/indy/
volume/indy/
|-- indy-node1
|-- indy-node2
|-- indy-node3
`-- indy-node
/var/lib/indy
容器内没有卷的目录:
root@indy-node1-587c4758bf-2hpp6:/var/lib/indy# tree -L 3
.
|-- plugins
`-- sandbox
|-- data
| `-- Node1
|-- domain_transactions_genesis
|-- keys
| |-- Node1
| |-- Node1C
| |-- Node2
| |-- Node3
| `-- Node4
|-- node1_additional_info.json
|-- node1_info.json
|-- node1_version_info.json
`-- pool_transactions_genesis
我不确定为什么会这样。任何帮助/建议将不胜感激。
更新:当我尝试使用本地卷时,这与 docker-compose 发生的情况相同。