Подключение к постоянному тому в Kubernetes?

Я в процессе конвертации стека в k8s. База данных требует постоянного хранилища.

Я использовал kubectl create -f pv.yaml

pv.yaml (с изменениями на основе ответа @ whites11):

kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/nfs"
  claimRef:
    kind: PersistentVolumeClaim
    namespace: default
    name: mongo-persisted-storage

Затем я создаю пример набора реплик mongo.

Когда я смотрю на панель управления k8s, я вижу ошибку:

PersistentVolumeClaim не привязан: «mongo-persistent-storage-mongo-0» (повторяется 2 раза)

введите здесь описание изображения

На вкладке постоянной громкости я вижу объем, который выглядит нормально:

введите здесь описание изображения

У меня возникли проблемы с определением следующего шага для успешного выполнения требования тома.

Редактировать # 2

Я зашел на страницу PVC в графическом интерфейсе пользователя и вручную добавил том к заявке (на основе обратной связи от @ whites11). Я вижу, что объем PVC был обновлен, но он все еще находится на рассмотрении.

введите здесь описание изображения

Редактировать # 3

Понимая, что после внесения изменения, предложенного @ whites11, исходное сообщение об ошибке в модуле изменилось. Теперь это "постоянный том" pvvolume "not found (повторяется 2 раза)", думаю, мне просто нужно выяснить, где я написал pvvolume, а не pv-volume. (или это может быть - где-то был автоматически проанализирован?

введите здесь описание изображения


person Philip Kirkbride    schedule 04.05.2018    source источник


Ответы (1)


Вам необходимо вручную привязать ваш PV к вашему PVC, добавив соответствующий раздел claimRef в спецификацию PV.

На практике отредактируйте PV с помощью метода, который вы предпочитаете, и добавьте раздел, подобный этому:

claimRef:
  name: mongo-persisted-storag
  namespace: <your PVC namespace>

Затем вам нужно отредактировать свой PVC, чтобы привязать правильный том, добавив следующее в его раздел spec:

volumeName: "<your volume name>"

Вот объяснение того, как работает этот процесс: https://docs.openshift.org/latest/dev_guide/persistent_volumes.html#persistent-volumes-volumes-and-claim-prebinding

person whites11    schedule 04.05.2018
comment
спасибо, я предполагаю, что если я не использую пространство имен, как PV, так и сервисы будут по умолчанию? - person Philip Kirkbride; 05.05.2018
comment
PV не имеет пространства имен, сервис будет по умолчанию, если вы его не укажете. - person whites11; 05.05.2018
comment
Извините, я все еще не могу понять это. Я обновил свой pv.yaml в своем вопросе на основе вашего ответа. Выглядит правильно? Я все еще получаю те же результаты. - person Philip Kirkbride; 05.05.2018
comment
ПВХ все еще невостребован? - person whites11; 05.05.2018
comment
Да, PVC отображается как pending на одной странице и по-прежнему эта ошибка в StatefulSet PersistentVolumeClaim is not bound: "mongo-persistent-storage-mongo-0" (repeated 2 times) - person Philip Kirkbride; 05.05.2018
comment
Да, извините, попробуйте также добавить volumeName в свой PVC (ответ обновлен) - person whites11; 06.05.2018
comment
нет проблем, это сложно диагностировать без системы, которая находится перед вами. Я добавил еще одну правку к своему вопросу. - person Philip Kirkbride; 06.05.2018
comment
Я не знаю почему, но, похоже, возникла проблема с использованием - в имени моего тома. Я сделал то же самое, но с pvvolume вместо pv-volume, и мне удалось обойти ошибку. У меня появилась новая ошибка, но она выходит за рамки вопроса. Спасибо. - person Philip Kirkbride; 06.05.2018