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