Kubernetes `local` PV 和目录创建
Kubernetes `local` PV and directory creation
在配置 local
PV 时,我注意到没有选项可以在底层节点上显式创建 PV 目录(如果它尚不存在),这与 hostPath
PV 不同,后者提供 DirectoryOrCreate
选项(如文档 here 中所示),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 中创建的脚本也将配置 PV。
在配置 local
PV 时,我注意到没有选项可以在底层节点上显式创建 PV 目录(如果它尚不存在),这与 hostPath
PV 不同,后者提供 DirectoryOrCreate
选项(如文档 here 中所示),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 中创建的脚本也将配置 PV。