Kubernetes 无法获取Pod以绑定minikube中的本地存储&引用;节点没有';“找不到可用的永久卷”&引用;“等待创建第一个消费者”;

Kubernetes 无法获取Pod以绑定minikube中的本地存储&引用;节点没有';“找不到可用的永久卷”&引用;“等待创建第一个消费者”;,kubernetes,minikube,Kubernetes,Minikube,在minikube上配置Kubernetes部署时遇到一些问题,请使用本地存储。我正在尝试设置一个referencedb实例,该实例将把一个目录从minikube VM装载到referencedb Pod。我的设置如下 存储 因此,我定义了一个storageClass的local storage类型,如在线教程中所述。然后,我创建一个PersistentVolume,它要求底层主机上的/mnt/data路径提供10GB的存储空间。我在minikube虚拟机上创建了此目录 $ minikube s

在minikube上配置Kubernetes部署时遇到一些问题,请使用
本地存储
。我正在尝试设置一个
referencedb
实例,该实例将把一个目录从minikube VM装载到referencedb Pod。我的设置如下

存储 因此,我定义了一个
storageClass
local storage
类型,如在线教程中所述。然后,我创建一个
PersistentVolume
,它要求底层主机上的
/mnt/data
路径提供10GB的存储空间。我在minikube虚拟机上创建了此目录

$ minikube ssh
$ ls /mnt
data  sda1
PersistentVolume
具有
local storage
的存储类,并从与'minikube'
主机名的
nodeAffinity
部分匹配的节点请求它

然后,我创建一个
PersistentVolumeClaim
,请求类型
本地存储
并请求5GB

这里一切都很好,对吗?这是kubectl的输出

$ kubectl get pv,pvc,storageClass
NAME                            CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS    REASON   AGE
persistentvolume/rethinkdb-pv   10Gi       RWO            Delete           Available           local-storage            9m33s

NAME                                       STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS    AGE
persistentvolumeclaim/rethinkdb-pv-claim   Pending                                      local-storage   7m51s

NAME                                             PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
storageclass.storage.k8s.io/local-storage        kubernetes.io/no-provisioner   Delete          WaitForFirstConsumer   false                  9m33s
storageclass.storage.k8s.io/standard (default)   k8s.io/minikube-hostpath       Delete          Immediate              false                  24h
重新部署数据库 我现在尝试使用标准数据库容器的单个副本进行
部署

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    name: database
  name: rethinkdb
spec:
  progressDeadlineSeconds: 2147483647
  replicas: 1
  selector:
    matchLabels:
      service: rethinkdb
  template:
    metadata:
      creationTimestamp: null
      labels:
        service: rethinkdb
    spec:
      containers:
      - name: rethinkdb
        image: rethinkdb:latest
        volumeMounts:
        - mountPath: /data
          name: rethinkdb-data
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - name: rethinkdb-data
        persistentVolumeClaim:
          claimName: rethinkdb-pv-claim
这会要求重新思考DB的单个副本,并尝试将重新思考DB pv声明作为名称重新思考DB data装载到容器中,然后尝试将其装载到容器中的
/data

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    name: database
  name: rethinkdb
spec:
  progressDeadlineSeconds: 2147483647
  replicas: 1
  selector:
    matchLabels:
      service: rethinkdb
  template:
    metadata:
      creationTimestamp: null
      labels:
        service: rethinkdb
    spec:
      containers:
      - name: rethinkdb
        image: rethinkdb:latest
        volumeMounts:
        - mountPath: /data
          name: rethinkdb-data
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - name: rethinkdb-data
        persistentVolumeClaim:
          claimName: rethinkdb-pv-claim
不过,这就是我们所看到的

Name:           rethinkdb-6dbf4ccdb-64gk5
Namespace:      development
Priority:       0
Node:           <none>
Labels:         pod-template-hash=6dbf4ccdb
                service=rethinkdb
Annotations:    <none>
Status:         Pending
IP:
IPs:            <none>
Controlled By:  ReplicaSet/rethinkdb-6dbf4ccdb
Containers:
  rethinkdb:
    Image:        rethinkdb:latest
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:
      /data from rethinkdb-data (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-d5ncp (ro)
Conditions:
  Type           Status
  PodScheduled   False
Volumes:
  rethinkdb-data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  rethinkdb-pv-claim
    ReadOnly:   false
  default-token-d5ncp:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-d5ncp
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  73s (x7 over 8m38s)  default-scheduler  0/1 nodes are available: 1 node(s) didn't find available persistent volumes to bind.
名称:REJECTDB-6dbf4ccdb-64gk5
名称空间:开发
优先级:0
节点:
标签:pod模板哈希=6dbf4ccdb
服务=数据库
注释:
状态:待定
知识产权:
IPs:
控制人:ReplicaSet/DB-6dbf4ccdb
容器:
数据库:
图片:重新思考数据库:最新
端口:
主机端口:
环境:
挂载:
/来自数据库数据(rw)的数据
/来自default-token-d5ncp(ro)的var/run/secrets/kubernetes.io/serviceCount
条件:
类型状态
播客计划错误
卷数:
数据库数据:
类型:PersistentVolumeClaim(对同一命名空间中PersistentVolumeClaim的引用)
索赔名称:索赔
只读:false
default-token-d5ncp:
类型:Secret(由Secret填充的卷)
SecretName:default-token-d5ncp
可选:false
QoS等级:最佳努力
节点选择器:
容差:node.kubernetes.io/未就绪:不执行300秒
node.kubernetes.io/不可访问:不执行300秒
活动:
从消息中键入原因年龄
----     ------            ----                 ----               -------
警告FailedScheduling 73s(8m38s上的x7)默认计划程序0/1节点可用:1个节点未找到可用的永久卷进行绑定。
“1个节点未找到要绑定的可用永久卷”。我不确定这是怎么回事,因为PVC是可用的

$ kubectl describe pvc
Name:          rethinkdb-pv-claim
Namespace:     development
StorageClass:  local-storage
Status:        Pending
Volume:
Labels:        <none>
Annotations:   Finalizers:  [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode:    Filesystem
Mounted By:    rethinkdb-6dbf4ccdb-64gk5
Events:
  Type    Reason                Age                 From                         Message
  ----    ------                ----                ----                         -------
  Normal  WaitForFirstConsumer  11s (x42 over 10m)  persistentvolume-controller  waiting for first consumer to be created before binding
$kubectl描述pvc
名称:Db pv索赔
名称空间:开发
StorageClass:本地存储
状态:待定
卷:
标签:
注释:终结器:[kubernetes.io/pvc-protection]
容量:
访问模式:
VolumeMode:文件系统
安装人:DB-6dbf4ccdb-64gk5
活动:
从消息中键入原因年龄
----    ------                ----                ----                         -------
正常WaitForFirstConsumer 11s(10米以上x42)persistentvolume控制器在绑定前等待创建第一个consumer
我认为一个暗示是,该领域


Pod的
节点
是否意味着它没有分配给节点?

我认为问题在于我的一个是
ReadWriteOnce
,另一个是
ReadWriteMany
,然后,在运行
minikube mount/tmp/data:/mnt/data
时,我很难获得正确的权限,所以我刚刚摆脱了将它装载到底层文件系统的过程,现在它可以正常工作了我想问题是,我的一个是
ReadWriteOnce
,另一个是
ReadWriteMany
,然后,在运行
minikube mount/tmp/data:/mnt/data
时,我很难获得正确的权限,所以我刚刚摆脱了将它装载到底层文件系统的过程,现在它可以工作了