本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Jaeger Operator 是一个 Kubernetes Operator,用于在 Kubernetes 集群中自动化部署、配置、管理和升级 Jaeger 分布式追踪系统。通过自定义资源(Custom Resource, CR)抽象,Jaeger Operator 简化了 Jaeger 实例的生命周期管理,降低了在 Kubernetes 环境中构建可观测性平台的复杂度。
Jaeger 自定义资源定义(CRD)声明式管理 Jaeger 实例,支持 YAML 配置即部署。all-in-one(测试)、production(生产)等部署策略,适配不同环境需求。Helm 是 Jaeger Operator 官方推荐的安装方式,支持版本控制和参数自定义:
# 添加 Jaeger Helm 仓库 helm repo add jaegertracing [***] helm repo update # 安装 Operator(默认命名空间:observability) helm install jaeger-operator jaegertracing/jaeger-operator \ --namespace observability \ --create-namespace \ --version 2.48.0 # 替换为最新版本
直接 apply 官方维护的 YAML 清单(包含 CRD、RBAC 及 Operator Deployment):
# 安装 CRD kubectl apply -f [***]
若集群已部署 OLM(如 OpenShift 内置),可通过 OperatorHub 搜索 Jaeger 并一键安装。
安装 Operator 后,通过 Jaeger 自定义资源(CR)创建实例。以下为典型场景示例:
all-in-one 模式将 Jaeger 所有组件(Agent、Collector、Query、Ingester)打包为单个 Pod,适合快速测试,不持久化数据:
# jaeger-all-in-one.yaml apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger-test spec: strategy: allInOne # 测试模式 allInOne: image: jaegertracing/all-in-one:1.48 # Jaeger 镜像版本 ingress: enabled: true # 启用 Ingress 暴露 Query UI hosts: - jaeger-test.example.com # 替换为实际域名
应用配置:
kubectl apply -f jaeger-all-in-one.yaml -n observability
production 模式采用分布式部署,组件独立部署并使用持久化存储(如 Elasticsearch),适合生产环境:
# jaeger-production.yaml apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger-prod spec: strategy: production # 生产模式 collector: replicas: 2 # collector 副本数(高可用) resources: limits: cpu: 1000m memory: 1Gi query: replicas: 2 # Query 副本数 resources: limits: cpu: 500m memory: 512Mi storage: type: elasticsearch # 使用 Elasticsearch 存储追踪数据 elasticsearch: nodeCount: 3 # Elasticsearch 节点数(若需 Operator 自动部署 ES) # 若使用外部 ES,替换为: # hosts: ["[***]"] # secretName: jaeger-es-secret # 存储 ES 认证信息的 Secret 名称 agent: strategy: DaemonSet # Agent 以 DaemonSet 部署(每个节点一个实例) ingress: enabled: true hosts: - jaeger-prod.example.com
应用配置:
kubectl apply -f jaeger-production.yaml -n observability
| 字段路径 | 说明 | 可选值/示例 |
|---|---|---|
spec.strategy | 部署策略 | allInOne(测试)、production(生产) |
spec.storage.type | 存储后端类型 | elasticsearch、cassandra、memory |
spec.collector.replicas | Collector 副本数(生产环境建议 ≥2) | 2、3 |
spec.agent.strategy | Agent 部署模式 | DaemonSet(节点级)、Sidecar(应用级) |
spec.ingress.enabled | 是否启用 Ingress 暴露 Query UI | true、false |
spec.resources | 资源限制(可作用于 Collector/Query/Agent 等组件) | limits: {cpu: "1000m", memory: "1Gi"} |
Jaeger Operator 自身支持通过环境变量调整行为(通过 Operator Deployment 的 env 字段配置):
| 环境变量 | 说明 | 默认值 |
|---|---|---|
WATCH_NAMESPACE | Operator 监控的命名空间(多 namespace 用逗号分隔,为空时监控全集群) | 安装 Operator 的命名空间 |
LOG_LEVEL | 日志级别 | info |
JAEGER_AGENT_HOST | Operator 自身接入 Jaeger 追踪的 Agent 地址(用于调试 Operator) | 空(默认不开启) |
生产环境推荐使用 Elasticsearch 存储追踪数据。若已有外部 Elasticsearch 集群,通过 spec.storage.elasticsearch.hosts 和 secretName 配置:
spec: storage: type: elasticsearch elasticsearch: hosts: ["[***]"] # 外部 ES 地址 secretName: es-credentials # 包含 ES 用户名密码的 Secret(key 为 `username` 和 `password`)
通过 spec.sampling 定义采样策略(如固定采样率、基于服务名动态调整):
spec: sampling: options: default_strategy: type: probabilistic # 概率采样 param: 0.001 # 采样率(1/1000 请求) per_service_strategies: - service: "payment-service" # 对特定服务调整采样率 type: rateLimiting param: 10 # 每秒最多采样 10 个请求
为 Jaeger 组件间通信或外部访问启用 TLS:
spec: ingress: tls: - hosts: [jaeger-prod.example.com] secretName: jaeger-tls # 包含 TLS 证书的 Secret(key 为 `tls.crt` 和 `tls.key`) collector: tls: enabled: true # 启用 Collector 服务端 TLS(客户端需验证证书) secretName: collector-tls # Collector 证书 Secret
# 添加仓库并安装 Operator(指定命名空间和版本) helm repo add jaegertracing [***] helm repo update helm install jaeger-operator jaegertracing/jaeger-operator \ --namespace observability \ --create-namespace \ --version 2.48.0 \ --set watchNamespace="" # 监控全集群(默认仅监控安装命名空间)
# jaeger-prod-full.yaml apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger-prod namespace: observability spec: strategy: production collector: replicas: 3 resources: requests: {cpu: "500m", memory: "512Mi"} limits: {cpu: "1000m", memory: "1Gi"} query: replicas: 2 resources: limits: {cpu: "500m", memory: "512Mi"} serviceType: ClusterIP # 内部访问用 ClusterIP,外部通过 Ingress 暴露 storage: type: elasticsearch elasticsearch: hosts: ["[***]"] secretName: es-creds indexCleaner: # 自动清理旧索引 enabled: true numberOfDays: 30 # 保留 30 天数据 agent: strategy: DaemonSet resources: limits: {cpu: "100m", memory: "64Mi"} ingress: enabled: true hosts: [jaeger.example.com] tls: - hosts: [jaeger.example.com] secretName: jaeger-tls sampling: options: default_strategy: {type: "probabilistic", param: 0.01}
部署后通过以下命令验证资源状态:
# 查看 Jaeger CR 状态 kubectl get jaeger -n observability # 查看 Jaeger 组件 Pod kubectl get pods -n observability -l app.kubernetes.io/instance=jaeger-prod # 查看 Ingress 地址 kubectl get ingress jaeger-prod -n observability -o jsonpath='{.status.load***.ingress[0].ip}'
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429