PersistentVolumeClaim в пространстве имен не подключается к PersistentVolume - PullRequest
0 голосов
/ 07 сентября 2018

Мой PersistentVolumeClaim не будет использовать PersistentVolume, который я для него подготовил.

У меня есть PersistentVolume в monitoring-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: monitoring-volume
  labels:
    usage: monitoring
spec:
  capacity:
    storage: 50Gi
  accessModes:
  - ReadWriteOnce
  hostPath:
    path: /data/k8data/monitoring

После того, как я сделал

kubectl apply -f monitoring-pv.yaml 

Я могу проверить, что он существует с kubectl get pv

NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS        CLAIM                                     STORAGECLASS   REASON    AGE
monitoring-volume                          50Gi       RWO            Retain           Available                                                                        5m

Мой PersistentVolumeClaim в monitoring-pvc.yaml выглядит так:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: monitoring-claim
  namespace: monitoring
spec:
  storageClassName: manual
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
  selector:
    matchLabels:
      usage: monitoring    

Когда я делаю kubectl apply -f monitoring-pvc.yaml, он создается.

Я могу посмотреть на свой новый PersistentVolumeClaim с get pvc -n monitoring, и я вижу

NAME                           STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
monitoring-claim               Pending                                                                        manual         31s

Когда я смотрю на PersistentVolume с kubectl get pv, я вижу, что он все еще доступен:

NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS        CLAIM                                     STORAGECLASS   REASON    AGE
monitoring-volume                          50Gi       RWO            Retain           Available                                                                        16m

Я ожидал, что PersistentVolume будет Bound, но это не так. Когда я использую «PersistentVolumeClaim» с таким же именем, как это, создается новый PersistentVolumeClaim, который записывается в /tmp и, следовательно, не очень постоянный.

Когда я делаю те же операции без пространства имен для моего PersistentVolumeClaim, кажется, все работает.

Я на миникубе на Ubuntu 18.04.

Что мне нужно изменить, чтобы подключить том к заявке?

1 Ответ

0 голосов
/ 07 сентября 2018

Когда я рассмотрел свой вопрос и сравнил его с рабочим решением, я заметил, что пропустил storageClassName, для которого было установлено значение manual в примере без пространства имен, которое я смог использовать.

Моя обновленная PersistentVolume теперь выглядит так:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: monitoring-volume
  labels:
    usage: monitoring
spec:
  storageClassName: manual
  capacity:
    storage: 50Gi
  accessModes:
  - ReadWriteOnce
  hostPath:
    path: /data/k8data/monitoring

Единственная разница

  storageClassName: manual

Мои предварительные выводы состоят в том, что это была глупая ошибка, которую я сделал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...