在配置local
PV时,我注意到,如果基础节点上还不存在PV目录,则没有显式创建该目录的选项。与提供DirectoryOrCreate
选项的hostPath
PV不同(如此处的文档所示(,local
PV要求您首先手动创建目录,并为其提供正确的所有权和权限。
我正在尝试使用带有目录的local
PV作为安装的本地存储设备,代码为:
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins-pv-volume
namespace: jenkins
spec:
capacity:
storage: 4Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
local:
path: "/var/jenkins_home"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- worker-1
然而,为了正确配置PV,我首先需要ssh到worker-1
节点并运行以下命令:
sudo mkdir -p /var/jenkins_home
sudo chown -R 1000:1000 /var/jenkins_home
sudo chmod -R 755 /var/jenkins_home
当应用PV配置时,是否可以创建目录并赋予其正确的所有权和权限?
否,您不能跳过此步骤。
但是,您可以编写将在后台工作的脚本,并执行将为本地卷创建目录并为其分配权限的命令。记住要授予脚本执行权限。例如,使用正确的命令创建脚本,然后创建ConfigMap,ConfigMap将运行创建的脚本,ConfigMap也将配置PV。
请参阅示例:configmap volume、configmap脚本。