如何在AWS EBS中使用Kubernetes中的Prometheus?

时间:2017-11-28 08:46:00

标签: kubernetes storage prometheus amazon-ebs kubernetes-helm

我创建了一个30 GiB大小的EBS卷。制作了两个清单文件:

  • PV-ebs.yml
  • ,PVC-ebs.yml

在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)

我的方法有什么问题吗?

enter image description here

持续卷

enter image description here

2 个答案:

答案 0 :(得分:2)

创建EBS时,它在特定的AZ中进行配置,并且不能跨区域安装。如果您在同一区域中没有可用于安排pod的节点,则它将无法启动。

另一件事是,通过正确配置的kube集群,您根本不需要自己创建PV,只需创建PVC并让dynamic provisioning执行此操作。

答案 1 :(得分:0)

如果您使用KOP安装了群集,则会自动为您创建PV。只需等待几分钟,然后刷新屏幕即可。错误将消失。

如果您以另一种方式设置群集,则需要在AWS ec2 create-volume中创建卷,然后创建PV,然后在helm运行时,它将声明这些PV。