程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Kube-Proxy 可观测性最佳实践

balukai 2025-04-23 22:02:55 文章精选 2 ℃

Kube-Proxy 介绍

kube-proxy 是 Kubernetes 集群中的一个网络代理组件,它负责管理和维护集群内服务的网络访问。通过对 Kubernetes 服务的路由规则进行代理,kube-proxy 使得外部或其他服务可以通过统一的 IP 地址和端口来访问后端的 Pods。kube-proxy 根据 Kubernetes 服务的定义,将请求转发到合适的 Pod 上,同时处理负载均衡、网络代理等操作。

kube-proxy 的监控是保障 Kubernetes 网络性能和稳定性的重要措施。通过实时跟踪 kube-proxy 的各种运行指标,可以帮助用户了解网络代理的负载、响应时间、同步状态等信息,识别潜在的瓶颈和问题,并根据监控数据进行优化调整。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

部署 DataKit

DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。

登录观测云控制台,在「集成」 - 「DataKit」选择对应安装方式,当前采用 Linux 主机部署 DataKit。

开启 Prom 采集器

由于 Kube Proxy 对外提供了指标访问,可以采用 Prom采集器进行指标采集。

进入 DataKit 安装目录下的 conf.d/prom 目录,复制 prom.conf.sample 并命名为 kube-proxy.conf。示例如下:

cp prom.conf.sample kube-proxy.conf

调整 kube-proxy.conf 内容如下:

[[inputs.prom]]
  ## Exporter URLs.
  urls = ["http://127.0.0.1:10249/metrics"]

  uds_path = ""

  ignore_req_err = false

  source = "kube-proxy"

  measurement_prefix = ""

  keep_exist_metric_name = false


  election = true

  disable_host_tag = false

  disable_instance_tag = false

  disable_info_tag = false


  [[inputs.prom.measurements]]
    prefix = "etcd_network_"
    name = "etcd_network"
    
  [[inputs.prom.measurements]]
    prefix = "etcd_server_"
    name = "etcd_server"

  [inputs.prom.tags_rename]
    overwrite_exist_tags = false

  [inputs.prom.as_logging]
    enable = false
    service = "service_name"

关键指标

指标

描述

network_programming_duration_seconds_bucket

网络编程操作的时间分布

network_programming_duration_seconds_count

网络编程操作发生的总次数

network_programming_duration_seconds_sum

所有网络编程操作的总耗时

sync_proxy_rules_duration_seconds_bucket

同步代理规则操作的时间分布

sync_proxy_rules_duration_seconds_count

同步代理规则操作的总次数

sync_proxy_rules_duration_seconds_sum

所有同步代理规则操作的总耗时

sync_proxy_rules_endpoint_changes_pending

有多少端点变更正在等待同步

sync_proxy_rules_endpoint_changes_total

同步端点变更的总次数

sync_proxy_rules_iptables_restore_failures_total

IPTables 规则恢复失败的次数

sync_proxy_rules_no_local_endpoints_total

没有本地端点的服务数量

sync_proxy_rules_service_changes_pending

有多少服务配置变更正在等待同步

场景视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 " Kube-Proxy", 选择" Kube-Proxy 监控视图 ",点击"确定"。

监控器(告警)

Kube Proxy 连接数异常

简要描述:Kube Proxy 连接数异常通常表示当前代理节点的连接数超过预期或达到了资源限制(如文件描述符或内存)。这可能会导致新连接无法正常建立,从而影响服务流量的分发和访问。及时监控和处理连接数异常有助于发现潜在的负载问题,并保障集群网络的稳定性和服务的可用性。

Kube Proxy 服务异常

简要描述:Kube Proxy 服务异常(
sync_proxy_rules_no_local_endpoints_total)通常表示某些服务没有可用的后端端点(Pods)。这可能由于 Pod 无法正常调度、网络策略限制或节点资源耗尽导致。该异常会直接影响服务的正常访问,可能导致流量中断或请求失败。通过监控此指标,可以及时发现和修复服务与 Pod 的关联问题,确保流量能够正确路由到目标端点。

Kube Proxy 端点变更数量异常

简要描述:Kube Proxy 端点变更数量异常通常表示服务的后端端点(Endpoints)发生了过多或频繁的变更。这可能由以下原因引起:Pod 的频繁扩缩容或重启、节点的异常离线、网络策略更新等。端点变更过于频繁可能导致 kube-proxy 的代理规则更新滞后,进而影响流量的正确路由,甚至导致服务请求失败。通过监控端点变更数量,可以及时识别潜在的服务或网络异常,并采取措施优化资源分配或代理规则更新机制,确保服务的稳定性和流量分发的及时性。

Tags:

最近发表
标签列表