如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Prometheus Operator 提供基于 Kubernetes 的原生部署和 Prometheus 及相关监控组件的管理。本项目旨在简化和自动化 Kubernetes 集群中基于 Prometheus 的监控栈配置。
Prometheus Operator 包含但不限于以下特性:
Kubernetes 自定义资源:使用 Kubernetes 自定义资源部署和管理 Prometheus、Alertmanager 及相关组件。 Kubernetes 自定义资源:使用 Kubernetes 自定义资源部署和管理 Prometheus、Alertmanager 及相关组件。
简化的部署配置:通过原生 Kubernetes 资源配置 Prometheus 的基本要素,如版本、持久化、保留策略和副本数。 简化的部署配置:通过原生 Kubernetes 资源配置 Prometheus 的基本要素,如版本、持久化、保留策略和副本数。
Prometheus 目标配置:基于熟悉的 Kubernetes 标签查询自动生成监控目标配置;无需学习 Prometheus 特定的配置语言。 Prometheus 目标配置:基于熟悉的 Kubernetes 标签查询自动生成监控目标配置;无需学习 Prometheus 特定的配置语言。
有关 Prometheus Operator 的介绍,请参阅入门指南。
Operator 本身已被认为可用于生产环境。有关每个 CRD 的状态,请参考自定义资源定义(CRD)版本:
monitoring.coreos.com/v1:稳定的 CRD 和 API,变更以向后兼容的方式进行。
monitoring.coreos.com/v1- monitoring.coreos.com/v1beta1:不稳定的 CRD 和 API,可能会发生变更,但团队致力于避免变更。对于接受破坏性变更风险的用户,我们鼓励在生产环境中使用。
monitoring.coreos.com/v1beta1- monitoring.coreos.com/v1alpha1:不稳定的 CRD 和 API,变更可能频繁发生,建议避免在关键任务环境中使用。
monitoring.coreos.com/v1alpha1## Prometheus Operator 与 kube-prometheus 与社区 Helm 图表的对比Prometheus Operator 使用 Kubernetes 自定义资源简化 Prometheus、Alertmanager 及相关监控组件的部署和配置。
kube-prometheus 提供了基于 Prometheus 和 Prometheus Operator 的完整集群监控栈示例配置。这包括部署多个 Prometheus 和 Alertmanager 实例、用于收集节点指标的 node_exporter 等指标导出器、将 Prometheus 链接到各种指标端点的抓取目标配置,以及用于通知集群中潜在问题的示例告警规则。
prometheus-community/kube-prometheus-stack Helm 图表提供与 kube-prometheus 类似的功能集。此图表由 Prometheus 社区维护。有关更多信息,请参阅该图表的 README。
Prometheus Operator 至少需要 Kubernetes 版本 1.16.0。如果您刚开始使用 Prometheus Operator,强烈建议使用最新的稳定版本。
1.16.0## 自定义资源定义(CRDs)
Prometheus Operator 的核心功能是监控 Kubernetes API 服务器上特定对象的变更,并确保当前的 Prometheus 部署与这些对象匹配。Operator 对以下自定义资源定义(CRDs)进行操作:
Prometheus- PrometheusAgent:定义所需的 Prometheus 部署,但以 Agent 模式运行。
PrometheusAgent:定义所需的 Prometheus 部署,但以 Agent 模式运行。
PrometheusAgent- Alertmanager:定义所需的 Alertmanager 部署。
Alertmanager:定义所需的 Alertmanager 部署。
Alertmanager- ThanosRuler:定义所需的 Thanos Ruler 部署。
ThanosRuler:定义所需的 Thanos Ruler 部署。
ThanosRuler- ServiceMonitor:声明式地指定应如何监控 Kubernetes 服务组。Operator 基于 API 服务器中对象的当前状态自动生成 Prometheus 抓取配置。
ServiceMonitor:声明式地指定应如何监控 Kubernetes 服务组。Operator 基于 API 服务器中对象的当前状态自动生成 Prometheus 抓取配置。
ServiceMonitor- PodMonitor:声明式地指定应如何监控 Pod 组。Operator 基于 API 服务器中对象的当前状态自动生成 Prometheus 抓取配置。
PodMonitor:声明式地指定应如何监控 Pod 组。Operator 基于 API 服务器中对象的当前状态自动生成 Prometheus 抓取配置。
PodMonitor- Probe:声明式地指定应如何监控入口组或静态目标组。Operator 基于定义自动生成 Prometheus 抓取配置。
Probe:声明式地指定应如何监控入口组或静态目标组。Operator 基于定义自动生成 Prometheus 抓取配置。
Probe- ScrapeConfig:声明式地指定要添加到 Prometheus 的抓取配置。此自定义资源定义有助于抓取 Kubernetes 集群外部的资源。
ScrapeConfig:声明式地指定要添加到 Prometheus 的抓取配置。此自定义资源定义有助于抓取 Kubernetes 集群外部的资源。
ScrapeConfig- PrometheusRule:定义所需的 Prometheus 告警规则和/或记录规则集。Operator 生成规则文件,可供 Prometheus 实例使用。
PrometheusRule:定义所需的 Prometheus 告警规则和/或记录规则集。Operator 生成规则文件,可供 Prometheus 实例使用。
PrometheusRule- AlertmanagerConfig:声明式地指定 Alertmanager 配置的子部分,允许将告警路由到自定义接收器,并设置抑制规则。
AlertmanagerConfig:声明式地指定 Alertmanager 配置的子部分,允许将告警路由到自定义接收器,并设置抑制规则。
AlertmanagerConfigPrometheus Operator 会自动检测 Kubernetes API 服务器中上述任何对象的变更,并确保匹配的部署和配置保持同步。
要了解有关 Prometheus Operator 引入的 CRD 的更多信息,请查看设计页面。
[!NOTE] 本快速入门不会部署完整的监控栈;如果您需要完整监控栈,请参见 kube-prometheus 项目。如果您需要完整栈,但已应用 bundle.yaml,请先删除该 bundle(kubectl delete -f bundle.yaml)。
要在集群内快速试用 Prometheus Operator,请选择一个版本并运行以下命令,在 default 命名空间中部署 operator:
kubectl create -f bundle.yaml
如果要在其他命名空间部署 Prometheus operator,还需要 kustomize:
NAMESPACE=my_namespace kustomize edit set namespace $NAMESPACE && kubectl create -k .
[!NOTE] 如果在非 default 命名空间部署,请确保调整 ClusterRoleBinding 中的命名空间。
要在集群外运行 Operator:
make
scripts/run-external.sh
要移除 operator 和 Prometheus,首先删除在每个命名空间中创建的所有自定义资源。operator 将自动关闭并移除 Prometheus 和 Alertmanager pod 以及相关的 ConfigMap。
for n in $(kubectl get namespaces -o jsonpath={..metadata.name}); do
kubectl delete --all --namespace=$n prometheus,servicemonitor,podmonitor,alertmanager
done
几分钟后,您可以继续移除 operator 本身。
kubectl delete -f bundle.yaml
operator 会在您创建 Prometheus 或 Alertmanager 资源的每个命名空间中自动创建服务,并定义三个自定义资源定义。您现在可以清理这些资源。
for n in $(kubectl get namespaces -o jsonpath={..metadata.name}); do
kubectl delete --ignore-not-found --namespace=$n service prometheus-operated alertmanager-operated
done
kubectl delete --ignore-not-found customresourcedefinitions \
prometheuses.monitoring.coreos.com \
servicemonitors.monitoring.coreos.com \
podmonitors.monitoring.coreos.com \
alertmanagers.monitoring.coreos.com \
prometheusrules.monitoring.coreos.com \
alertmanagerconfigs.monitoring.coreos.com \
scrapeconfigs.monitoring.coreos.com
为防止无效的Prometheus告警规则和记录规则导致已部署的Prometheus实例出现故障,提供了一个准入Webhook,用于在PrometheusRule资源初次创建或更新时对其进行验证。
有关此功能的更多信息,请参阅用户指南。
[!NOTE] 本快速入门不会部署完整的监控栈;如果您需要完整监控栈,请参阅https://github.com/prometheus-operator/kube-prometheus%E9%A1%B9%E7%9B%AE%E3%80%82%E5%A6%82%E6%9E%9C%E6%82%A8%E9%9C%80%E8%A6%81%E5%AE%8C%E6%95%B4%E6%A0%88%EF%BC%8C%E4%BD%86%E5%B7%B2%E5%BA%94%E7%94%A8%E4%BA%86%60bundle.yaml%60%EF%BC%8C%E8%AF%B7%E5%85%88%E5%88%A0%E9%99%A4%E8%AF%A5bundle%EF%BC%88%60kubectl delete -f bundle.yaml`)。
要在集群内快速试用仅Prometheus Operator,请选择一个版本并运行以下命令,在default命名空间中部署Operator:
kubectl create -f bundle.yaml
如果要在不同的命名空间中部署Prometheus Operator,还需要kustomize:
NAMESPACE=my_namespace kustomize edit set namespace $NAMESPACE && kubectl create -k .
[!NOTE] 如果在非默认命名空间中部署,请确保调整ClusterRoleBinding中的命名空间。
要在集群外运行Operator:
make
scripts/run-external.sh
要卸载Operator和Prometheus,首先删除在每个命名空间中创建的所有自定义资源。Operator将自动关闭并删除Prometheus和Alertmanager Pod以及相关的ConfigMap。
for n in $(kubectl get namespaces -o jsonpath={..metadata.name}); do
kubectl delete --all --namespace=$n prometheus,servicemonitor,podmonitor,alertmanager
done
几分钟后,您可以继续卸载Operator本身。
kubectl delete -f bundle.yaml
Operator会在您创建Prometheus或Alertmanager资源的每个命名空间中自动创建服务,并定义三个自定义资源定义。您现在可以清理这些资源。
for n in $(kubectl get namespaces -o jsonpath={..metadata.name}); do
kubectl delete --ignore-not-found --namespace=$n service prometheus-operated alertmanager-operated
done
kubectl delete --ignore-not-found customresourcedefinitions \
prometheuses.monitoring.coreos.com \
servicemonitors.monitoring.coreos.com \
podmonitors.monitoring.coreos.com \
alertmanagers.monitoring.coreos.com \
prometheusrules.monitoring.coreos.com \
alertmanagerconfigs.monitoring.coreos.com \
scrapeconfigs.monitoring.coreos.com
参见测试
参见贡献指南。
有关在为项目贡献时使用AI工具的信息,请参阅贡献指南中的AI使用政策。
如果您发现与Prometheus Operator相关的安全漏洞且尚未公开披露,请不要通过创建GitHub Issue报告,而是发送电子邮件给MAINTAINERS.md文件中列出的项目维护者。
在报告自动化安全扫描器发现的问题时,请参考Prometheus文档。
有关常见问题和常见问题解答(FAQ),请查看故障排除文档。
prometheus-operator组织徽标由https://github.com/bia%E5%88%9B%E5%BB%BA%E5%B9%B6%E8%B4%A1%E7%8C%AE%E3%80%82
来自真实用户的反馈,见证轩辕镜像的优质服务