Как поделиться постоянным объемом StatefulSet с другим StatefulSet?

У меня есть StatefulSet-1, работающий с 3 репликами, и каждый модуль записывает журналы на свой постоянный том, например pv1, pv2, pv3 (достигается с помощью volumeClaimTemplates: )

У меня есть еще один StatefulSet-2, работающий с 3 репликами, и я хочу, чтобы каждый POD доступа StatefulSet-2 уже создал тома StatefulSet-1, т.е. pv1, pv2 и pv3 для обработки отдельных журналов, записанных каждым модулем StatefulSet-1.

Таким образом, pv1, pv2, pv3 должны использоваться как StatefulSet1, так и StatefulSet2, поскольку pv1, pv2, pv3 созданы как часть развертывания StatefulSet-1! pv1, pv2, pv3, естественно, будут иметь имя POD StatefulSet-1, которое подходит для StatefulSet-2.

Как настроить StatefulSet2 для достижения описанного выше сценария? пожалуйста помоги!

Спасибо и С уважением, Судхир


comment
Может ли следующий помочь ?   -  person dany L    schedule 13.05.2020
comment
нет @danyL в приведенной выше ссылке, мы не можем связать ПВХ с другим именем.   -  person sudhir tataraju    schedule 14.05.2020
comment
Не могли бы вы предоставить свои файлы конфигурации (YAML / JSON) statefulsets, pvc, pv? Сколько узлов вы используете в своем кластере? Какую версию GKE вы используете? Вы создали свой собственный класс хранения или используете по умолчанию, предоставленный GKE? Не могли бы вы поделиться выводом kubectl get pv,pvc?   -  person PjoterS    schedule 14.05.2020
comment
@PjoterS Я не создавал никаких подходов, так что нечего делиться, но да, хранилище будет GCP для всего GKE.   -  person sudhir tataraju    schedule 14.05.2020


Ответы (1)


Это не сработает. 1. PV, поддерживаемые дисками GCE, находятся в режиме readWriteOnce, поэтому 1 pvc на модуль. 2. Вы получаете модули с фиксированным состоянием с PVC, используя шаблоны PVC, которые полагаются на динамическое выделение томов для создания соответствующих PV и PVC.

Если вам нужны эти модули для совместного использования PVC, лучше всего использовать PV readWriteMany, например, поддерживаемый NFS. Вам также нужно будет создать поды statefulSet-2 вручную, чтобы они монтировали соответствующие PVC. Вы можете добиться этого, создав отдельное развертывание модуля для каждого из них.

Еще кое-что, о чем следует подумать, можете ли вы запустить контейнеры каждого statefulSet вместе в одних и тех же модулях? Обычно это не рекомендуется, но это позволит им обоим использовать одни и те же тома (если они не используют одни и те же порты).

person Patrick W    schedule 16.05.2020