Phi*_*ide 3 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:
- ReadWriteOnce
hostPath:
path: "/nfs"
claimRef:
kind: PersistentVolumeClaim
namespace: default
name: pvvolume
Run Code Online (Sandbox Code Playgroud)
然后我将这个 StatefulSet部署到这个卷,它有 pod 制作 PVC。
我的卷似乎创建没有问题,我希望它只使用主机节点的存储。
当我尝试部署时,出现以下错误:
无法为 pod“mongo-0_default(2735bc71-5201-11e8-804f-02dffec55fd2)”挂载卷:等待卷挂载/挂载 pod“default”/“mongo-0”超时超时。未附加/未挂载的卷列表=[mongo-persistent-storage]
在设置持久卷时错过了一步?
持久卷只是 kubernetes 集群中某些存储可用性的声明。在此阶段没有与您的 pod 绑定。
由于您的 pod 是通过 部署的StatefulSet,因此您的集群中应该有一个或多个PersistentVolumeClaims将 pod 与 PersistentVolume 连接的对象。
为了手动将 PV 与 PVC 绑定,您需要通过在其规范部分添加以下内容来编辑您的 PVC:
volumeName: "<your persistent volume name>"
Run Code Online (Sandbox Code Playgroud)
这里解释一下这个过程是如何工作的:https : //docs.openshift.org/latest/dev_guide/persistent_volumes.html#persistent-volumes-volumes-and-claim-prebinding
我的情况是一个边缘情况,我怀疑你能否达到它。然而,我会描述它,因为它让我失去了很多白发——也许它会拯救你的头发。
尽管PV和PVC被分类,但我还是发生了同样的错误。Pod一直在ContainerCreating盯着,却kubectl get events抛出了这个问题中所问的错误。
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
sewage-db 5Ti RWO Retain Bound global-sewage/sewage-db nfs 3h40m
$kubectl get pvc -n global-sewage
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
sewage-db Bound sewage-db 5Ti RWO nfs 3h39m
Run Code Online (Sandbox Code Playgroud)
重新启动服务器后,发现 32GiB RAM 物理内存之一已损坏。删除内存解决了问题。
| 归档时间: |
|
| 查看次数: |
30158 次 |
| 最近记录: |