У меня есть диск (точнее, диск Azure) с большим количеством предварительно обработанных данных, которые я могу выставить в Kubernetes как PVC с именем my-Claim. На следующем этапе я связываю его с развертыванием, как показано выше. Проблема с этим подходом в том, что я не могу масштабировать развертывание более чем на один модуль.
Здесь вы используете PersistentVolumeClaim
с режимом доступа ReadWriteOnce
( это единственный вариант для дисков Azure, см. ссылку на режим доступа)
Как я могу масштабировать эту установку? Я попытался продублировать диск и создать его как второй PVC с другим именем. Это сработало, но теперь я не вижу способа сообщить развертыванию Kubernetes, что каждый модуль должен монтировать один из этих двух PVC.
Здесь похоже, что вам нужен том с режимом доступа ReadOnlyMany
- поэтому вам нужно подумать о системе хранения, поддерживающей этот режим доступа.
Я попытался продублировать диск и создать его как второй PVC с другим именем. Это сработало, но теперь я не вижу способа сообщить развертыванию Kubernetes, что каждый модуль должен монтировать один из этих двух PVC.
Это не работает для развертывания, поскольку template
для каждого модуля идентичен . Но вы можете сделать это с помощью StatefulSet, объявив свой PVC с помощью volumeClaimTemplates
- затем PVC для каждого модуля имеет уникальную, хорошо известную идентичность.
Пример части StatefulSet
:
volumeClaimTemplates:
- metadata:
name: my-pvc
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "my-storage-class"
resources:
requests:
storage: 1Gi
Затем, если у вас есть две копии вашего StatefulSet, они предоставят вам PVC с именами my-pvc-0
и my-pvc-1
, где номер называется порядковым. volumeClaimTemplate
создает новый PVC, только если он не существует, поэтому, если вы создали PVC с правильными именами, будут использоваться существующие.
Альтернативные решения для хранения
Альтернативным хранилищем Azure Disk является Azure Files. Файлы Azure поддерживают режим доступа ReadWriteOnce
, ReadOnlyMany
и ReadWriteMany
. См. Динамическое создание и использование постоянного тома с файлами Azure в Служба Azure Kubernetes (AKS).
Также могут быть другие альтернативы хранения, которые лучше подходят для вашего приложения.
person
Jonas
schedule
20.11.2020