我创建了一个30 GiB大小的EBS卷。制作了两个清单文件:
在pv-ebs.yml:
apiVersion: v1
kind: PersistentVolume
metadata:
name: ebs
spec:
capacity:
storage: 30Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
awsElasticBlockStore:
fsType: ext4
# The EBS volume ID
volumeID: vol-111222333aaabbbccc
在pvc-ebs.yml
中kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: prometheus-prometheus-alertmanager
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
selector:
matchLabels:
release: "stable"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: prometheus-prometheus-server
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
selector:
matchLabels:
release: "stable"
使用helm
安装它:helm install --name prometheus stable/prometheus
。
但是在k8s仪表板上,得到了消息:
prometheus-prometheus-alertmanager-3740839786-np7kb
No nodes are available that match all of the following predicates:: NoVolumeZoneConflict (2).
prometheus-prometheus-server-3176041168-m3w2g
PersistentVolumeClaim is not bound: "prometheus-prometheus-server" (repeated 2 times)
我的方法有什么问题吗?
答案 0 :(得分:2)
创建EBS时,它在特定的AZ中进行配置,并且不能跨区域安装。如果您在同一区域中没有可用于安排pod的节点,则它将无法启动。
另一件事是,通过正确配置的kube集群,您根本不需要自己创建PV,只需创建PVC并让dynamic provisioning执行此操作。
答案 1 :(得分:0)
如果您使用KOP安装了群集,则会自动为您创建PV。只需等待几分钟,然后刷新屏幕即可。错误将消失。
如果您以另一种方式设置群集,则需要在AWS ec2 create-volume中创建卷,然后创建PV,然后在helm运行时,它将声明这些PV。