我们正在尝试使用 Grafana 和 Prometheus Operator 监控 K8S。大多数指标都按预期工作,我能够看到具有正确值的仪表板,我们的系统包含 10 个节点,总共 500 个 pod。现在,当我重新启动 Prometheus 时,所有数据都被删除了。我希望它保存两周。
我的问题是,如何定义 Prometheus 卷以将数据保留两周或 100GB 数据库。
我发现了以下内容(我们使用Prometheus运算符):
https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/storage.md
这是 Prometheus Operator 的配置
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
这是普罗米修斯的配置
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
https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/storage.md
我们有文件系统(nfs),上面的存储配置不起作用,我的问题是:
- 我在这里想念的是如何在下面的部分中配置
volume
,server
, ?我应该在哪里找到这个?我怎样才能参考它?我应该以某种方式创建它,还是只提供路径?path
nfs
/path/to/prom/db
我们在系统中配置了 NFS。
- 如何将其与 Prometheus 结合?
pvc
由于我对and没有深入的了解pv
,因此我创建了以下内容(不确定这些值,我的服务器是什么以及我应该提供什么路径)...
server: myServer
path: "/path/to/prom/db"
我应该放什么以及如何让我的 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"
nfs
除了我可以用于我的用例之外,是否还有其他持久性卷?请指教如何。