2016-06-06 6 views
3

kubernetes는 영구 볼륨에 대한 세 가지 종류의 액세스 모드 인 ReadWriteOnce, ReadOnlyMany, ReadWriteMany를 지원하는 것으로 보입니다. ReadWriteOnce 모드 볼륨을 사용하는 pod에 대한 스케줄러 전략에 대해 궁금합니다. 예를 들어, pod num = 2 인 rc를 만들었습니다. 두 개의 포드가 readwriteonce 모드가있는 볼륨을 사용하기 때문에 동일한 호스트에 예약됩니다. 정말이 부분의 소스 코드를 알고 싶습니다.kubernetes 영구 볼륨 accessmode

답변

0

포드가 ReadWriteOnce 액세스 모드로 볼륨을 마운트하는 경우 다른 포드로 마운트 할 수 없습니다. GCE (Google Compute Enginge)에서는 허용되는 모드는 ReadWriteOnce 및 ReadOnlyMany뿐입니다. 따라서 하나의 포드가 볼륨 ReadWrite를 마운트하거나 하나 이상의 포드가 볼륨 ReadOnlyMany를 마운트합니다.

스케줄러 (코드 here)는 이미 읽기/쓰기 탑재 된 GCE 볼륨을 사용하는 경우 포드 일정을 허용하지 않습니다. 답변에 대한

+0

감사 :

(persistent volume access modes 질문을 이해하지 않은 사람들을 위해 문서 참조)! 'isVolumeConflict' func에서 GCEPD의 모드 만 검사하는 것 같습니다. aws 나 nfs와 같은 다른 유형의 영구 저장소에 대해 readwriteonce 모드를 사용하면 어떻게 될까요? 스케줄러에서 이러한 충돌을 테스트하기위한 알고리즘이 있습니까? – wangzhe

+0

isVolumeConflic fun는 현재 GCEPD, AWSElasticBlockStore, RBD 검사 만 지원합니다. – wangzhe

+0

"볼륨을 단일 노드에서 읽기 - 쓰기로 마운트 할 수 있습니다."ReadWriteOnce는이 볼륨을 하나의 k8s 노드에만 마운트 할 수 있음을 의미한다고 생각합니다. 두 개의 창으로 동일한 노드에 동일한 ReadWriteOnce 볼륨을 마운트하려했습니다. 그리고 그것은 작동합니다. – Pao

관련 문제