Openshift 如何将持久卷更改为使用主机上的路径?
Openshift 如何将持久卷更改为使用主机上的路径?,openshift,openshift-origin,Openshift,Openshift Origin,我完全通过Web控制台创建了一个持久卷声明,并将其附加到Web服务器的/www/log装载路径。 我看到持久卷声明的工作原理就像我重新启动Pod一样,日志被保留 但是,我希望在主机上为持久卷使用本地挂载,以便轻松跟踪日志。 在OKD Web控制台上,只能创建新的PVC,但不能创建指向本地挂载的PV。 您能否建议如何更新自动拾取的持久卷以使用本地装载(例如/mnt/data)?这可以通过在OpenShift中通过命令行运行hostPath选项持久卷YAML来解决。但是,如果你想走这条路,有一些事情
我完全通过Web控制台创建了一个持久卷声明,并将其附加到Web服务器的/www/log装载路径。 我看到持久卷声明的工作原理就像我重新启动Pod一样,日志被保留 但是,我希望在主机上为持久卷使用本地挂载,以便轻松跟踪日志。 在OKD Web控制台上,只能创建新的PVC,但不能创建指向本地挂载的PV。
您能否建议如何更新自动拾取的持久卷以使用本地装载(例如/mnt/data)?这可以通过在OpenShift中通过命令行运行hostPath选项持久卷YAML来解决。但是,如果你想走这条路,有一些事情需要注意
/mnt/data
中创建的所有文件和目录只能由root用户写入。在这种情况下,您必须运行一个特权容器,或者为主机路径授予适当的权限,使其可写apiVersion: v1
kind: PersistentVolume
metadata:
name: test-pv
spec:
capacity:
storage: 1Mi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
hostPath:
path: /mnt/data
apiVersion: v1
kind: PersistentVolume
metadata:
name: test-pv
spec:
capacity:
storage: 1Mi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
hostPath:
path: /mnt/data
/mnt/data
路径可用的主机上调度具有主机路径的POD,则可能会导致CrashLoopBackOff
错误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
非常感谢您的详细回答!