代码之家  ›  专栏  ›  技术社区  ›  Carla

如何更改持久卷以使用主机上的路径?

  •  1
  • Carla  · 技术社区  · 6 年前


    我完全通过Web控制台创建了一个持久的卷声明,并附加到我的Web服务器的/www/log挂载路径上。 我看到持久卷声明的工作方式就像我重新启动pod,日志被保留。

    不过,我想用 局部悬置 在主机上为持久化卷,以便我可以轻松跟踪日志。 在OKD Web控制台上,您只能创建新的PVC,但不能创建指向本地安装的PV。 您能否建议如何更新自动拾取的持久卷以使用本地装载(例如/mnt/data)?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Venkata Surya Lolla    6 年前

    这可以通过使用 主机路径 选项 持久体积山药 在通过命令行运行的openshift中。但是,如果你想沿着这条路走下去,有一些事情要注意。

    1. 在路径中创建的所有文件和目录 /mnt/data 只能由写入 用户。在这种情况下,要么你必须运行 特权容器 或给予适当的 许可 要写入的主机路径。

    2. 下面 钇铝石榴石 具有的语法 主机路径 持久卷中的选项。

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: test-pv
      spec:
        capacity:
          storage: 1Mi
        accessModes:
          - ReadWriteOnce
        persistentVolumeReclaimPolicy: Recycle
        hostPath:
          path: /mnt/data
      
    3. 运行以下命令以在特定项目中创建持久卷。 oc create -f test-pv.yaml -n <project>

    4. 一旦有可用的持久卷,请创建一个 持久卷声明 那个 界限 到上面创建的持久卷。

    5. 如果要将hostpath直接安装到pod上,请确保使用 节点选择器 在部署配置中, 短暂的 它们可以在任何时间点被重新创建。如果在可能没有 /MNT/数据 路径可用,它可能导致 CrashLoopBackOff 错误。

    6. 下面 钇铝石榴石 是一个例子 主机路径 在一 豆荚 .

      apiVersion: v1
      kind: Pod
      metadata:
        name: test-pod
      spec:
        containers:
        - image: tomcat
          name: test-container
          volumeMounts:
          - mountPath: /www/log
            name: test-volume
        volumes:
        - name: test-volume
          hostPath:
            # directory location on host
            path: /mnt/data
            # this field is optional
            type: Directory