у pod есть несвязанные PersistentVolumeClaims - PullRequest
0 голосов
/ 05 октября 2018

Когда я по какой-то причине нажимаю на мои развертывания, я получаю сообщение об ошибке на своих модулях:

у модуля есть несвязанные PersistentVolumeClaims

Вот мой YAML ниже:

Это выполняется локально, а не в любом облачном решении.

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 ()
  creationTimestamp: null
  labels:
    io.kompose.service: ckan
  name: ckan
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: ckan
    spec:
      containers:
        image: slckan/docker_ckan
        name: ckan
        ports:
        - containerPort: 5000
        resources: {}
        volumeMounts:
            - name: ckan-home
              mountPath: /usr/lib/ckan/
              subPath: ckan
      volumes:
      - name: ckan-home
        persistentVolumeClaim:
          claimName: ckan-pv-home-claim
      restartPolicy: Always
status: {}

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: ckan-pv-home-claim
  labels:
    io.kompose.service: ckan
spec:
  storageClassName: ckan-home-sc
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
  volumeMode: Filesystem
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: ckan-home-sc
provisioner: kubernetes.io/no-provisioner
mountOptions:
  - dir_mode=0755
  - file_mode=0755
  - uid=1000
  - gid=1000

1 Ответ

0 голосов
/ 05 октября 2018

Вы должны определить PersistentVolume , предоставляющий дисковое пространство для использования PersistentVolumeClaim .

При использовании storageClass Kubernetes собирается включить «Подготовка динамических томов» , которая не работает с локальной файловой системой.


Чтобы решить вашу проблему:

  • Укажите PersistentVolume выполнение ограничений заявки (размер> = 100Mi)
  • удаление строки storageClass из PersistentVolumeClaim
  • удаление StorageClass из вашего кластера

Как эти части играют вместе?

При создании описания состояния развертывания обычно известно, какой вид (количество, скорость, ...) хранилища, которое потребуется приложению.
Чтобы сделать развертывание универсальным, вы хотели бы избежать жесткой зависимости от хранилища.Объемная абстракция Kubernetes позволяет вам предоставлять и использовать хранилище стандартным способом.

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

PersistentVolume предлагает экземпляры томов всего кластера, готовые к использованию ("bound").Один PersistentVolume будет связан с одной заявкой.Но поскольку несколько экземпляров этого утверждения могут выполняться на нескольких узлах, этот том может быть доступным несколькими узлами.

A PersistentVolume без StorageClass считается static .

«Динамическое предоставление тома» вместе с с a StorageClass позволяет кластеруПредоставление PersistentVolumes по требованию.Для того чтобы эта работа работала, данный поставщик хранилища должен поддерживать предоставление - это позволяет кластеру запрашивать предоставление "нового" PersistentVolume при неудовлетворенном PersistentVolumeClaim всплывает.

...