gpt4 book ai didi

docker - 在挂载 “hostpath PV ”到Pod时保留Pod目录文件

转载 作者:行者123 更新时间:2023-12-02 11:47:27 27 4
gpt4 key购买 nike

我想要的是将hostpath pv挂载到我的pod目录中,例如/usr/share/nginx/html/,并保留我在该目录中的文件。

我有一个nginx图像,我在index.html目录中有/usr/share/nginx/html/文件。
当我想用Kubernetes编排它并制作一个pod并使用PV使其持久化时,它将hostpath安装到容器/usr/share/nginx/html/目录中,然后我的index.html将消失。
这些是我的 list
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

当我运行没有 VolumeMount的pod时,当我运行 curl <POD_IP>时,它显示我的index.html内容,但是当我使用 pvVolumeMount时,它显示403错误
是否可以挂载 hostpath并将容器文件放在同一目录中?

最佳答案

此数据是静态的(您将其构建到镜像中)还是更改了(您要使卷保留该数据)?当此内容更改时,您想要什么行为?

您试图在此处指定的选项组合实际上没有任何意义。 Kubernetes不会做Docker要做的事情,如果您将空卷装载到容器中,则它会填充镜像中的匹配内容。即使这样,如果您进行更改并重建镜像,纯Docker和Kubernetes都不会修改该卷。它将仍然具有旧内容。

我对HTML文件和相关 Assets 的树的直觉是,它可能更像“数据”而不是“类似代码”,因此,我将使用普通的nginx图像,将树复制到要作为主机路径挂载的目录中,并以这种方式进行。当该树更改时,您将在hostpath目录中进行更改。

关于docker - 在挂载 “hostpath PV ”到Pod时保留Pod目录文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56056685/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com