连接到Kubernetes中的持久卷?
我正在将堆栈转换为k8s。数据库需要持久存储 我使用了连接到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:
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>"