2016-06-06 2 views
3

Il semble que les kubernetes supportent trois types de mode d'accès pour le volume persistant: ReadWriteOnce, ReadOnlyMany, ReadWriteMany. Je suis vraiment curieux de connaître la stratégie du planificateur pour un pod qui utilise le volume en mode ReadWriteOnce. Par exemple, j'ai créé un rc qui a pod num = 2, je suppose que les deux pods seront programmés dans le même hôte car ils utilisent le volume qui a readwriteonce en mode? Je veux vraiment connaître le code source de cette partie.kubernetes volume persistant accessmode

Répondre

0

Si un pod monte un volume avec le mode d'accès ReadWriteOnce, aucun autre pod ne peut le monter. Dans GCE (Google Compute Enginge), les seuls modes autorisés sont ReadWriteOnce et ReadOnlyMany. Donc, soit un pod monte le volume ReadWrite, soit un ou plusieurs pods montent le volume ReadOnlyMany.

Le planificateur (code here) ne permettra pas à un pod de planifier s'il utilise un volume GCE qui a déjà été monté en lecture-écriture.

(documentation de référence pour ceux qui ne comprenaient pas la question: persistent volume access modes)

+0

Merci pour votre réponse! il semble que dans func, isVolumeConflict, seul le mode de GCEPD est vérifié, et si j'utilise le mode readwriteonce pour un autre type de stockage persistant comme aws ou nfs? existe-t-il un algorithme pour tester de tels conflits dans le planificateur? – wangzhe

+0

Il semble que le plaisir estVolumeConflic ne supporte que GCEPD, AWSElasticBlockStore, vérification RBD actuellement? – wangzhe

+0

"le volume peut être monté en lecture-écriture par un seul nœud" Je pense que ReadWriteOnce signifie que ce volume peut être monté sur un seul nœud k8s. J'ai essayé monté le même volume ReadWriteOnce sur le même noeud par deux pods. Et il fonctionne – Pao