我的PVCs一直处于Pending状态。
kubectl describe pvc project-s3-pvc给出:
Name: project-s3-pvc
Namespace: default
StorageClass: gp2
Status: Pending
Volume:
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"project-s3-pvc","namespace":"default"},"spec":{"ac...
volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/aws-ebs
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
Events: <none>
Mounted By: project-s3-86ccd56868-skvv5
✔ /data/project [kubernetes-aws L|✚ 10⚑ 66kubectl get storageclass给出:
NAME PROVISIONER AGE
default kubernetes.io/aws-ebs 1h
gp2 (default) kubernetes.io/aws-ebs 1h我正在运行由Kops启动的一个节点集群:
kops create cluster --node-count 0 --zones eu-west-1a ${NAME} --master-size t2.large
# Change size from 2 to 0, since above node-count does seem to be ignored
kops edit ig --name=${NAME} nodes
kops edit cluster ${NAME}
# Add this to cluster specification
iam:
allowContainerRegistry: true
legacy: false
kops update cluster ${NAME} --yes
kubectl taint nodes --all node-role.kubernetes.io/master-node然后,我添加PVCs,例如:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: bomcheck-s3-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30GiKops版本:Version 1.11.0 (git-2c2042465)
编辑:当我尝试手动创建PV时:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-manual
spec:
accessModes:
- ReadWriteOnce
awsElasticBlockStore:
fsType: ext4
persistentVolumeReclaimPolicy: Delete
storageClassName: gp2
capacity:
storage: 30Gi我得到了:ValidationError(PersistentVolume.spec.awsElasticBlockStore): missing required field "volumeID" in io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource;
这是否意味着我需要手动在AWS中创建前面的卷?我想要通过动态配置的卷。
知道如何调试为什么不能为我的AWS提供PVC/PV吗?
发布于 2019-03-06 14:39:29
这个问题似乎与我只运行一个主节点这一事实有关。当我使用:kops create cluster --zones eu-west-1a ${NAME} --master-size t2.large启动集群时,它确实启动了1个主节点和2个节点。问题并没有出现。
我不确定问题的直接原因是什么,因为没有任何东西可以阻止一个节点拥有外部EBS卷。这可能是kops本身的错误,因为只有一个主节点是异常而不是规则。
发布于 2019-03-05 15:38:55
如您所见,没有Volume:绑定到您的PVC --这意味着自动卷配置失败,而PV没有创建,而应该使用动态配置来创建。您需要在“描述”命令的Volume:部分中看到创建的PV名称。不幸的是,没有显示问题的日志或事件。

我建议您进行故障排除,用gp2手动创建存储库,看看它是否适用于下面的yaml,然后在您的PVC yaml文件上定义storageClassName,如下所示:
storageclass-manual-gp2.yaml:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gp2-manual
parameters:
type: gp2
provisioner: kubernetes.io/aws-ebs
reclaimPolicy: Delete
volumeBindingMode: Immediate应用:
kubectl apply -f storageclass-manual-gp2.yamlpv-manual.yaml:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-manual
spec:
accessModes:
- ReadWriteOnce
awsElasticBlockStore:
fsType: ext4
capacity:
storage: 30Gi
persistentVolumeReclaimPolicy: Delete
storageClassName: gp2-manual #your new storageclass name应用:
kubectl apply -f pv-manual.yaml描述PVC:
kubectl describe pvc pvc-gp2-manual

如果没有成功,我也会建议你尝试不同的AWS EBS的存储类型。
https://stackoverflow.com/questions/55002662
复制相似问题