您现在的位置是:电脑教程 >>正文
Prometheus 的新战场:精准监控阿里云 AKS Serverless 集群
电脑教程9人已围观
简介引言我们紧接着上篇的PromQL,接着往上盖大楼。这篇我们的主角是 Prometheus-Operator 的Prometheus,它的重要性就不言而喻了。Prometheus-Operator 是 ...
引言
我们紧接着上篇的战场 PromQL,接着往上盖大楼。精准监控集群这篇我们的阿里主角是 Prometheus-Operator 的 Prometheus,它的战场重要性就不言而喻了 。
Prometheus-Operator 是精准监控集群 Kubernetes 生态中广泛应用的监控组件 ,能够简化 Prometheus 的阿里部署和管理 。然而,战场随着云原生技术的精准监控集群发展 ,建站模板监控阿里云 AKS Serverless 集群成为了一个新的阿里挑战 。这些服务本质上是战场无服务器的 ,无法通过传统的精准监控集群节点指标采集方式进行监控。因此,阿里我们需要对 Prometheus 自身进行调整,战场以更好地适配阿里云 AKS Serverless 场景。精准监控集群
本文将探讨如何通过重塑 Prometheus ,阿里使其高效监控阿里云 AKS Serverless 环境。
开始
基本设计
prometheus-operator 的控制链路其实非常简单,我们只需要知道以下基本原理就行:
• PodMonitor 和 ServiceMonitor 最终是用于生成 Prometheus 配置文件中的亿华云 srape_config;
• Prometheus 可以使用一个 HTTP Post 请求 /-/reload 来在运行时重新加载配置文件使新的 scrape_config 生效;
以上文为例,prometheus-operator 的控制链路是:
Prometheusprometheus-operator 监听 Promtheus 资源,当有 Add Event 发生时,prometheus-operator 将以 StatefulSet 的形式部署 Prometheus 实例 。每一个 Prometheus Pod 里有两个容器:
• prometheus 容器:主容器 ,使用 /etc/prometheus/config_out/prometheus.env.yaml 作为主要的配置文件:
复制... - --config.file=/etc/prometheus/config_out/prometheus.env.yaml ...1.2.3.• prometheus-config-reloader 容器 :辅助容器 ,用于监听上游配置文件的变化并调用主容器的 reload 接口重新加载配置;
当我们观察这个 Pod 的 volumes 时候,有两个 volume 可以重点关注 :
复制... volumes: - name: config secret: defaultMode: 420 secretName: prom-agent-prometheus-agent - name: config-out emptyDir: medium: Memory ...1.2.3.4.5.6.7.8.9.10.• config-out :EmptyDir 类型的源码下载卷,主要是用于 prometheus 容器与 prometheus-config-reloader 容器的数据共享 ,同时挂载于两个容器的 /etc/prometheus/config_out/ 中;
• config:底层是一个 Secret,这个 config 将被挂载为 prometheus-config-reloader 容器中的 /etc/prometheus/config/prometheus.yaml.gz 。 prometheus-config-reloader 会监听这个文件的变化 ,一旦有变化 ,将基于新的文件内容生成新的配置文件 /etc/prometheus/config_out/prometheus.env.yaml 。 prometheus-config-reloader 将调用主容器的服务器租用 reload API 来重新加载配置文件;
PodMonitor / ServiceMonitor• prometheus-operator 监听 PodMonitor 和 ServiceMonitor 的变化 。一旦对应资源发生了变化 ,prometheus-operator 将基于新的资源生成新的配置文件并将其更新到对应的 Secrets 中。由于对应 Secrets 以文件形式挂载于 prometheus-config-reloader 容器中并被监听文件变化 ,所以当底层 Secrets 发生了变化,kubelet 将分钟级传播变化到对应容器内部 ,从而触发 prometheus-config-reloader 容器内的监听逻辑。
• Secrets 内部是一个 Base64 之后的 gz 格式的 prometheus.yaml,云计算比如我们可以用下面这种方式解码出 prometheus.yaml :
复制kubectl get secrets prometheus-k8s -o jsonpath="{ .data.prometheus\.yaml\.gz}" | base64 -d > prometheus.yaml.gz gzip -d prometheus.yaml.gz1.2.3.我们这些了解完成之后,对于我们后面的改进可谓是……语文不好,有点丢人,想不出来成语了 。
Prometheus CRD YAML 优化
我们先从 Prometheus 的持久化数据说起 :
复制storage: volumeClaimTemplate: spec: storageClassName: alicloud-nas-subpath accessModes: - ReadWriteOnce resources: requests: storage: 15Gi1.2.3.4.5.6.7.8.9.本地存储优化;
启用 WAL 压缩;
复制wal_compression: true1.减少数据保留时间;
复制retention: 7d1.还有我们资源的优化 ,如果你的集群应用很多 ,资源太少 ,就会导致 pod 异常 ,这边你自己调整:
复制resources: limits: cpu: "3" memory: 3Gi requests: cpu: 1000m memory: 1024Mi1.2.3.4.5.6.7.完整文件;
复制apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: labels: app.kubernetes.io/component: prometheus app.kubernetes.io/instance: k8s app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/version: 3.0.1 name: k8s namespace: monitoring spec: alerting: alertmanagers: - apiVersion: v2 name: alertmanager-main namespace: monitoring port: web enableFeatures: [] storage: volumeClaimTemplate: spec: storageClassName: alicloud-nas-subpath accessModes: - ReadWriteOnce resources: requests: storage: 15Gi externalLabels: { } image: quay.io/prometheus/prometheus:v3.0.1 nodeSelector: kubernetes.io/os: linux podMetadata: labels: app.kubernetes.io/component: prometheus app.kubernetes.io/instance: k8s app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/version: 3.0.1 podMonitorNamespaceSelector: { } # matchExpressions: # - key: kubernetes.io/metadata.name # operator: In # values: # - monitoring # - lobby podMonitorSelector: { } probeNamespaceSelector: { } probeSelector: { } replicas: 2 resources: limits: cpu: "5" memory: 5Gi requests: cpu: 2000m memory: 2048Mi ruleNamespaceSelector: { } ruleSelector: { } scrapeConfigNamespaceSelector: { } scrapeConfigSelector: { } securityContext: fsGroup: 2000 runAsNonRoot: true runAsUser: 1000 serviceAccountName: prometheus-k8s serviceMonitorSelector: { } serviceMonitorNamespaceSelector: { } # matchExpressions: # - key: kubernetes.io/metadata.name # operator: In # values: # - monitoring # - lobby version: 3.0.1 retention: 15d wal_compression: true1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.扩展
因为 Prometheus 这边优化的还挺多的,香港云服务器所以我们这一篇就先讲到这里 ,后面我们会更多的剖析相关内容。
• Prometheus Agent
• PrometheusRule
结语
我们 Prometheus 基础的优化和改进就结束了 ,相比较前几篇 ,这篇的东西不是很多。其实还有很多的东西都需要讲,我会把它们给分开 。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“信息技术视野”。http://www.bziz.cn/html/423a499572.html
相关文章
OpenAI的ChatGPT能生成恶意软件?如何应对AI系统调教的黑客?
电脑教程最近一些分析师发出警告,OpenAI开发的聊天机器人ChatGPT可以生成恶意软件。AI生成的代码可能会给网络安全造成严重威胁,人类编写的防护软件无法抵御。据Tech Monitor报道,不久前Ope ...
【电脑教程】
阅读更多通过8512镜头展现细腻之美(捕捉事物的精妙细节,让影像更加生动鲜活)
电脑教程近年来,随着摄影技术的不断发展,越来越多的摄影爱好者开始关注镜头的选择。而8512镜头作为一款具有出色表现力的镜头,以其细腻的画面质感和出色的焦外效果,成为许多摄影师追逐的对象。本文将从不同角度探讨8 ...
【电脑教程】
阅读更多探索三菱重工空调的卓越性能和优势(领先技术与节能环保的完美结合)
电脑教程作为家电领域的知名品牌,三菱重工空调以其卓越的性能和优势享誉全球。本文将深入探索三菱重工空调的技术创新、节能环保等方面的特点,以帮助读者更好地了解这一领先品牌。技术创新——引领空调行业发展的潮流三菱重 ...
【电脑教程】
阅读更多