Kubernetes"local"PV和目录创建



在配置localPV时,我注意到,如果基础节点上还不存在PV目录,则没有显式创建该目录的选项。与提供DirectoryOrCreate选项的hostPathPV不同(如此处的文档所示(,localPV要求您首先手动创建目录,并为其提供正确的所有权和权限。

我正在尝试使用带有目录的localPV作为安装的本地存储设备,代码为:

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脚本。