【发布时间】:2021-03-15 08:53:43
【问题描述】:
我正在尝试了解 Kubernetes PersistentVolumes 的访问模式。
根据 Kubernetes 文档,访问模式是:
ReadWriteOnce -- the volume can be mounted as read-write by a single node
ReadOnlyMany -- the volume can be mounted read-only by many nodes
ReadWriteMany -- the volume can be mounted as read-write by many nodes
音量插件HostPath支持ReadWriteOnce
我有一个 1 controlplane and 1 worker1 node 的 K8s 集群,我根据以下配置在同一 namespace 中部署了两个 Pod,每个节点、pv、pvc。运行在不同节点上的两个 pod 都可以对本地路径 /tmp/test 进行读写。
根据我的理解,这不应该发生。只有一个节点应该能够读写,而另一个节点应该只能读取。
有人能解释一下这里发生了什么吗,如果可能的话,请给我提供例子/博客来看看RWO, RWX, ROX之间的区别?大部分的博客,只是简单的说一下PV、PVC和访问方式。
apiVersion: v1
kind: Pod
metadata:
name: pod2
spec:
nodeName: controlplane
containers:
- image: nginx
name: pod2
volumeMounts:
- name: vol
mountPath: /usr/share/nginx/html
volumes:
- name: vol
persistentVolumeClaim:
claimName: pvc
---
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
nodeName: worker1
containers:
- image: nginx
name: pod1
volumeMounts:
- name: vol
mountPath: /usr/share/nginx/html
volumes:
- name: vol
persistentVolumeClaim:
claimName: pvc
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /tmp/test
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
【问题讨论】:
标签: kubernetes google-kubernetes-engine persistent-volumes persistent-volume-claims