广告连播具有未绑定的PersistentVolumeClaims

时间:2018-10-05 15:28:42

标签: kubernetes persistent-storage

由于某种原因,当我进行部署时,我的吊舱出现了错误:

  

pod具有未绑定的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 :(得分:28)

您必须定义 PersistentVolume ,以提供供 PersistentVolumeClaim 占用的光盘空间。

使用storageClass时,Kubernetes将启用“动态卷配置” ,该功能不适用于本地文件系统。


要解决您的问题:

  • 提供 PersistentVolume 来满足声明的约束(大小> = 100Mi)
  • PersistentVolumeClaim
  • 中删除storageClass
  • 从集群中删除 StorageClass

这些作品如何一起玩?

在创建部署状态描述时,通常知道应用程序需要哪种类型的存储(量,速度,...)。
为了使部署具有通用性,您希望避免对存储的严格依赖。 Kubernetes的卷抽象可让您以标准化的方式提供和使用存储。

PersistentVolumeClaim 用于在部署应用程序的同时提供存储限制。

PersistentVolume 提供了群集范围内的卷实例,这些实例可以被使用(“ bound”)。一个PersistentVolume将绑定到一个声明。但是由于该声明的多个实例可能在多个节点上运行,因此该卷可能由多个节点accessed

没有存储类的 PersistentVolume 被认为是静态

"Dynamic Volume Provisioning"以及一个 StorageClass 一起,允许群集按需配置PersistentVolume。 为了使该工作正常进行,给定的存储提供者必须支持provisioning-这使群集可以在 PersistentVolumeClaim 不满意时请求提供“新的” PersistentVolume 。 >弹出。