我想要的是例如将 a 挂载hostpath
pv
到我的pod
目录,/usr/share/nginx/html/
并且我在该目录中的文件将保留。
我有一个nginx
图像,我index.html
在它的/usr/share/nginx/html/
目录中有文件。当我想编排它Kubernetes
并制作一个 pod 并使用PV
for 使其持久化时,它将挂载hostpath
到容器/usr/share/nginx/html/
目录,之后我的 index.html 将消失。这些是我的清单
Dockerfile
:
FROM nginx
WORKDIR /usr/share/nginx/html
COPY . /usr/share/nginx/html
EXPOSE 80
VOLUME /usr/share/nginx/html
在我的.
目录中,我有index.html
pod.yaml
:
kind: Pod
apiVersion: v1
metadata:
labels:
app: nginx
name: task-pv-pod23
spec:
volumes:
- name: task-pv-storage2
persistentVolumeClaim:
claimName: task-pv-claim2
containers:
- name: task-pv-container
image: meysambbb/nginx:2
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- name: task-pv-storage2
mountPath: /usr/share/nginx/html/
pv.yaml
:
kind: PersistentVolume
apiVersion: v1
metadata:
name: task-pv-volume2
labels:
type: local
spec:
capacity:
storage: 10Gi
accessModes:
- ReadOnlyMany
hostPath:
path: "/mnt/2/data/"
pvc.yaml
:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: task-pv-claim2
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 3Gi
当我在没有运行 pod 的情况下VolumeMount
运行curl <POD_IP>
它时,它会显示我的 index.html 内容,但是当我使用它时pv
,VolumeMount
它会显示 403 错误 是否可以hostpath
在同一目录中挂载和拥有容器文件?