prometheus-operator 包含 DaemonSet,用于将节点导出器部署到集群中的每个节点。它有效,但我们缺少一些有用的标签信息,例如:
# kubectl get nodes --all-namespaces --show-labels=true
NAME STATUS ROLES AGE VERSION LABELS
ip-1 Ready master 2d v1.10.12 ...,kubernetes.io/role=master,...
=
ip-2 Ready node 2d v1.10.12 ...,kubernetes.io/role=node,...
Run Code Online (Sandbox Code Playgroud)
所以我们在标签中有有用的信息——ip-1是master,ip-2是worker等。
但此信息在节点导出器目标上丢失,因为节点标签不会传播到 daemonset 节点导出器 pod。
例如,在普罗米修斯中,我无法按节点的类型对节点进行分组。
也许有办法实现这一目标?谢谢!
我已经通过 Helm Chart 配置了 Prometheus https://github.com/helm/charts/tree/master/stable/prometheus-operator 我需要动态更新 Prometheus 规则和配置(热重载),但由于某种原因,它是不工作。
我尝试编辑 Prometheus 规则的 cofigmap,但一旦保存更改,更改就会恢复。我尝试删除 Prometheus 配置映射,它会立即重新生成。我还尝试删除 Prometheus pod 本身,但它也会立即重新创建。
如果自定义控制器和 CRD 是其背后的原因(即拒绝更改),那么执行此操作的正确方法是什么?
我使用的是官方的稳定/ prometheus-operator图表,确实使用头盔部署了Prometheus。
到目前为止,它运行良好,除了烦人的CPUThrottlingHigh警报正在触发许多Pod(包括自己的Prometheus的config-reloaders容器)。该警报当前正在讨论中,我现在暂时使其通知静音。
Alertmanager具有静音功能,但它是基于Web的:
静默是一种简单的方法,可以在给定时间内简单地使警报静音。在Alertmanager的Web界面中配置沉默。
有没有一种方法可以CPUThrottlingHigh使配置文件中的通知静音?
kubernetes prometheus prometheus-operator prometheus-alertmanager
我正在使用prometheus-operator掌舵图。我希望普罗米修斯服务器中的数据保持不变。但是打开重启prometheus StatefulSet,数据就消失了。检查yaml关联对象StatefulSet和Pod对象的定义时,没有PersistVolumeClaim.
values.yaml根据https://github.com/helm/charts/tree/master/stable/prometheus 中的文档,我尝试了以下更改:
prometheus:
server:
persistentVolume:
enabled: true
Run Code Online (Sandbox Code Playgroud)
但这对最终结果没有影响(即使在重新安装图表并重新安装StatefulSet.
我希望StatefulSet支持 prometheus 服务器具有持久的卷声明,以便在重新启动时保留数据。
我在 openstack 中部署了一个 k8s 集群。我已经为它部署了 Prometheus operator 来监控集群。但是我收到了所有节点的 Kubernetes 代理停机警报。
我想知道 Prometheus operator 如何抓取 Kubernetes 代理的基础知识?还想知道需要做哪些配置来修复它。
我可以看到 kube 代理正在 10249 端口的所有节点中运行。
错误 :
Get http://10.8.10.11:10249/metrics: dial tcp 10.8.10.11:10249: connect: connection refused
Run Code Online (Sandbox Code Playgroud)
HELM 值配置
kubeProxy:
enabled: true
## If your kube proxy is not deployed as a pod, specify IPs it can be found on
##
endpoints: []
# - 10.141.4.22
# - 10.141.4.23
# - 10.141.4.24
service:
port: 10249
targetPort: 10249
# selector:
# k8s-app: kube-proxy
serviceMonitor:
## Scrape interval. …Run Code Online (Sandbox Code Playgroud) 我想在服务监视器中像键值映射一样设置 targetLabels,以便它出现在 Prometheus 指标中。我尝试在服务监视器中重新标记,但没有用。
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: example-application
labels:
team: backend-team
spec:
selector:
matchLabels:
app: example-application
endpoints:
- port: backend
relabelings:
- sourceLabels: [__name__]
regex: (.*)
targetLabel: teamname
replacement: "backend-team"
action: replace
Run Code Online (Sandbox Code Playgroud)
我还发现有 targetLabels。但不知道如何使用它。TargetLabels 将 Kubernetes Service 上的标签传输到目标上。
我还读到服务监视器中可能有白名单标签。请让我知道如何执行此操作以及哪种方法是正确的选项..
我正在使用 kube-prometheus-stack 来监控 kubernetes 集群。该舵图有一些默认的 Grafana 视图。除了默认的仪表板之外,我想添加更多仪表板。
实现
apiVersion: v1
data:
grafana-dummy-dashboard.json: |-
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 15,
"links": [],
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "-- Grafana --",
"fieldConfig": …Run Code Online (Sandbox Code Playgroud) 我们已经使用它配置了 Grafanauser和admin角色Grafana.ini,效果很好。
现在我们想为用户提供一些查看特定仪表板的权限,例如根据某些配置(权限),用户 X 可以看到 5 个仪表板,用户 Y 可以看到 8 个仪表板。
我们能够在 Grafana UI 中保留此配置,但如果 pod (K8S) 失败,详细信息将被删除,我们将使用最新的prom helm。
我的问题是,即使 pod 重新启动,我们应该如何正确存储这些数据?
https://grafana.com/docs/grafana/latest/permissions/dashboard-folder-permissions/
https://github.com/grafana/helm-charts
https://github.com/grafana/helm-charts/blob/main/charts/grafana/values.yaml#L253
任何解决方案/方向都会有所帮助,因为我相信 grafana 以某种方式存储这些数据,但不确定在哪里......
我发现这个链接是关于用户在数据库等上的存储 https://grafana.com/docs/grafana/latest/administration/configuration/#database
不确定缺少什么,因为数据应该保存在 k8s 卷中......如果有任何其他解决方案或解决方法,请告诉我。
azure grafana kubernetes persistent-volumes prometheus-operator
我重新启动了 Prometheus pod,现在 Prometheus pod 正在崩溃。在日志中发现这个错误:
level=error ts=2021-06-09T09:27:29.066Z caller=main.go:758 err="opening storage failed: block dir: \"/prometheus/01F6J0P4KBBWVJD2M8B1PE7C5E\": open /prometheus/01F6J0P4KBBWVJD2M8B1PE7C5E/meta.json: no such file or directory"
Run Code Online (Sandbox Code Playgroud)
注意到该01F6J0P4KBBWVJD2M8B1PE7C5E文件夹中只有 chunks 文件夹。
知道为什么会发生这种情况吗?有没有办法解决这个问题?
kubernetes prometheus kubernetes-helm prometheus-operator kubernetes-pod
Prometheus-operator 似乎生成promethues-operated仅指向端口 9090 的 Prometheus 实例的服务。
这项服务有什么作用?我们定义其他服务来指向我们的 Prometheus 集群。
取消服务会产生什么影响prometheus-operated?
kubernetes prometheus prometheus-operator kubernetes-service prometheus-alertmanager