我正在用 PV 测试一些东西,并希望得到一些澄清。我们有一个 18 节点集群(使用 Docker EE),并且我们在每个节点上都挂载了 NFS 共享,用于 k8s 持久存储。我创建了一个 PV(使用 hostPath)将它与我的 nginx 部署绑定(将 /usr/share/nginx/html 安装到 PV)。
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-test-namespace-pv
namespace: test-namespace
spec:
storageClassName: manual
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
hostPath:
path: "/nfs_share/docker/mynginx/demo"
How to create the PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-test-namespace-pvc
namespace: test-namespace
spec:
storageClassName: manual
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
部署文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mynginx
specs:
selector:
matchLabels:
run: mynginx-apps
replicas:2
template:
metadata:
labels:
run: mynginx-apps
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: nfs-test-namespace-pvc
containers:
- name: mynginx
image: dtr.midev.spglobal.com/spgmi/base:mynginx-v1
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
所以我假设当我的 pod 启动时,nginx 图像中的默认index.html文件应该在我的 pod 内的/usr/share/nginx/html中可用,并且它也应该在我的/nfs_share/mynginx/demo中复制/可用。
但是,我在这里没有看到任何文件,当我公开此部署并访问服务时,由于索引文件不可用,它给了我 403 错误。现在,当我从 pod 内部或从安装为 PV 的 nfs 共享上的节点创建 html 文件时,它按预期工作。
我对默认文件被复制到主机路径的假设是否正确?还是我错过了什么?