连接到Kubernetes中的持久卷?

连接到Kubernetes中的持久卷?,kubernetes,kubernetes-pvc,Kubernetes,Kubernetes Pvc,我正在将堆栈转换为k8s。数据库需要持久存储 我使用了kubectl create-f pv.yaml pv.yaml(根据@white11的答案进行编辑): kind: PersistentVolume apiVersion: v1 metadata: name: pv-volume labels: type: local spec: storageClassName: manual capacity: storage: 10Gi accessModes:

我正在将堆栈转换为k8s。数据库需要持久存储

我使用了
kubectl create-f pv.yaml

pv.yaml(根据@white11的答案进行编辑):

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
然后我创建了一个

当我查看k8s仪表板时,我看到错误:

PersistentVolumeClaim未绑定:“mongo-persistent-storage-mongo-0” (重复2次)

在持久卷选项卡中,我看到了看起来正常的卷:

我很难想出下一步如何成功实现批量索赔

编辑#2 我进入GUI上的PVC页面,手动向声明中添加了一个卷(基于@whites11的反馈)。我可以看到PVC已随卷更新,但仍在等待

编辑#3 意识到自从@whites11提出更改后,pod中的原始错误消息已经更改。现在是“persistentvolume”pvvolume“notfound(重复2次)”,我想我只需要找出我在哪里写了pvvolume,而不是pvvolume。(或者可能是
-
被自动解析出来了


您需要手动将PV绑定到PVC,方法是在PV规范中添加相应的
claimRef
部分

实际上,使用您喜欢的方法编辑PV,并添加类似以下内容的部分:

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

这里有一个关于此过程如何工作的解释:

谢谢,我假设如果我没有使用名称空间,PV和服务都将位于默认名称空间?PV没有名称空间,如果您不指定服务,服务将处于默认状态。或者我仍然很难弄清楚。我根据您的回答在我的问题中更新了我的PV.yaml。它是否在好的,对吗?我仍然得到相同的结果。PVC仍然无人认领吗?是的,PVC在一个页面上显示为
挂起
,并且状态集
PersistentVolumeClaim上的错误仍然没有绑定:“mongo-persistent-storage-mongo-0”(重复2次)
volumeName: "<your volume name>"