如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 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/v1monitoring.coreos.com/v1beta1monitoring.coreos.com/v1alpha1Prometheus Operator 使用 Kubernetes 自定义资源简化 Prometheus、Alertmanager 及相关监控组件的部署和配置。
kube-prometheus 提供基于 Prometheus 和 Prometheus Operator 的完整集群监控栈示例配置。这包括多个 Prometheus 和 Alertmanager 实例的部署、用于收集节点指标的 metrics 导出器(如 node_exporter)、将 Prometheus 链接到各种指标端点的抓取目标配置,以及用于通知集群中潜在问题的示例告警规则。
prometheus-community/kube-prometheus-stack Helm 图表提供与 kube-prometheus 类似的功能集。此图表由 Prometheus 社区维护。有关更多信息,请参阅该图表的 README。
Prometheus Operator 至少需要 Kubernetes 版本 1.16.0。如果您刚开始使用 Prometheus Operator,强烈建议使用最新的稳定版本。
1.16.0
Prometheus Operator 的核心功能是监控 Kubernetes API 服务器中特定对象的变更,并确保当前的 Prometheus 部署与这些对象匹配。Operator 对以下自定义资源定义(CRD)进行操作:
Prometheus
PrometheusAgent
Alertmanager
ThanosRuler
ServiceMonitor
PodMonitor
Probe
ScrapeConfig
PrometheusRule
AlertmanagerConfig
Prometheus Operator 会自动检测 Kubernetes API 服务器中上述任何对象的变更,并确保匹配的部署和配置保持同步。
要了解有关 Prometheus Operator 引入的 CRD 的更多信息,请查看设计页面。
[!NOTE] 本快速入门不会部署完整的监控栈;如果您需要完整监控栈,请参阅 kube-prometheus 项目。如果您想要完整栈,但已应用 bundle.yaml,请先删除该 bundle(kubectl delete -f bundle.yaml)。
要在集群内快速试用 Prometheus Operator,请选择一个版本并运行以下命令,在默认命名空间中部署 operator:
kubectl create -f bundle.yaml
如果要在不同的命名空间中部署 Prometheus operator,还需要 kustomize:
NAMESPACE=my_namespace kustomize edit set namespace $NAMESPACE && kubectl create -k .
[!NOTE] 如果在默认命名空间以外的命名空间部署,请确保调整 ClusterRoleBinding 中的命名空间。
[!NOTE] 如果在默认命名空间以外的命名空间部署,请确保调整 ClusterRoleBinding 中的命名空间。
要在集群外运行 Operator:
make
scripts/run-external.sh
Prometheus Operator的核心功能是监控Kubernetes API服务器上特定对象的变更,并确保当前的Prometheus部署与这些对象保持一致。Operator基于以下https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/运行:
Prometheus:定义期望的Prometheus部署。
PrometheusAgent:定义期望的Prometheus部署,但以Agent模式运行。
Alertmanager:定义期望的Alertmanager部署。
ThanosRuler:定义期望的Thanos Ruler部署。
ServiceMonitor:声明性地指定如何监控Kubernetes服务组。Operator会根据API服务器中对象的当前状态自动生成Prometheus抓取配置。
PodMonitor:声明性地指定如何监控Pod组。Operator会根据API服务器中对象的当前状态自动生成Prometheus抓取配置。
Probe:声明性地指定如何监控Ingress组或静态目标组。Operator会根据定义自动生成Prometheus抓取配置。
ScrapeConfig:声明性地指定要添加到Prometheus的抓取配置。此自定义资源定义有助于抓取Kubernetes集群外的资源。
PrometheusRule:定义期望的Prometheus告警规则和/或记录规则集。Operator会生成规则文件,供Prometheus实例使用。
AlertmanagerConfig:声明性地指定Alertmanager配置的子部分,允许将告警路由到自定义接收器,并设置抑制规则。
Prometheus Operator会自动检测Kubernetes API服务器中上述任何对象的变更,并确保匹配的部署和配置保持同步。
要了解有关Prometheus Operator引入的CRD的更多信息,请查看设计页面。
为防止无效的Prometheus告警规则和记录规则导致已部署的Prometheus实例出现故障,提供了https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/,用于在初始创建或更新时验证`PrometheusRule`资源。
有关此功能的更多信息,请参见用户指南。
[!NOTE] 本快速入门不会部署完整的监控栈;如果您需要完整监控栈,请参见 https://github.com/prometheus-operator/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] 确保在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
参见 TESTING
参见 CONTRIBUTING。
有关在为项目贡献时使用AI工具的信息,请参见贡献指南中的AI使用政策。
如果您发现与Prometheus Operator相关的安全漏洞且尚未公开披露,请不要通过创建GitHub issue报告,而是发送电子邮件给MAINTAINERS.md文件中列出的项目维护者。
报告来自自动化安全扫描器的问题时,请参考https://prometheus.io/docs/operating/security/#automated-security-scanners。
有关常见问题和常见问题解答(FAQ),请查看故障排除文档。
prometheus-operator组织徽标由https://github.com/bia创建并贡献。
来自真实用户的反馈,见证轩辕镜像的优质服务