我正在将堆栈转换为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
然后我创建了一个example mongo replica set。
当我查看我的k8s仪表板时,我看到错误:
PersistentVolumeClaim没有绑定:" mongo-persistent-storage-mongo-0" (重复2次)
在持久性卷标签中,我看到看起来正常的卷:
我无法确定下一步,以便成功完成音量声明。
我进入了GUI上的PVC页面并手动添加了一个卷(基于@whites11的反馈)。我可以看到PVC已经更新了卷,但它仍处于未决状态。
意识到自从@whites11建议更改后,pod中的原始错误消息已更改。它现在是" persistentvolume" pvvolume"没找到(重复2次)",我想我只需要找出我写pvvolume的地方,而不是pv-volume。 (或者可能是-
在某个地方被自动解析了?
答案 0 :(得分:4)
您需要手动将PV绑定到PVC,方法是在PV规范中添加适当的claimRef:
name: mongo-persisted-storag
namespace: <your PVC namespace>
部分。
在实践中,使用您喜欢的方法编辑PV,并添加与此类似的部分:
spec
通过在volumeName: "<your volume name>"
部分添加以下内容,您需要编辑PVC以绑定正确的卷:
driver.SwitchTo().Frame("content").SwitchTo().Frame("detailsDisplay");
var element = driver.FindElement(By.XPath("//*[@id=\"divToolbar\"]/div[1]/table/tbody/tr/td[1]"));
以下是有关此过程如何运作的说明:https://docs.openshift.org/latest/dev_guide/persistent_volumes.html#persistent-volumes-volumes-and-claim-prebinding