newrelic/nri-kubernetesNewRelic Kubernetes 集成镜像(v3及以上版本)是 NewRelic 官方提供的容器化监控组件,用于在 Kubernetes 集群中实现全栈可观测性。该镜像通过收集集群资源指标、应用日志、事件数据,并将其标准化后发送至 NewRelic 平台,支持用户通过统一控制台监控集群健康状态、性能瓶颈及资源利用率,助力 DevOps 和 SRE 团队实现高效故障排查与性能优化。
NewRelic 官方推荐通过 Helm Chart 部署,支持自动配置 RBAC、资源限制、自定义参数等。
步骤 1:添加 Helm 仓库
bashhelm repo add newrelic [***] helm repo update
步骤 2:部署集成组件
bashhelm install newrelic-k8s-integration newrelic/nri-bundle \ --namespace newrelic --create-namespace \ --set global.licenseKey=<YOUR_NEW_RELIC_LICENSE_KEY> \ --set global.cluster=<YOUR_CLUSTER_NAME> \ --set newrelic-infrastructure.enabled=true \ # 启用基础指标采集 --set logs.enabled=true \ # 启用日志采集(可选) --set kubeEvents.enabled=true # 启用事件采集(可选)
参数说明:
global.licenseKey:必填,NewRelic 账户许可证密钥(从 NewRelic 控制台获取)。global.cluster:必填,集群唯一标识名称(用于多集群数据区分)。newrelic-infrastructure.enabled:默认 true,启用节点/Pod 指标采集。logs.enabled:默认 false,需手动开启日志采集(依赖 fluent-bit 组件)。若需在非 K8s 环境测试(如单机 Docker),可通过 docker run 命令启动(仅支持基础指标采集,功能有限):
bashdocker run -d \ --name newrelic-k8s-integration \ --net=host \ --privileged \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /sys:/sys:ro \ -v /proc:/proc:ro \ -v /var/lib/kubelet:/var/lib/kubelet:ro \ -e NEW_RELIC_LICENSE_KEY=<YOUR_NEW_RELIC_LICENSE_KEY> \ -e CLUSTER_NAME=<YOUR_CLUSTER_NAME> \ -e NEW_RELIC_LOG_LEVEL=info \ newrelic/k8s-integration:3.XX.X # 替换为具体版本标签(如 3.30.0)
卷挂载说明:
/var/run/docker.sock:获取容器运行时数据(需 Docker 环境)。/sys//proc:采集系统级指标(CPU/内存/磁盘)。/var/lib/kubelet:获取 Kubelet 指标(仅在 K8s 节点运行时有效)。| 环境变量 | 说明 | 是否必填 | 默认值 |
|---|---|---|---|
NEW_RELIC_LICENSE_KEY | NewRelic 许可证密钥 | 是 | - |
CLUSTER_NAME | 集群名称(多集群监控唯一标识) | 是 | - |
NEW_RELIC_LOG_LEVEL | 日志级别(debug/info/warn/error) | 否 | info |
HTTP_PROXY | 代理服务器地址(如 [***]) | 否 | - |
NEW_RELIC_METRICS_EXCLUDE | 排除指定指标(如 kube.pod.restarts),逗号分隔 | 否 | - |
通过挂载配置文件(如 newrelic-infrastructure.yml)覆盖默认行为,支持自定义指标采集规则、日志过滤等。示例配置文件路径:
yaml# 挂载路径:/etc/newrelic-infrastructure/newrelic-infrastructure.yml metrics: exclude: - metric_names: ["kube.pod.cpu.utilization"] # 排除指定指标 logs: enabled: true maxSize: 10MB # 单日志文件最大体积
Kubernetes 环境:检查命名空间 newrelic 下的 Pod 状态:
bashkubectl get pods -n newrelic
预期输出包含 newrelic-infrastructure-xxxx(指标采集)、fluent-bit-xxxx(日志,若启用)等 Running 状态的 Pod。
数据验证:登录 NewRelic 控制台,访问 Infrastructure > Kubernetes,搜索集群名称,确认指标/日志数据已正常上报。
[***])。newrelic 服务账户已绑定 cluster-reader 角色(Helm 部署默认配置,手动部署需手动创建 RBAC 规则)。fluent-bit Pod 日志(kubectl logs -n newrelic <fluent-bit-pod-name>),确认日志路径配置正确(默认采集 /var/log/pods/*/*.log)。helm upgrade 更新至最新版本:
bashhelm repo update helm upgrade newrelic-k8s-integration newrelic/nri-bundle -n newrelic

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务