我需要将文件(.txt)复制到PersistentVolume吗?
kubectl cp <file-spec-src> <file-spec-dest>我需要知道PersistentVolume的<file-spec-dest>。
Backgroud:我有一个单节点Kubernetes-Cluster

(docker-docker)在我的mac上本地运行。我正在尝试将.txt文件复制到PersistentVolume (PV)。我已经创建了PV和PersistentVolumeClaim (PVC)。
注意:有人问我,使用pod而不是persistentVolume是否更有意义。其目的是,将作为Kubernetes Job运行的映像将使用.txt文件中的数据。
PersistentVolume:
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
hostPath:
path: "/mnt/data"PersistentVolumeClaim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi下面是我从kubectl get pvc -o yaml得到的结果
apiVersion: v1
items:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-provisioner: docker.io/hostpath
creationTimestamp: "2021-02-18T15:06:19Z"
finalizers:
- kubernetes.io/pvc-protection
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:pv.kubernetes.io/bind-completed: {}
f:pv.kubernetes.io/bound-by-controller: {}
f:volume.beta.kubernetes.io/storage-provisioner: {}
f:spec:
f:volumeName: {}
f:status:
f:accessModes: {}
f:capacity:
.: {}
f:storage: {}
f:phase: {}
manager: kube-controller-manager
operation: Update
time: "2021-02-18T15:06:19Z"
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:spec:
f:accessModes: {}
f:resources:
f:requests:
.: {}
f:storage: {}
f:volumeMode: {}
manager: kubectl-create
operation: Update
time: "2021-02-18T15:06:19Z"
name: task-pv-claim
namespace: default
resourceVersion: "113659"
selfLink: /api/v1/namespaces/default/persistentvolumeclaims/task-pv-claim
uid: 5b825c41-cf4f-4c08-b90e-47e3fca557a1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
storageClassName: hostpath
volumeMode: Filesystem
volumeName: pvc-5b825c41-cf4f-4c08-b90e-47e3fca557a1
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 3Gi
phase: Bound
kind: List
metadata:
resourceVersion: ""
selfLink: ""发布于 2021-02-19 21:37:18
目标目录是您在pod/job清单中作为mountPath使用的目录。因此,如果您选择在/mnt/data中挂载它,那么它将是您的目标目录。例如:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
volumes:
- name: task-pv-claim
hostPath:
path: /mnt/data
type: Directory
containers:
- name: pi
image: nginx
command: ["some_job"]
volumeMounts:
- name: task-pv-claim
mountPath: /mnt/data
restartPolicy: Never因此,如果要将文件从主机复制到已挂载的目录:
kubectl cp <some_host_file> <pod_name>/:/mnt/data除此之外,如果您使用的是hostPath,它会将文件从您的主机复制到pod的指定目录中,因此您只需将文件放在那里,它就会被复制到pod。
https://stackoverflow.com/questions/66264180
复制相似问题