3

我正在将堆栈转换为 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

我进入 GUI 上的 PVC 页面并手动向声明中添加了一个卷(基于来自 @whites11 的反馈)。我可以看到 PVC 已随卷更新,但仍处于待处理状态。

在此处输入图像描述

编辑#3

意识到自从做出@whites11 建议的更改后,pod 中的原始错误消息已更改。现在是“找不到持久卷“pvvolume”(重复2次)”,我想我只需要弄清楚我在哪里写了pvvolume,而不是pv-volume。(或者它可能是在-某个地方自动解析出来的?

在此处输入图像描述

4

1 回答 1

4

claimRef您需要通过在 PV 规范中添加适当的部分来手动将您的 PV 绑定到您的 PVC 。

在实践中,使用您喜欢的方法编辑您的 PV,并添加类似于此的部分:

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

spec然后,您需要通过在其部分中添加以下内容来编辑您的 PVC 以绑定正确的卷:

volumeName: "<your volume name>"

这里解释了这个过程是如何工作的:https ://docs.openshift.org/latest/dev_guide/persistent_volumes.html#persistent-volumes-volumes-and-claim-prebinding

于 2018-05-04T19:59:36.220 回答