PersistentVolumeClaim 未绑定:“nfs-pv-provisioning-demo”

2024-01-02

我正在仅使用一个节点建立一个 kubernetes 实验室并学习设置 kubernetes nfs。 我从以下链接逐步遵循 kubernetes nfs 示例:https://github.com/kubernetes/examples/tree/master/staging/volumes/nfs https://github.com/kubernetes/examples/tree/master/staging/volumes/nfs

尝试第一部分,NFS 服务器部分,执行了 3 个命令:

$ kubectl create -f examples/volumes/nfs/provisioner/nfs-server-gce-pv.yaml
$ kubectl create -f examples/volumes/nfs/nfs-server-rc.yaml
$ kubectl create -f examples/volumes/nfs/nfs-server-service.yaml

我遇到问题,我看到以下事件:

PersistentVolumeClaim is not bound: "nfs-pv-provisioning-demo"

所做的研究:

https://github.com/kubernetes/kubernetes/issues/43120 https://github.com/kubernetes/kubernetes/issues/43120

https://github.com/kubernetes/examples/pull/30 https://github.com/kubernetes/examples/pull/30

上面的这些链接都不能帮助我解决我遇到的问题。 我已经确定它使用的是图像 0.8。

Image:        gcr.io/google_containers/volume-nfs:0.8

有谁知道这条消息是什么意思? 非常感谢有关如何解决此问题的线索和指导。 谢谢。

$ docker version

Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:41:23 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:49 2017
 OS/Arch:      linux/amd64
 Experimental: false


$ kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.3", GitCommit:"f0efb3cb883751c5ffdbe6d515f3cb4fbe7b7acd", GitTreeState:"clean", BuildDate:"2017-11-08T18:39:33Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.3", GitCommit:"f0efb3cb883751c5ffdbe6d515f3cb4fbe7b7acd", GitTreeState:"clean", BuildDate:"2017-11-08T18:27:48Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}


$ kubectl get nodes
NAME          STATUS    ROLES     AGE       VERSION
lab-kube-06   Ready     master    2m        v1.8.3


$ kubectl describe nodes lab-kube-06
Name:               lab-kube-06
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/hostname=lab-kube-06
                    node-role.kubernetes.io/master=
Annotations:        node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
Taints:             <none>
CreationTimestamp:  Thu, 16 Nov 2017 16:51:28 +0000
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  OutOfDisk        False   Thu, 16 Nov 2017 17:30:36 +0000   Thu, 16 Nov 2017 16:51:28 +0000   KubeletHasSufficientDisk     kubelet has sufficient disk space available
  MemoryPressure   False   Thu, 16 Nov 2017 17:30:36 +0000   Thu, 16 Nov 2017 16:51:28 +0000   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Thu, 16 Nov 2017 17:30:36 +0000   Thu, 16 Nov 2017 16:51:28 +0000   KubeletHasNoDiskPressure     kubelet has no disk pressure
  Ready            True    Thu, 16 Nov 2017 17:30:36 +0000   Thu, 16 Nov 2017 16:51:28 +0000   KubeletReady                 kubelet is posting ready status
Addresses:
  InternalIP:  10.0.0.6
  Hostname:    lab-kube-06
Capacity:
 cpu:     2
 memory:  8159076Ki
 pods:    110
Allocatable:
 cpu:     2
 memory:  8056676Ki
 pods:    110
System Info:
 Machine ID:                 e198b57826ab4704a6526baea5fa1d06
 System UUID:                05EF54CC-E8C8-874B-A708-BBC7BC140FF2
 Boot ID:                    3d64ad16-5603-42e9-bd34-84f6069ded5f
 Kernel Version:             3.10.0-693.el7.x86_64
 OS Image:                   Red Hat Enterprise Linux Server 7.4 (Maipo)
 Operating System:           linux
 Architecture:               amd64
 Container Runtime Version:  docker://Unknown
 Kubelet Version:            v1.8.3
 Kube-Proxy Version:         v1.8.3
ExternalID:                  lab-kube-06
Non-terminated Pods:         (7 in total)
  Namespace                  Name                                   CPU Requests  CPU Limits  Memory Requests  Memory Limits
  ---------                  ----                                   ------------  ----------  ---------------  -------------
  kube-system                etcd-lab-kube-06                       0 (0%)        0 (0%)      0 (0%)           0 (0%)
  kube-system                kube-apiserver-lab-kube-06             250m (12%)    0 (0%)      0 (0%)           0 (0%)
  kube-system                kube-controller-manager-lab-kube-06    200m (10%)    0 (0%)      0 (0%)           0 (0%)
  kube-system                kube-dns-545bc4bfd4-gmdvn              260m (13%)    0 (0%)      110Mi (1%)       170Mi (2%)
  kube-system                kube-proxy-68w8k                       0 (0%)        0 (0%)      0 (0%)           0 (0%)
  kube-system                kube-scheduler-lab-kube-06             100m (5%)     0 (0%)      0 (0%)           0 (0%)
  kube-system                weave-net-7zlbg                        20m (1%)      0 (0%)      0 (0%)           0 (0%)
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  CPU Requests  CPU Limits  Memory Requests  Memory Limits
  ------------  ----------  ---------------  -------------
  830m (41%)    0 (0%)      110Mi (1%)       170Mi (2%)
Events:
  Type    Reason                   Age                From                     Message
  ----    ------                   ----               ----                     -------
  Normal  Starting                 39m                kubelet, lab-kube-06     Starting kubelet.
  Normal  NodeAllocatableEnforced  39m                kubelet, lab-kube-06     Updated Node Allocatable limit across pods
  Normal  NodeHasSufficientDisk    39m (x8 over 39m)  kubelet, lab-kube-06     Node lab-kube-06 status is now: NodeHasSufficientDisk
  Normal  NodeHasSufficientMemory  39m (x8 over 39m)  kubelet, lab-kube-06     Node lab-kube-06 status is now: NodeHasSufficientMemory
  Normal  NodeHasNoDiskPressure    39m (x7 over 39m)  kubelet, lab-kube-06     Node lab-kube-06 status is now: NodeHasNoDiskPressure
  Normal  Starting                 38m                kube-proxy, lab-kube-06  Starting kube-proxy.



$ kubectl get pvc
NAME                       STATUS    VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
nfs-pv-provisioning-demo   Pending                                                      14s


$ kubectl get events
LAST SEEN   FIRST SEEN   COUNT     NAME                                        KIND                    SUBOBJECT   TYPE      REASON                    SOURCE                        MESSAGE
18m         18m          1         lab-kube-06.14f79f093119829a                Node                                Normal    Starting                  kubelet, lab-kube-06          Starting kubelet.
18m         18m          8         lab-kube-06.14f79f0931d0eb6e                Node                                Normal    NodeHasSufficientDisk     kubelet, lab-kube-06          Node lab-kube-06 status is now: NodeHasSufficientDisk
18m         18m          8         lab-kube-06.14f79f0931d1253e                Node                                Normal    NodeHasSufficientMemory   kubelet, lab-kube-06          Node lab-kube-06 status is now: NodeHasSufficientMemory
18m         18m          7         lab-kube-06.14f79f0931d131be                Node                                Normal    NodeHasNoDiskPressure     kubelet, lab-kube-06          Node lab-kube-06 status is now: NodeHasNoDiskPressure
18m         18m          1         lab-kube-06.14f79f0932f3f1b0                Node                                Normal    NodeAllocatableEnforced   kubelet, lab-kube-06          Updated Node Allocatable limit across pods
18m         18m          1         lab-kube-06.14f79f122a32282d                Node                                Normal    RegisteredNode            controllermanager             Node lab-kube-06 event: Registered Node lab-kube-06 in Controller
17m         17m          1         lab-kube-06.14f79f1cdfc4c3b1                Node                                Normal    Starting                  kube-proxy, lab-kube-06       Starting kube-proxy.
17m         17m          1         lab-kube-06.14f79f1d94ef1c17                Node                                Normal    RegisteredNode            controllermanager             Node lab-kube-06 event: Registered Node lab-kube-06 in Controller
14m         14m          1         lab-kube-06.14f79f4b91cf73b3                Node                                Normal    RegisteredNode            controllermanager             Node lab-kube-06 event: Registered Node lab-kube-06 in Controller
58s         11m          42        nfs-pv-provisioning-demo.14f79f766cf887f2   PersistentVolumeClaim               Normal    FailedBinding             persistentvolume-controller   no persistent volumes available for this claim and no storage class is set
14s         4m           20        nfs-server-kq44h.14f79fd21b9db5f9           Pod                                 Warning   FailedScheduling          default-scheduler             PersistentVolumeClaim is not bound: "nfs-pv-provisioning-demo"
4m          4m           1         nfs-server.14f79fd21b946027                 ReplicationController               Normal    SuccessfulCreate          replication-controller        Created pod: nfs-server-kq44h
                                       2m

$ kubectl get pods
NAME               READY     STATUS    RESTARTS   AGE
nfs-server-kq44h   0/1       Pending   0          16s


$ kubectl get pods

NAME               READY     STATUS    RESTARTS   AGE
nfs-server-kq44h   0/1       Pending   0          26s


$ kubectl get rc

NAME         DESIRED   CURRENT   READY     AGE
nfs-server   1         1         0         40s


$ kubectl describe pods nfs-server-kq44h

Name:           nfs-server-kq44h
Namespace:      default
Node:           <none>
Labels:         role=nfs-server
Annotations:    kubernetes.io/created-

by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicationController","namespace":"default","name":"nfs-server","uid":"5653eb53-caf0-11e7-ac02-000d3a04eb...
Status:         Pending
IP:
Created By:     ReplicationController/nfs-server
Controlled By:  ReplicationController/nfs-server
Containers:
  nfs-server:
    Image:        gcr.io/google_containers/volume-nfs:0.8
    Ports:        2049/TCP, 20048/TCP, 111/TCP
    Environment:  <none>
    Mounts:
      /exports from mypvc (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-plgv5 (ro)
Conditions:
  Type           Status
  PodScheduled   False
Volumes:
  mypvc:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  nfs-pv-provisioning-demo
    ReadOnly:   false
  default-token-plgv5:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-plgv5
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.alpha.kubernetes.io/notReady:NoExecute for 300s
                 node.alpha.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
  Warning  FailedScheduling  39s (x22 over 5m)  default-scheduler  PersistentVolumeClaim is not bound: "nfs-pv-provisioning-demo"

Each 持久数量声明(PVC) 需要持久量它可以绑定到的(PV)。在您的示例中,您仅创建了 PVC,但没有创建卷本身。

PV 可以手动创建,也可以使用音量等级与供应商。看一下的文档静态和动态配置 https://kubernetes.io/docs/concepts/storage/persistent-volumes/#provisioning了解更多信息):

PV 的配置有两种方式:静态或动态。

Static

集群管理员创建多个PV。它们携带可供集群用户使用的实际存储的详细信息。 [...]

Dynamic

当管理员创建的静态PV与用户的静态PV都不匹配时PersistentVolumeClaim,集群可能会尝试动态地专门为PVC提供一个卷。该规定是基于StorageClasses:PVC 必须请求一个类,并且管理员必须创建并配置该类才能进行动态配置。

在您的示例中,您正在创建一个存储类配置程序(在examples/volumes/nfs/provisioner/nfs-server-gce-pv.yaml)似乎是为在 Google 云中使用而量身定制的(它可能无法在您的实验室设置中实际创建 PV)。

您可以自己手动创建持久卷。创建 PV 后,PVC 应自动将自身绑定到卷,并且您的 pod 应启动。下面是使用节点的本地文件系统作为卷的持久卷的示例(这对于单节点测试设置来说可能没问题):

apiVersion: v1
kind: PersistentVolume
metadata:
  name: someVolume
spec:
  capacity:
    storage: 200Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /path/on/host

对于生产设置,您可能需要选择不同容量类型 https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes at hostPath,尽管根据您所处的环境(云或自托管/裸机),您可用的卷类型会有很大差异。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PersistentVolumeClaim 未绑定:“nfs-pv-provisioning-demo” 的相关文章

随机推荐

  • 在表格视图中组合静态和原型内容

    有没有办法使用故事板将静态表格视图单元格 静态内容 与动态表格视图单元格 原型内容 结合起来 我建议您将表格视为动态表格 但在顶部包含您始终想要的单元格 在故事板中 放置一个UITableViewController并让它使用动态表 添加任
  • 使用 Robolectric 和 Mockito 测试 CursorLoader

    鉴于我正在开发一个简单的 ListFragment 在本例中 它从 MediaStore 读取艺术家列表 但稍后也会从不同的源读取数据 如下所示 EFragment public class ArtistsFragment extends
  • 如何将 SQL 查询返回值绑定到 psql 变量?

    背景 我正在写我的第一篇文章pgTAP http pgtap orgPL pgSQL 函数的测试用例 并从小处开始使用 psql 测试脚本 没有问题 但我遇到了一个小烦恼psql变量 http www postgresql org docs
  • ARM 的加载和存储字节和半字指令如何工作?签名与未签名有何作用?

    我刚刚开始学习 ARM 但无法理解加载和存储指令的确切作用 加载说明 ldrsb ldrb ldrsh ldrh ldr 店铺说明 strb strh str 有符号或无符号 加载半字 是什么意思 或者 加载字节 有符号或无符号 有符号和无
  • 2018 年底起的目标 API 级别要求

    我不知道这是否是询问以下问题的正确地方 我在 google play 开发者控制台上读到 2018 年下半年 Play 将要求新应用程序和应用程序 更新针对最新的 Android API 级别 这将需要 2018 年 8 月推出新应用程序
  • 使用 JPA 进行更新时如何排除实体字段

    有没有办法使字段在更新操作时不持久 但在使用 JPA Hibernate 4 创建操作时持久 我用这种方式尝试过 Transient Id Column name USER NAME nullable false length 75 pri
  • 在用户控件中处理画笔的更好方法是什么

    在 Paint 事件中使用新画笔是否是更好的方法 即 protected override void OnPaint PaintEventArgs e e Graphics SmoothingMode SmoothingMode AntiA
  • 替换整行会导致替换文本重复出现

    简单的问题 为什么 x replace y 产生 yy x replace y 相当于 Regex replace x y 结果yy您看到的内容基于其工作原理 根据 MSDN 在指定的输入字符串中 替换所有字符串匹配一个 具有指定替换字符串
  • 与平台无关的文件锁定?

    我正在进行一项计算量非常大的科学工作 时不时地会得出结果 这项工作基本上就是多次模拟同一件事 因此它被分配到使用不同操作系统的多台计算机上 我想将所有这些实例的输出定向到同一个文件 因为所有计算机都可以通过 NFS Samba 查看相同的文
  • 在 R 中使用 fromJSON 时处理 NaN

    我正在尝试使用 R 中的 fromJSON 函数来读取给我的 JSON 文件 但是该文件有NaN在其中 我无法正确读取它 这是我得到的错误 Error in feed push parser buf lexical error invali
  • 支持 19 位 Visa 和 Discover 卡验证的正则表达式模式 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 目前我正在使用以下正则表达式 但它们不支持 Visa 和 Discover 的 19 位卡 请帮忙 visaCardPattern 4 0
  • 如何从python 3中的url读取html

    我查看了以前的类似问题 却变得更加困惑 在 python 3 4 中 我想根据给定的 url 将 html 页面作为字符串读取 在 Perl 中 我使用 LWP Simple 使用 get 来完成此操作 matplotlib 1 3 1 示
  • 如何在 Swift 中清空一个对象

    如何在 Swift 中将 nil 赋给对象 如果直接分配 我会收到错误 来自苹果文档 https developer apple com library ios documentation Swift Conceptual Swift Pr
  • Python:在 voronoi 图上绘制 scipy 图

    我正在尝试在 scipy 图之上进行绘图 使用 此解决方案 Python 在 scipy 图之上绘图 沃罗诺伊 https stackoverflow com questions 45997002 python plot on top of
  • Spring AOP - @Pointcut:@Test 方法的 @Before 建议不起作用

    我正在与 Spring框架4 3 2 方面J 1 8 9 JUnit Gradle 该项目基于多模块 In src main java main 我有一些 Aspect课程和他们按照预期的方式工作 我可以通过运行时和测试来确认 现在我需要
  • 如何将两个字符的字符串@“\n”转换为实际的字符'\n'? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我只是想为脚本语言创建一些解释器 我现在遇到的一件事是如何解释两个字符长的字符 与 转换成实际的字符 例如 您不能仅在单个字符中键入内容 n
  • 安全/加密的 QR 码 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有可以生成加密二维码的应用程序 我没有很多关于加密二维码的文献 我们正在寻求实现一些功能 客户可以向我们发送加密信息 然后我们在我们的
  • Abp.io异常:激活Castle.Proxies.ProcessesServiceProxy时抛出异常

    我还是个新人Abp io http Abp io 并且我收到以下异常 我按照 Abp io 文档中的说明进行操作 请您帮助我知道我错过了什么 2019 10 10 14 01 46 644 03 00 ERR An exception wa
  • Html.ValidationMessageFor 文本颜色

    可能是一个简单的问题 但我似乎找不到答案 使用 MVC 2 我有一系列 Html ValidationFor 控件 我想为文本分配一个 CSS 类 但似乎无法做到 如果我尝试与文本框相同的方法 因为我会收到错误 因为它需要一个字符串 当我在
  • PersistentVolumeClaim 未绑定:“nfs-pv-provisioning-demo”

    我正在仅使用一个节点建立一个 kubernetes 实验室并学习设置 kubernetes nfs 我从以下链接逐步遵循 kubernetes nfs 示例 https github com kubernetes examples tree