我能够使用
成功地在docker容器和主机之间共享数据docker run -it -v /path/to/host/folder:/container/path image-name
现在,我正在尝试每分钟通过Kubernetes cronjob运行此docker映像,为此我的yaml文件如下:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: automation
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: automation
image: localhost:32000/image-name:registry
restartPolicy: OnFailure
但是在这里,我如何在本地和k8之间共享数据,以便基本上从docker run命令复制-v /path/to/host/folder:/container/path
功能?
我应该在yaml文件中添加什么?
请帮助。
答案 0 :(得分:1)
如果您只是在玩一个节点,并且需要将卷从该节点映射到在同一节点中运行的Pod,则需要使用hostPath volume。 br /> 总之,您的代码将如下所示:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: automation
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: automation
image: localhost:32000/image-name:registry
volumeMounts:
- mountPath: /container/path
name: test-volume
restartPolicy: OnFailure
volumes:
- name: test-volume
hostPath:
# directory location on host
path: /path/to/host/folder
# this field is optional
type: Directory
警告,仅当您只有一个一个节点群集时,此选项才有效。
如果您具有多节点集群,则需要了解分布式存储解决方案以及如何将它们与kubernetes结合使用。