挂载K8永久卷失败

时间:2018-07-05 22:39:17

标签: kubernetes persistence openstack

我正在尝试通过以下方式将PV安装到吊舱中:

update();

广告连播会正确创建并使用PVC声明而不会出现问题。但是,当我弯入吊舱以查看挂载时,大小为50Gb,这是附加存储的大小,而不是我指定的卷。

    {
  "kind": "PersistentVolume",
  "apiVersion": "v1",
  "metadata": {
    "name": "pv",
    "labels": {
      "type": "ssd1-zone1"
    }
  },
  "spec": {
    "capacity": {
      "storage": "150Gi"
    },
    "hostPath": {
      "path": "/mnt/data"
    },
    "accessModes": [
      "ReadWriteOnce"
    ],
    "persistentVolumeReclaimPolicy": "Retain",
    "storageClassName": "zone1"
  }
}

{
  "kind": "PersistentVolumeClaim",
  "apiVersion": "v1",
  "metadata": {
    "name": "pvc",
    "namespace": "clever"
  },
  "spec": {
    "accessModes": [
      "ReadWriteOnce"
    ],
    "resources": {
      "requests": {
        "storage": "150Gi"
      }
    },
    "volumeName": "pv",
    "storageClassName": "zone1"
  }
}
kind: Pod
apiVersion: v1
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: pv
      persistentVolumeClaim:
       claimName: pvc
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: pv

PVC似乎是正确的:

root@task-pv-pod:/# df -aTh | grep "/html"
/dev/vda1      xfs       50G   13G   38G  26% /usr/share/nginx/html

我已经多次删除并重新创建了卷和声明,并尝试对我的Pod使用不同的图像。什么都没用。

1 个答案:

答案 0 :(得分:2)

您的/ mnt / data似乎位于根分区上,因此它提供的可用空间与rootfs中的任何其他文件夹相同。

关于PV / PVC的已请求和已定义容量的问题是,这些是用于匹配或提示动态预配器的唯一值。如果使用hostPath和手动创建的PV,则可以定义300TB,并且它将绑定,即使hostPath的实际文件夹具有5G,因为未验证设备的实际大小(这很合理,因为您仅信任其中提供的数据) PV)。

因此,正如我所说,请检查您的/ mnt / data是否仅是rootfs的一部分。如果问题仍然存在,请在运行Pod的节点上提供mount命令的输出。