☰
在 Kubernetes 上部署 Grafana Tempo:Bitnami Helm Chart 实战指南
2026/10/3 13:35:07 网站建设 项目流程
  • 云原生
  • 容器编排

【免费下载链接】charts

Bitnami Helm Charts

项目地址:https://gitcode.com/GitHub_Trending/charts30/charts
点击查看免费下载

Grafana Tempo 是一个与 Grafana 原生集成、高度可扩展的分布式链路追踪系统,支持 Jaeger、OpenTelemetry、Zipkin 等多种主流追踪协议。本指南以 Bitnami grafana-tempo Helm Chart 为对象,系统讲解其在 Kubernetes 集群上的安装、配置、监控集成与持久化方案,读者读完可独立完成一套生产可用的 Tempo 分布式追踪平台的搭建与调优。

一、Chart 概览与前置条件

1.1 这个 Chart 做了什么

Bitnami 的 grafana-tempo Chart 通过 Helm 包管理器在 Kubernetes 集群中引导一个完整的 Grafana Tempo 部署。从 Chart 元数据(Chart.yaml)可以看到,它当前对应应用版本2.8.2,Chart 版本为5.0.1,并声明了两个子 Chart 依赖:

  • memcached(7.x.x):默认随 Chart 一起部署,为 Tempo 提供 bloom 过滤器与 trace-id 索引缓存;
  • common(2.x.x):提供标签、affinity、securityContext 渲染等公共模板能力。

Chart 的关键字(keywords)为grafana、tracing、metrics、infrastructure,定位非常明确:基础设施层的链路追踪与指标一体化组件。

1.2 前置条件

在开始安装前,需要满足以下环境要求:

  • Kubernetes 1.23+
  • Helm 3.8.0+
  • 底层基础设施支持 PV(Persistent Volume)供应(因为 ingester 默认开启持久化)

二、快速安装

2.1 最简单的方式(TL;DR)

helm install my-release oci://registry-1.docker.io/bitnamicharts/grafana-tempo

2.2 通过自定义 Registry 安装

如果从私有 Registry 或镜像仓库安装,需要替换占位符REGISTRY_NAME和REPOSITORY_NAME:

helm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/grafana-tempo

例如 Bitnami 官方仓库的对应值为REGISTRY_NAME=registry-1.docker.io、REPOSITORY_NAME=bitnamicharts。安装完成后,可以使用helm list查看已部署的所有 release。

默认配置即可完成一次可用的部署。如需调整参数,可参考下文 Parameters 章节列出的全部可配置项。

2.3 使用--set指定参数

每个参数都可以通过helm install的--set key=value[,key=value]参数指定。例如启用 Jaeger GRPC 追踪接入:

helm install my-release \ --set tempo.traces.jaeger.grpc=true \ oci://REGISTRY_NAME/REPOSITORY_NAME/grafana-tempo

2.4 使用 values 文件

更推荐的方式是将参数写入 YAML 文件,通过-f传入:

helm install my-release -f values.yaml oci://REGISTRY_NAME/REPOSITORY_NAME/grafana-tempo

Chart 仓库中的默认 values.yaml(共 3352 行)可作为自定义配置的起点模板。

三、Tempo 组件架构与配置原理

3.1 组件级(Component)拆分部署

从模板目录 templates 的结构可以看出,这个 Chart 将 Tempo 拆分为 6 个核心工作负载,每个组件以-target=xxx启动参数运行(见各组件模板中的args):

组件Workload 类型启动参数(模板位置)
compactorDeployment-target=compactor(deployment.yaml)
distributorDeployment-target=distributor(deployment.yaml)
ingesterStatefulSet-target=ingester(statefulset.yaml)
querierDeployment-target=querier(deployment.yaml)
queryFrontendDeployment-target=query-frontend(deployment.yaml)
metricsGeneratorStatefulSet-target=metrics-generator(statefulset.yaml)

从源码结构可以推断:所有组件共享同一份tempo.yaml配置与同一套镜像,区别只在于-target指定了该进程扮演的角色。这与 Tempo 官方"单二进制多 target"的设计一脉相承。

此外还有一个附加工作负载:

  • vulture(deployment.yaml):Tempo 官方自带的负载测试工具,默认启用(vulture.enabled=true),用于向集群持续注入合成追踪数据以验证链路。

3.2 端口规划

所有 Tempo 组件统一使用以下端口(由tempo.containerPorts定义,见 values.yaml):

  • web(HTTP):3200,提供/ready就绪探针等 HTTP 端点;
  • grpc:9095,组件间及查询的 gRPC 通信;
  • gossipRing:7946,memberlist gossip 协议端口,用于组件间发现与 ring 同步。

vulture 组件额外使用8080(vulture.containerPorts.http),query-frontend 的 tempo-query sidecar 使用7777(queryFrontend.query.containerPorts.grpcJaeger)暴露给 Jaeger query 的 gRPC 端口。

3.3 配置共享机制

Chart 通过两个 ConfigMap 向所有组件下发配置:

  1. tempo-configmap(tempo-configmap.yaml):生成tempo.yaml,内容来自tempo.configuration;
  2. overrides-configmap(overrides-configmap.yaml):生成overrides.yaml(per-tenant override),内容来自tempo.overridesConfiguration。

各组件的 Pod 模板中通过checksum/config注解对 tempo-configmap 内容做 sha256 校验(如 compactor deployment.yaml),配置变更会触发滚动更新,确保配置与进程始终一致。configmap 以 subPath 方式挂载到/bitnami/grafana-tempo/conf/tempo.yaml与/bitnami/grafana-tempo/conf/overrides.yaml。

query-frontend 额外使用 query-configmap.yaml 生成 tempo-query 的tempo-query.yaml配置。

3.4 默认配置内容解读

Chart 内置的默认tempo.configuration(见 values.yaml)涵盖了生产所需的核心骨架,值得逐段理解:

  • multitenancy_enabled: false:默认关闭多租户;
  • cache:使用随 Chart 部署的 memcached 作为 bloom 过滤器与 trace-id-index 的缓存后端;
  • compactor:block 保留策略48h,ring 的 kvstore 使用memberlist;
  • distributor:根据tempo.traces.*开关动态生成各协议的 receiver 端点:
    • Jaeger gRPC:0.0.0.0:14250
    • Jaeger thrift_compact:0.0.0.0:6831,thrift_binary:0.0.0.0:6832
    • Jaeger thrift_http:0.0.0.0:14268
    • Zipkin:0.0.0.0:9411
    • OTLP HTTP:0.0.0.0:4318,OTLP gRPC:0.0.0.0:4317
    • OpenCensus:0.0.0.0:55678
  • querier:frontend_worker指向 query-frontend 的 headless 服务,实现查询结果回传;
  • ingester:lifecycler.ring使用 memberlist,tokens_file_path位于tempo.dataDir;
  • metrics_generator:WAL 路径为{dataDir}/wal,remote_write来自metricsGenerator.remoteWrite;
  • memberlist:bind 到 gossipRing 端口7946,并自动加入 gossip-ring headless 服务完成集群成员发现;
  • server:http_listen_port=3200、grpc_listen_port=9095;
  • storage.trace:本地后端,WAL 路径{dataDir}/wal、trace 数据路径{dataDir}/traces。

注意:配置内容支持 Go 模板渲染(include "common.tplvalues.render"),这意味着你可以在tempo.configuration中引用 Chart 内计算出的服务名等动态值。

3.5 追踪协议开关

在tempo.traces下,Chart 提供了细粒度的协议开关(默认值见下表),用于决定 distributor 监听哪些 receiver:

参数说明默认
tempo.traces.jaeger.grpc启用 Jaeger GRPC 追踪true
tempo.traces.jaeger.thriftBinary启用 Jaeger Thrift Binaryfalse
tempo.traces.jaeger.thriftCompact启用 Jaeger Thrift Compactfalse
tempo.traces.jaeger.thriftHttp启用 Jaeger Thrift HTTPtrue
tempo.traces.otlp.http启用 OpenTelemetry HTTPfalse
tempo.traces.otlp.grpc启用 OpenTelemetry gRPCfalse
tempo.traces.opencensus启用 OpenCensusfalse
tempo.traces.zipkin启用 Zipkinfalse

从 values.yaml 的模板逻辑可以看出,每个开关对应的 receiver 端点只有在对应开关为 true 时才会被渲染进tempo.yaml。

四、配置与安装细节

4.1 资源请求与限制

Chart 允许为所有容器设置resources(CPU、内存请求与限制),这对生产工作负载至关重要,且应针对实际场景调整。为了简化这一过程,Chart 提供了resourcesPreset预设值,可自动填充resources段,合法取值为:none、nano、micro、small、medium、large、xlarge、2xlarge(预设定义复用自 bitnami/common chart 的 _resources.tpl)。

需要说明:resourcesPreset适合快速起步,但生产环境不建议直接使用预设,因为预设无法完全贴合你的具体需求,官方推荐显式配置resources(compactor.resources、ingester.resources等)。

资源渲染逻辑(如 compactor deployment.yaml):当resources非空时优先使用resources,否则当resourcesPreset != "none"时套用预设。

4.2 滚动标签(Rolling tag)与不可变标签(Immutable tag)

生产环境强烈建议使用不可变标签(immutable tag)。这样可以确保部署不会因为同一 tag 被更新为不同镜像而自动变化。Bitnami 会在主容器发布新版本、发生重大变更或存在严重漏洞时,发布新版本 Chart 来更新容器。

在 values.yaml 中可以看到当前默认 tag 为2.8.2-debian-12-r1,这是带完整版本号的可追溯镜像。也可以使用tempo.image.digest(如sha256:aa....)锁定镜像摘要,注意 digest 一旦设置会覆盖 tag。

4.3 附加环境变量

若需为某个组件注入额外环境变量(如自定义初始化脚本),可在各子配置中通过extraEnvVars添加,distributor、compactor、ingester、querier、queryFrontend、vulture六个子配置均支持:

compactor: extraEnvVars: - name: LOG_LEVEL value: error distributor: extraEnvVars: - name: LOG_LEVEL value: error ingester: extraEnvVars: - name: LOG_LEVEL value: error querier: extraEnvVars: - name: LOG_LEVEL value: error queryFrontend: extraEnvVars: - name: LOG_LEVEL value: error vulture: extraEnvVars: - name: LOG_LEVEL value: error

也可以改用 ConfigMap 或 Secret 承载环境变量,通过各子配置的extraEnvVarsCM或extraEnvVarsSecret引用。在模板中,这些值会分别渲染为env(列表)与envFrom(configMapRef/secretRef),见 compactor deployment.yaml。

4.4 Sidecar 与 Init Container

如果需要在同一 Pod 中附加额外容器(如额外的指标或日志导出器),可以通过各子配置的sidecars参数定义:

sidecars: - name: your-image-name image: your-image imagePullPolicy: Always ports: - name: portname containerPort: 1234

如果 sidecar 需要暴露额外端口,可通过service.extraPorts补充:

service: extraPorts: - name: extraPort port: 11311 targetPort: 11311

两点重要提示:

  • Chart 本身已为可用的 Prometheus exporter 内置了 sidecar 容器,可通过部署时添加--enable-metrics=true激活;因此sidecars参数只应用来添加额外容器。
  • 如需 init 容器,使用initContainers参数:
initContainers: - name: your-image-name image: your-image imagePullPolicy: Always ports: - name: portname containerPort: 1234

另外,Chart 还内置了可选的volumePermissionsinit 容器(默认enabled: false),用于在启用持久化时修正 PV 挂载点的属主为runAsUser:fsGroup,其实现逻辑可参考 ingester statefulset.yaml。

4.5 Pod 亲和性(Affinity)

Chart 允许通过affinity参数设置自定义亲和性。作为替代,也可使用 bitnami/common chart 提供的预设配置:podAffinityPreset、podAntiAffinityPreset或nodeAffinityPreset,每个组件子配置均支持。

从模板实现看(如 compactor deployment.yaml),当affinity为空时,模板会依次渲染podAffinity、podAntiAffinity、nodeAffinity三个预设;当显式设置affinity后预设即被忽略。各组件默认podAntiAffinityPreset=soft。

4.6 外部 Memcached 支持

如果希望 Tempo 连接集群外部的 Memcached(例如使用托管缓存服务,或让多个应用共享缓存服务器),可以通过externalMemcached参数指定连接信息,并同时关闭 Chart 自带的 memcached 子 Chart:

memcached.enabled=false externalMemcached.host=myexternalhost externalMemcached.port=11211

相关参数包括externalMemcached.host(默认"")与externalMemcached.port(默认11211)。若保留内置 memcached(memcached.enabled=true,默认),它作为子 Chart 部署,默认端口11211,支持memcached.auth.enabled认证开关(默认 false)。

4.7 备份与恢复

Kubernetes 上备份/恢复 Helm Chart 部署,需要备份源部署的持久卷,并使用 Velero 等工具将其挂载到新部署中。具体操作请参考 Bitnami 官方 Velero 备份恢复指南。

五、持久化(Persistence)

Bitnami 的 grafana-tempo 镜像将 ingester 数据存放在容器/bitnami路径下(实际数据目录由tempo.dataDir指定,默认/bitnami/grafana-tempo/data)。Chart 使用 Persistent Volume Claims(PVC)保证数据跨部署留存:

  • ingester.persistence.enabled(默认true):ingester 是 StatefulSet,通过volumeClaimTemplates动态创建 PVC(见 ingester statefulset.yaml);
  • metricsGenerator.persistence.enabled(默认false):metrics-generator 的 WAL 持久化默认关闭,可按需开启。

ingester 的持久化参数如下:

参数说明默认
ingester.persistence.enabled启用持久化true
ingester.persistence.existingClaim使用已有 PVC 名称""
ingester.persistence.storageClassPVC 存储类""
ingester.persistence.subPath挂载的子目录""
ingester.persistence.accessModes访问模式["ReadWriteOnce"]
ingester.persistence.sizePVC 容量8Gi
ingester.persistence.annotations额外 PVC 注解{}
ingester.persistence.selector匹配已有 PV 的选择器{}

metrics-generator 的持久化参数与 ingester 结构一致(metricsGenerator.persistence.*),默认8Gi、ReadWriteOnce。

六、Prometheus 监控集成

6.1 开启原生指标

将metrics.enabled设为true后,Chart 会在容器与服务中暴露 Grafana Tempo 原生的 Prometheus 端口,并为 Service 添加 Prometheus 自动抓取所需的注解。

6.2 前置要求

集成生效需要集群中已有可用的 Prometheus 或 Prometheus Operator 部署。可以安装 Bitnami 的 prometheus Chart 或 kube-prometheus Chart 快速获得。

6.3 与 Prometheus Operator 集成

Chart 支持部署ServiceMonitor对象以便与 Prometheus Operator 集成,只需设置:

metrics.serviceMonitor.enabled=true

注意:如果集群未安装 Prometheus Operator 的 CustomResourceDefinitions,安装会失败并报错:

no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"

解决方式是先安装 Bitnami kube-prometheus Chart 以获得必要的 CRD 与 Operator。

从模板看,各组件目录下都有独立的 servicemonitor.yaml 模板,说明每个 Tempo 组件都可被单独监控。

七、核心参数速查表

7.1 Global 参数

名称说明默认
global.imageRegistry全局 Docker 镜像仓库""
global.imagePullSecrets全局镜像拉取 Secret 数组[]
global.defaultStorageClass全局默认 StorageClass""
global.storageClass已废弃,改用 defaultStorageClass""
global.security.allowInsecureImages跳过镜像校验false
global.compatibility.openshift.adaptSecurityContext适配 Openshift restricted-v2 SCC:移除 runAsUser/runAsGroup/fsGroup。取值 auto/force/disabledauto

7.2 Common 参数

名称说明默认
kubeVersion覆盖 Kubernetes 版本""
nameOverride部分覆盖 common.names.fullname""
fullnameOverride完全覆盖 fullname""
commonLabels应用到所有对象的标签{}
commonAnnotations应用到所有对象的注解{}
clusterDomain集群域名cluster.local
extraDeploy额外部署的对象数组[]
diagnosticMode.enabled诊断模式(禁用探针并覆盖命令)false
diagnosticMode.command覆盖所有容器的命令["sleep"]
diagnosticMode.args覆盖所有容器的参数["infinity"]

7.3 Tempo 公共参数

名称说明默认
tempo.image.registry/tempo.image.repository镜像仓库与仓库名REGISTRY_NAME/REPOSITORY_NAME/grafana-tempo
tempo.image.digest镜像摘要(设置后覆盖 tag)""
tempo.image.pullPolicy镜像拉取策略IfNotPresent
tempo.image.pullSecrets镜像拉取 Secret[]
tempo.memBallastSizeMbs各组件内存 ballast 大小(MB)1024
tempo.dataDir数据目录/bitnami/grafana-tempo/data
tempo.configurationTempo 组件配置(Go 模板可渲染)见 3.4 节
tempo.existingConfigmap已有 tempo 配置 ConfigMap 名称""
tempo.overridesConfiguration组件 overrides 配置overrides: {}
tempo.existingOverridesConfigmap已有 overrides 配置 ConfigMap""
tempo.containerPorts.webHTTP 端口3200
tempo.containerPorts.grpcgRPC 端口9095
tempo.containerPorts.gossipRingGossip Ring 端口7946
tempo.gossipRing.service.ports.httpGossip Ring headless 服务端口7946

7.4 各组件 Deployment 参数(结构一致)

compactor、distributor、ingester、querier、queryFrontend、vulture、metricsGenerator的部署参数结构高度一致,核心差异仅在默认值上:

  • 副本数:replicaCount(默认均为1);
  • 探针:livenessProbe/readinessProbe(默认enabled=true,period10s、timeout1s、failureThreshold3)、startupProbe(默认false);compactor 的 liveness/readiness 探针 initialDelaySeconds 为80s,其余组件为10s;也可通过customLivenessProbe/customReadinessProbe/customStartupProbe完全覆盖默认探针;
  • 资源:resourcesPreset(默认nano)、resources(默认{},生产推荐);
  • 安全上下文:podSecurityContext.fsGroup=1001,containerSecurityContext.runAsUser=1001、runAsGroup=1001、runAsNonRoot=true、privileged=false、readOnlyRootFilesystem=true、allowPrivilegeEscalation=false、capabilities.drop=["ALL"]、seccompProfile.type=RuntimeDefault;
  • 调度:podAffinityPreset("")、podAntiAffinityPreset(soft)、nodeAffinityPreset.*、affinity、nodeSelector、tolerations、topologySpreadConstraints、priorityClassName、schedulerName;
  • 更新策略:updateStrategy.type=RollingUpdate;
  • 扩展:extraVolumes、extraVolumeMounts、sidecars、initContainers、extraEnvVars、extraEnvVarsCM、extraEnvVarsSecret、command、args;
  • 可用性:pdb.create=true(minAvailable与maxUnavailable均空时默认 maxUnavailable=1);
  • 其他:lifecycleHooks、automountServiceAccountToken(默认 false)、hostAliases、podLabels、podAnnotations、enableServiceLinks。

组件特有参数补充:

  • queryFrontend:queryFrontend.query.enabled(默认false,仅 Grafana <7.5 的旧版 Jaeger UI 兼容需要)、queryFrontend.query.image.*、queryFrontend.query.configuration、queryFrontend.query.existingConfigmap、queryFrontend.query.containerPorts.grpcJaeger=7777;
  • metricsGenerator:metricsGenerator.remoteWrite(remote_write 配置数组);
  • vulture:vulture.image.repository=REPOSITORY_NAME/grafana-tempo-vulture、vulture.containerPorts.http=8080。

7.5 Traffic Exposure(流量暴露)参数

每个组件都有对应的 service 参数块,结构一致:

名称说明默认
XXX.service.typeService 类型ClusterIP
XXX.service.ports.httpHTTP 端口3200
XXX.service.ports.grpcgRPC 端口9095
XXX.service.nodePorts.http/nodePorts.grpcNodePort""
XXX.service.sessionAffinity会话亲和None
XXX.service.clusterIPCluster IP""
XXX.service.loadBalancerIPLoadBalancer IP""
XXX.service.loadBalancerSourceRangesLB 来源网段[]
XXX.service.externalTrafficPolicy外部流量策略Cluster
XXX.service.annotations额外注解{}
XXX.service.extraPorts额外端口[]

差异点:distributor/ingester/querier的 service 同时暴露nodePorts.grpc;queryFrontend额外暴露queryFrontend.service.ports.grpcJaeger=7777(供 Jaeger query 集成)以及queryFrontend.service.headless.annotations;compactor的 service 只暴露nodePorts.http。

7.6 网络策略(NetworkPolicy)

每个组件默认创建 NetworkPolicy(XXX.networkPolicy.enabled=true),常用子参数:

名称说明默认
networkPolicy.allowExternal不要求 server 标签即可连接true
networkPolicy.allowExternalEgress允许访问任意端口与目的地true
networkPolicy.addExternalClientAccess允许 client 标签为 true 的 Pod 访问(allowExternal=true 时忽略)true
networkPolicy.extraIngress/extraEgress额外入站/出站规则[]
networkPolicy.ingressPodMatchLabels/ingressNSMatchLabels/ingressNSPodMatchLabels跨 Pod/跨命名空间的放行标签匹配{}

7.7 其他参数

ServiceAccount 参数:

名称说明默认
serviceAccount.create创建 ServiceAccounttrue
serviceAccount.nameServiceAccount 名称""
serviceAccount.automountServiceAccountToken自动挂载 SA Tokenfalse
serviceAccount.annotations额外注解{}

Metrics 参数:

名称说明默认
metrics.enabled启用指标false
metrics.serviceMonitor.enabled创建 ServiceMonitorfalse
metrics.serviceMonitor.namespaceServiceMonitor 命名空间""(默认 Release 命名空间)
metrics.serviceMonitor.interval抓取间隔""
metrics.serviceMonitor.scrapeTimeout抓取超时""
metrics.serviceMonitor.labels附加标签(供 Prometheus 发现){}
metrics.serviceMonitor.selectorPrometheus 实例选择器{}
metrics.serviceMonitor.relabelings/metricRelabelings抓取前/入库前重新标记[]
metrics.serviceMonitor.honorLabelshonorLabels 参数false
metrics.serviceMonitor.jobLabeljob 名标签""

VolumePermissions 参数:volumePermissions.enabled(默认false),使用os-shell镜像(默认 tag 为12-debian-12-r50),volumePermissions.containerSecurityContext.runAsUser=0。

Memcached 子 Chart 参数:memcached.enabled=true、memcached.auth.enabled=false、memcached.service.ports.memcached=11211、memcached.resourcesPreset=nano。

八、升级注意事项

Chart 的 README.md 记录了多个破坏性升级要点,升级前务必对照:

  • 升级到 5.0.0:grafana-tempo-query改为独立的 gRPC 服务,不再作为 Jaeger 存储插件工作,Jaeger 不再随grafana-tempo-query镜像分发。影响:移除 Jaeger 暴露的端口;tempo-query暴露的 gRPC 端口已加入 Service 与网络策略以支持与 Jaeger 集成;
  • 升级到 4.0.0:metrics-generator组件由 Deployment 改为 StatefulSet;
  • 升级到 3.8.0:引入镜像校验,可通过global.security.allowInsecureImages=true关闭;
  • 升级到 3.0.0:安全默认值变更,包括runAsGroup从0改为1001、readOnlyRootFilesystem=true、resourcesPreset从none调整为测试可用的最小规格(注意resourcesPreset不面向生产)、global.compatibility.openshift.adaptSecurityContext从disabled改为auto。这些变更可能影响自定义或 init 脚本,如受影响请改回旧默认值;
  • 升级到 2.0.0:移除search_enabled与metrics_generator_enabled配置参数,视为始终启用;
  • 升级到 1.0.0:大量参数重命名,包括端口参数归入containerPorts与ports映射,以及 Memcached 子 Chart 升级到 6.x.x 大版本。

九、故障排查

遇到 Chart 相关常见错误时,可参考 Bitnami 官方的 Helm Chart 故障排查指南(面向通用 Bitnami Chart 问题)。结合本文已覆盖的源码与配置,这里给出几个高频排查切入点:

  • ServiceMonitor 报no matches for kind "ServiceMonitor":确认 Prometheus Operator CRD 已安装(见 6.3 节);
  • 配置未生效:确认tempo.configuration修改后 Pod 已因checksum/config注解变化而滚动更新;
  • 持久化问题:确认ingester.persistence.enabled与 StorageClass 配置,必要时启用volumePermissions修正 PV 属主;
  • 组件间发现异常:确认 gossip-ring headless 服务存在,且各组件带有tempo-gossip-member: "true"标签(由模板自动添加)。

十、结语

Bitnami 的 grafana-tempo Chart 以组件化方式将 Tempo 的 distributor、ingester、querier、compactor、query-frontend、metrics-generator 与 vulture 完整打包到 Kubernetes,开箱即用且保留了高度的可定制性:从追踪协议开关、memcached 缓存、本地/远程存储、Prometheus 与 ServiceMonitor 监控集成,到细粒度的资源、探针、安全上下文与亲和性控制。无论是快速验证还是生产落地,这份 Chart 的 values.yaml 与 templates 目录都是可直接上手研读的第一手参考资料。

  • 云原生
  • 容器编排

【免费下载链接】charts

Bitnami Helm Charts

项目地址:https://gitcode.com/GitHub_Trending/charts30/charts
点击查看免费下载
上一篇:Rufus 制作启动盘教程:5 步写出可用的系统安装盘
下一篇:如何快速安装Instaloader:从pip到Windows独立可执行文件与Android Termux的5种完整方法

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询