将Prometheus运算符与DB卷一起用于k8s

Jho*_*n D 17 amazon-web-services google-cloud-platform kubernetes prometheus prometheus-operator

我们正在尝试使用Grafana和Prometheus Operator监视K8S,
大多数指标都按预期工作,并且我能够看到具有正确值的仪表板,我们的系统包含10个节点,总共500个Pod,现在当我重新启动Prometheus时,所有数据已被删除(我希望将其存储两周)我的问题是,如何定义Prometheus卷以将数据保留两周或100GB DB。我发现以下内容(我们使用Prometheus运算符)

https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/storage.md

这是Prometheus运算符的配置

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  labels:
    k8s-app: prometheus-operator
  name: prometheus-operator
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: prometheus-operator
  template:
    metadata:
      labels:
        k8s-app: prometheus-operator
    spec:
      containers:
      - args:
        - --kubelet-service=kube-system/kubelet
        - --logtostderr=true
        - --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1
        - --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.29.0
        image: quay.io/coreos/prometheus-operator:v0.29.0
        name: prometheus-operator
        ports:
        - containerPort: 8080
          name: http
Run Code Online (Sandbox Code Playgroud)

这是Prometheus的配置

    apiVersion: monitoring.coreos.com/v1
    kind: Prometheus
    metadata:
      name: prometheus
      namespace: monitoring
      labels: 
        prometheus: prometheus
    spec:
      replica: 2
      serviceAccountName: prometheus
      serviceMonitorNamespaceSelector: {}
      serviceMonitorSelector:
        matchLabels:
          role: observeable
      tolerations:
      - key: "WorkGroup"
        operator: "Equal"
        value: "operator"
        effect: "NoSchedule"
      - key: "WorkGroup"
        operator: "Equal"
        value: "operator"
        effect: "NoExecute"
      resources:
        limits:
          cpu: 8000m
          memory: 24000Mi
        requests:
          cpu: 6000m
          memory: 6000Mi
     storage:
       volumeClaimTemplate:
         spec:
        selector:
          matchLabels:
            app: prometheus
        resources:
          requests:
            storage: 100Gi

Run Code Online (Sandbox Code Playgroud)

https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/storage.md

我们有文件系统(nfs),并且上面的存储配置不起作用,我的问题是:

  1. 我怀念这里是如何配置的volumeserverpath中下以下的nfs部分

我在哪里可以找到“ / path / to / prom / db”?我该如何参考呢?我应该以某种方式创建它,还是只提供路径。我们在系统中配置了nfs

  1. 如何结合到普罗米修斯

由于我没有足够的知识,pvc因此pv我创建了以下内容(不确定要考虑那些值,我的服务器是什么以及应该提供什么路径...

server: myServer
path: "/path/to/prom/db"
Run Code Online (Sandbox Code Playgroud)

我应该在那放什么以及如何使我的Prometheus(即我在问题中提供的配置)使用它

apiVersion: v1
kind: PersistentVolume
metadata:
  name: prometheus
  namespace: monitoring
  labels:
    app: prometheus
    prometheus: prometheus
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteOnce # required
  nfs:
    server: myServer
    path: "/path/to/prom/db"
Run Code Online (Sandbox Code Playgroud)

如果nfs我的用例没有使用其他持久性卷,请咨询如何

hk'*_*hk' 1

您必须使用持久卷和卷声明(PV 和 PVC)来保存数据。您可以参考“ https://kubernetes.io/docs/concepts/storage/persistent-volumes/ ”仔细查看上面url中的配置、回收策略、访问模式、存储类型。