Kubernetes无法为pod装载卷
我正在尝试设置一个卷,用于k8s上的Mongo 我使用Kubernetes无法为pod装载卷,kubernetes,kubernetes-pvc,Kubernetes,Kubernetes Pvc,我正在尝试设置一个卷,用于k8s上的Mongo 我使用kubectl create-f pv.yaml创建卷 pv.yaml: kind: PersistentVolume apiVersion: v1 metadata: name: pvvolume labels: type: local spec: storageClassName: standard capacity: storage: 10Gi accessModes: - ReadWrite
kubectl create-f pv.yaml
创建卷
pv.yaml:
kind: PersistentVolume
apiVersion: v1
metadata:
name: pvvolume
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/nfs"
claimRef:
kind: PersistentVolumeClaim
namespace: default
name: pvvolume
然后,我将具有pod的pod部署到该卷,使其成为pvc
我创建的卷似乎没有问题,我希望它只使用主机节点的存储
当我尝试部署时,出现以下错误:
无法为pod装载卷
“mongo-0_默认值(2735bc71-5201-11e8-804f-02dffec55fd2)”:超时
等待卷连接/装载pod时过期
“默认”/“mongo-0”。未连接/未安装的列表
卷=[mongo持久存储]
在设置我的持久卷时有没有遗漏一个步骤?持久卷只是声明kubernetes群集中某些存储的可用性。在这个阶段没有绑定到你的pod 由于pod是通过
状态集部署的
,因此集群中应该有一个或多个PersistentVolumeClaims
,它们是连接pod和PersistentVolume的对象
为了手动将PV与PVC绑定,您需要通过在规范部分添加以下内容来编辑PVC:
volumeName: "<your persistent volume name>"
volumeName:“
这里有一个关于这个过程如何运作的解释:我的案例是一个边缘案例,我怀疑你是否能达到它。然而,我会描述它,因为它花费了我很多白发——也许它会拯救你的头发 尽管PV和PVC被装箱,我还是出现了同样的错误。Pod一直处于
ContainerCreating
stare状态,但是kubectl get events
抛出了这个问题中提出的错误
$kubectl获得pv
名称容量访问模式回收策略状态声明存储类原因期限
污水db 5Ti RWO保留束缚全球污水/污水db nfs 3h40m
$kubectl获得pvc-n全球污水
名称状态卷容量访问模式STORAGECLASS年龄
污水db结合污水db 5Ti RWO nfs 3h39m
重新启动服务器后,发现32GiB RAM物理内存中的一个已损坏。删除内存修复了该问题 已设置
volumeName
,但PVC仍处于挂起状态。PVC上的存储大小是否小于或等于10Gb?根据有状态集的yaml,它应为2Gi。当我查看k8s UI时,它会显示容量-
,以确保尝试并获得PVC的yaml和checkGreat!k8s快乐之旅