集成容器服务相关

最近更新时间:2025-09-10 15:19:43

我的收藏

kube-proxy 采集目标状态全部为 DOWN,该如何解决?

TKE 中 kube-proxy 未指定启动参数 --metrics-bind-address,而 metrics 服务默认监听地址为127.0.0.1:10249,因此 Agent 无法根据 pod IP 拉取到 metrics,可通过如下步骤指引进行解决:
1. 登录 容器服务控制台,选择对应地域下的容器集群。
2. 基本信息 > 集群 APIServer 信息 > 通过 kubectl 连接 Kubernetes 集群操作说明根据指引设置 kubectl。
3. 执行命令 kubectl edit ds kube-proxy -n kube-system,在 spec.template.spec.containers.args 中添加启动参数 --metrics-bind-address=0.0.0.0:10249

独立 TKE 集群 Master 节点上组件采集目标状态全部为 DOWN,该如何解决?

独立 TKE 集群 Master 节点的默认安全组入站规则不允许访问部分组件的 metrics 端口,可通过如下步骤指引进行解决:
1. 登录 安全组控制台,选择对应区域。
2. 在安全组搜索框中输入 tke-master-security-for-<tke cluster id>。例如集群 ID。

kube-system/master-metrics-exporter 采集超时?

master-metrics-exporter 是 TKE 团队提供的托管 Master 组件的采集配置,如果出现采集超时,需要去 TKE 控制台 开启跨集群指标采集

ServiceMonitor 采集目标为空,如何排查?

以下面采集配置为例排查:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: demo-exporter
namespace: kube-system
spec:
endpoints:
- interval: 15s
port: metrics
path: /metrics
namespaceSelector:
matchNames:
- ns
selector:
matchLabels:
app: demo
1. 根据 selector 和 namespaceSelector 查找对应 service 是否存在。
这里的 selector 匹配的是 service metadata.labels 中的信息,不是目标 pod 的。对于上面的采集配置,执行下面命令返回选中的 service。
kubectl get services -n ns -l app=demo
2. endpoints 中 port 是否和 service 中 ports.name 对上。
port 对应的是目标 service 中的配置的名字而不是实际端口值。
3. 判断找到 service 对应的 endpoints 或 endpointslices 是否为空。
endpoints 或 endpointslices 存储 service 选中 pod 列表,也是 ServiceMonitor 生成配置的实际采集目标。执行下面命令查看:
kubectl get endpoints <serviceName> -n <serviceNamespace>
kubectl get endpointslices <serviceName> -n <serviceNamespace>
如果 endpoints 和 endpointslices 内容都是空,service 配置有问题或者所有 pod 都没有正常运行。如果 endpoints 为空且 endpointslices 不为空,需要把 tmp-agent 和 tmp-operator 两个组件升级到最新版本,新版本优先使用 endpointslices,具体操作见 文档

ServiceMonitor 采集目标最多只有1000个?

老版本 tmp-operator 生成配置使用 endpoints 作为服务发现,endpoints 最多只能存储1000个 pod 信息。升级 tmp-agent 和 tmp-operator 到最新版本,新版本使用 endpointslices 作为服务发现,没有这个限制。