4.3.3.3. 액세스 모드
A PersistentVolume
은 리소스 프로바이더가 지원하는 방식으로 호스트에 마운트할 수 있습니다. 프로바이더에는 다양한 기능이 있으며 각 PV의 액세스 모드는 해당 볼륨에서 지원하는 특정 모드로 설정됩니다. 예를 들어 NFS에서는 여러 읽기/쓰기 클라이언트를 지원할 수 있지만 특정 NFS PV는 서버에서 읽기 전용으로 내보낼 수 있습니다. 각 PV는 특정 PV의 기능을 설명하는 자체 액세스 모드 세트를 가져옵니다.
클레임은 액세스 모드가 유사한 볼륨과 매칭됩니다. 유일하게 일치하는 두 가지 기준은 액세스 모드와 크기입니다. 클레임의 액세스 모드는 요청을 나타냅니다. 따라서 더 많이 부여될 수 있지만 절대로 부족하게는 부여되지 않습니다. 예를 들어, 클레임 요청이 RWO이지만 사용 가능한 유일한 볼륨이 NFS PV(RWO+ROX+RWX)인 경우, RWO를 지원하므로 클레임이 NFS와 일치하게 됩니다.
항상 직접 일치가 먼저 시도됩니다. 볼륨의 모드는 사용자의 요청과 일치하거나 더 많은 모드를 포함해야 합니다. 크기는 예상되는 크기보다 크거나 같아야 합니다. 두 가지 유형의 볼륨(예: NFS 및 iSCSI)에 동일한 액세스 모드 집합이 있는 경우 둘 중 하나를 해당 모드와 클레임과 일치시킬 수 있습니다. 볼륨 유형과 특정 유형을 선택할 수 있는 순서는 없습니다.
모드가 같은 모든 볼륨이 그룹화된 다음 크기별로 정렬됩니다(최소 볼륨에서 최대 볼륨 순으로). 바인더는 모드가 일치하는 그룹을 가져오고 크기가 일치할 때까지(크기 순서로) 각 그룹에 대해 반복합니다.
다음 표에는 액세스 모드가 나열되어 있습니다.
액세스 모드 | CLI 약어 | 설명 |
---|---|---|
ReadWriteOnce |
| 볼륨은 단일 노드에서 읽기-쓰기로 마운트할 수 있습니다. |
ReadOnlyMany |
| 볼륨은 여러 노드에서 읽기 전용으로 마운트할 수 있습니다. |
ReadWriteMany |
| 볼륨은 여러 노드에서 읽기-쓰기로 마운트할 수 있습니다. |
볼륨의 AccessModes
는 볼륨의 기능에 대한 설명자입니다. 제한 조건이 적용되지 않습니다. 리소스를 잘못된 사용으로 인한 런타임 오류는 스토리지 공급자가 처리합니다.
예를 들어 Ceph는 ReadWriteOnce 액세스 모드를 제공합니다. 볼륨의 ROX 기능을 사용하려면 클레임을 읽기 전용
으로 표시해야 합니다. 공급자에서의 오류는 런타임 시 마운트 오류로 표시됩니다.
iSCSI 및 파이버 채널 볼륨은 현재 펜싱 메커니즘을 지원하지 않습니다. 볼륨을 한 번에 하나씩만 사용하는지 확인해야 합니다. 노드 드레이닝과 같은 특정 상황에서는 두 개의 노드에서 볼륨을 동시에 사용할 수 있습니다. 노드를 드레인하기 전에 먼저 이러한 볼륨을 사용하는 Pod가 삭제되었는지 확인합니다.
다음 표에는 다른 PV에서 지원하는 액세스 모드가 나열되어 있습니다.
볼륨 플러그인 | ReadWriteOnce | ReadOnlyMany | ReadWriteMany |
---|---|---|---|
AWS EBS | ✅ | - | - |
Azure File | ✅ | ✅ | ✅ |
Azure Disk | ✅ | - | - |
Ceph RBD | ✅ | ✅ | - |
파이버 채널 | ✅ | ✅ | - |
GCE 영구 디스크 | ✅ | - | - |
GlusterFS | ✅ | ✅ | ✅ |
gluster-block | ✅ | - | - |
HostPath | ✅ | - | - |
iSCSI | ✅ | ✅ | - |
NFS | ✅ | ✅ | ✅ |
OpenStack Cinder | ✅ | - | - |
VMWare vSphere | ✅ | - | - |
로컬 | ✅ | - | - |
AWS EBS, GCE 영구 디스크 또는 Openstack Cinder PV를 사용하는 Pod에 재생성 배포 전략을 사용합니다.