首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在哪里可以找到在本地运行的Kubernetes集群上的PersistentVolume的路径

在哪里可以找到在本地运行的Kubernetes集群上的PersistentVolume的路径
EN

Stack Overflow用户
提问于 2021-02-19 00:36:58
回答 1查看 980关注 0票数 0

我需要将文件(.txt)复制到PersistentVolume吗?

代码语言:javascript
复制
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:

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/mnt/data"

PersistentVolumeClaim:

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: task-pv-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

下面是我从kubectl get pvc -o yaml得到的结果

代码语言:javascript
复制
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: ""
EN

回答 1

Stack Overflow用户

发布于 2021-02-19 21:37:18

目标目录是您在pod/job清单中作为mountPath使用的目录。因此,如果您选择在/mnt/data中挂载它,那么它将是您的目标目录。例如:

代码语言:javascript
复制
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

因此,如果要将文件从主机复制到已挂载的目录:

代码语言:javascript
复制
kubectl cp <some_host_file> <pod_name>/:/mnt/data

除此之外,如果您使用的是hostPath,它会将文件从您的主机复制到pod的指定目录中,因此您只需将文件放在那里,它就会被复制到pod。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66264180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档