kubectl系列(十一):top 查询pod连接数

news2025/5/13 14:25:11

在 Kubernetes 中,kubectl top 命令默认仅支持查看 Pod 或节点的 CPU/内存资源使用情况,并不直接提供 TCP 连接数的统计功能。若要获取 Pod 的 TCP 连接数,需结合其他工具和方法。以下是具体实现方案:

1. 直接进入容器查看 TCP 连接数

(1) 使用 kubectl exec 执行命令

若容器内已安装 netstat 或 ss 工具:

kubectl exec <pod-name> -n <namespace> -c <container-name> -- \
  netstat -ant | grep 'ESTABLISHED' | wc -l

# 或使用更高效的 ss 命令
kubectl exec <pod-name> -n <namespace> -c <container-name> -- \
  ss -ant state established | wc -l
(2) 示例输出
5  # 当前容器有 5 个已建立的 TCP 连接

2. 从宿主机查看 Pod 的 TCP 连接数

每个 Pod 的容器共享宿主机的网络命名空间(默认情况下),或使用独立命名空间(如 CNI 插件配置)。可通过以下步骤操作:

(1) 找到 Pod 的容器 ID
kubectl get pod <pod-name> -n <namespace> -o jsonpath='{.status.containerStatuses[0].containerID}' | cut -d'/' -f3
# 输出示例:c0e54c1a1a1a
(2) 进入宿主机的网络命名空间
# 找到容器的进程 PID
PID=$(docker inspect -f '{{.State.Pid}}' <container-id>)

# 使用 nsenter 进入网络命名空间
nsenter -t $PID -n ss -ant state established | wc -l

3. 使用 Sidecar 容器监控 TCP 连接

在 Pod 中添加一个 Sidecar 容器,定期采集 TCP 连接数并暴露指标:

(1) 示例 Sidecar 容器配置
apiVersion: v1
kind: Pod
metadata:
  name: app-with-tcp-monitor
spec:
  containers:
  - name: main-app
    image: nginx:latest
  - name: tcp-monitor
    image: alpine:latest
    command: ["sh", "-c"]
    args:
      - while true; do
          netstat -ant | grep ESTABLISHED | wc -l > /var/run/tcp_connections;
          sleep 10;
        done
    volumeMounts:
    - name: tcp-stats
      mountPath: /var/run
  volumes:
  - name: tcp-stats
    emptyDir: {}
(2) 从 Sidecar 读取数据
kubectl exec app-with-tcp-monitor -c tcp-monitor -n <namespace> -- cat /var/run/tcp_connections

4. 通过监控系统采集 TCP 连接数

集成 Prometheus + Grafana 实现自动化监控:

(1) 使用 kube-state-metrics 或自定义 Exporter
  • 部署 kube-ss 等工具,暴露 TCP 连接指标。

  • 或编写自定义 Exporter,通过 ss/netstat 采集数据。

(2) 查询 Prometheus
sum by (pod) (
  node_netstat_Tcp_CurrEstab{pod="<pod-name>"}
)

5. 快速脚本统计命名空间内所有 Pod 的 TCP 连接数

#!/bin/bash
NAMESPACE="default"

# 遍历所有 Pod
kubectl get pods -n $NAMESPACE -o name | while read POD; do
  POD_NAME=${POD#pod/}
  echo "Pod: $POD_NAME"
  # 遍历每个容器
  kubectl get pod $POD_NAME -n $NAMESPACE -o jsonpath='{.spec.containers[*].name}' | tr ' ' '\n' | while read CONTAINER; do
    COUNT=$(kubectl exec $POD_NAME -n $NAMESPACE -c $CONTAINER -- \
      sh -c "ss -ant state established 2>/dev/null | wc -l" 2>/dev/null)
    echo "  Container $CONTAINER: $COUNT TCP 连接"
  done
done

输出示例

Pod: web-app-5dfd6f846d-xj7hw
  Container main-app: 12 TCP 连接
  Container istio-proxy: 8 TCP 连接

总结

方法适用场景优点缺点
kubectl exec快速临时检查无需额外配置需容器内有 netstat/ss 工具
宿主机检查深度排查网络问题不依赖容器工具需登录宿主机,操作复杂
Sidecar 监控长期监控需求数据持久化增加资源开销
Prometheus生产环境自动化监控集成告警和可视化需部署和维护监控系统

注意事项

1)容器工具缺失
若容器内无 netstat/ss,可挂载宿主机二进制文件(需兼容容器架构):

volumeMounts:
- name: host-bin
  mountPath: /usr/bin/netstat
  readOnly: true
volumes:
- name: host-bin
  hostPath:
    path: /usr/bin/netstat

2)安全权限
宿主机命令可能需要 root 权限,确保 ServiceAccount 有足够权限。

3)性能影响
高频采集可能影响容器性能,建议间隔不低于 30 秒。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2373661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小芯片大战略:Chiplet技术如何重构全球半导体竞争格局?

在科技飞速发展的今天&#xff0c;半导体行业作为信息技术的核心领域之一&#xff0c;其发展速度和创新水平对全球经济的发展具有举足轻重的影响。然而&#xff0c;随着芯片制造工艺的不断进步&#xff0c;传统的单片集成方式逐渐遇到了技术瓶颈&#xff0c;如摩尔定律逐渐逼近…

普通IT的股票交易成长史--股价起伏的真相-缺口(2)

声明&#xff1a;本文章的内容只是自己学习的总结&#xff0c;不构成投资建议。价格行为理论学习可参考简介中的几位&#xff0c;感谢他们的无私奉献。 送给自己的话&#xff1a; 仓位就是生命&#xff0c;绝对不能满仓&#xff01;&#xff01;&#xff01;&#xff01;&…

MindSpore框架学习项目-ResNet药物分类-模型优化

目录 5.模型优化 5.1模型优化 6.结语 参考内容&#xff1a; 昇思MindSpore | 全场景AI框架 | 昇思MindSpore社区官网 华为自研的国产AI框架&#xff0c;训推一体&#xff0c;支持动态图、静态图&#xff0c;全场景适用&#xff0c;有着不错的生态 本项目可以在华为云modelar…

Kubernetes(k8s)学习笔记(八)--KubeSphere定制化安装

1执行下面的命令修改上一篇中yaml文件来实现定制化安装devops kubectl edit cm -n kubesphere-system ks-installer 主要是将devops几个配置由False改为True 然后使用下面的命令查看安装日志 kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l …

养生:为健康生活筑牢根基

养生并非遥不可及的目标&#xff0c;而是贯穿于日常生活的点滴之中。从饮食、运动到心态调节&#xff0c;每一个环节都对我们的健康有着重要意义。以下为你详细介绍养生的实用策略&#xff0c;助力你开启健康生活模式。 饮食养生&#xff1a;科学搭配&#xff0c;滋养生命 合…

Linux510 ssh服务 ssh连接

arning: Permanently added ‘11.1.1.100’ (ECDSA) to the list of known hosts. rooot11.1.1.100’s password: Permission denied, please try again. rooot11.1.1.100’s password: Permission denied, please try again 还没生效 登不上了 失效了 sshcaozx26成功登录 …

关键点检测--使用YOLOv8对Leeds Sports Pose(LSP)关键点检测

目录 1. Leeds Sports Pose数据集下载2. 数据集处理2.1 获取标签2.2 将图像文件和标签文件处理成YOLO能使用的格式 3. 用YOLOv8进行训练3.1 训练3.2 预测 1. Leeds Sports Pose数据集下载 从kaggle官网下载这个数据集&#xff0c;地址为link&#xff0c;下载好的数据集文件如下…

独立按键控制LED

目录 1.独立按键介绍 2.原理图 3.C51数据运输 解释&#xff1a;<< >> ​编辑 解释&#xff1a;& | 解释&#xff1a;^ ~ ​编辑 4.C51基本语句 5.按键的跳动 6.独立按键控制LED亮灭代码 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1…

计算机科技笔记: 容错计算机设计03 系统可信性的度量 偶发故障期 浴盆曲线 韦布尔分布

可靠性 简化表达式 偶发故障期&#xff0c;系统发生故障概率趋近于一个常数 浴盆曲线 MTTF和计算 韦布尔分布 马尔可夫链 可靠度

爬虫准备前工作

1.Pycham的下载 网址&#xff1a;PyCharm: The only Python IDE you need 2.Python的下载 网址&#xff1a;python.org&#xff08;python3.9版本之后都可以&#xff09; 3.node.js的下载 网址&#xff1a;Node.js — 在任何地方运行 JavaScript&#xff08;版本使用18就可…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】7.1 主流可视化工具对比(Tableau/Matplotlib/Python库)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 第七章 可视化工具集成&#xff1a;Tableau、Matplotlib与Python库深度对比7.1 主流可视化工具对比&#xff1a;技术选型的决策框架7.1.1 工具定位与核心能力矩阵7.1.2 数据…

操作系统实验习题解析 上篇

孤村落日残霞&#xff0c;轻烟老树寒鸦&#xff0c;一点飞鸿影下。 青山绿水&#xff0c;白草红叶黄花。 ————《天净沙秋》 白朴 【元】 目录 实验一&#xff1a; 代码&#xff1a; 解析&#xff1a; 运行结果&#xff1a; 实验二&#xff1a; 代码解析 1. 类设计 …

基于Arduino Nano的DIY示波器

基于Arduino Nano的DIY示波器&#xff1a;打造属于你的口袋实验室 前言 在电子爱好者的世界里&#xff0c;示波器是不可或缺的工具之一。它能够帮助我们观察和分析各种电子信号的波形&#xff0c;从而更好地理解和调试电路。然而&#xff0c;市面上的示波器价格往往较高&…

渠道销售简历模板范文

模板信息 简历范文名称&#xff1a;渠道销售简历模板范文&#xff0c;所属行业&#xff1a;其他 | 职位&#xff0c;模板编号&#xff1a;KRZ3J3 专业的个人简历模板&#xff0c;逻辑清晰&#xff0c;排版简洁美观&#xff0c;让你的个人简历显得更专业&#xff0c;找到好工作…

JAVA练习题(1) 卖飞机票

import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scnew Scanner(System.in);System.out.println("请输入飞机的票价&#xff1a;");int pricesc.nextInt();System.out.println("请输入月份&#xff1a;");…

杆件的拉伸与压缩变形

杆件的拉伸与压缩 第一题 Q u e s t i o n \mathcal{Question} Question 图示拉杆沿斜截面 m − m m-m m−m由两部分胶合而成。设在胶合面上许用拉应力 [ σ ] 100 MPa [\sigma]100\text{MPa} [σ]100MPa&#xff0c;许用切应力 [ τ ] 50 MPa [\tau]50\text{MPa} [τ]50MP…

企业开发平台大变革:AI 代理 + 平台工程重构数字化转型路径

在企业数字化转型的浪潮中&#xff0c;开发平台正经历着前所未有的技术革命。从 AST&#xff08;抽象语法树&#xff09;到 AI 驱动的智能开发&#xff0c;从微服务架构到信创适配&#xff0c;这场变革不仅重塑了软件开发的底层逻辑&#xff0c;更催生了全新的生产力范式。本文…

《汽车噪声控制》复习重点

题型 选择 填空 分析 计算 第一章 噪声定义 不需要的声音&#xff0c;妨碍正常工作、学习、生活&#xff0c;危害身体健康的声音&#xff0c;统称为噪声 噪声污染 与大气污染、水污染并称现代社会三大公害 声波基本概念 定义 媒质质点的机械振动由近及远传播&am…

Linux——MySQL约束与查询

表的约束 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合 法性&#xff0c;从业务逻辑角度保证数据的正确性。比如有一个字段是email&#xff0c;要求是唯一的。 表的约束是为了防止插入不合法的…

Asp.Net Core IIS发布后PUT、DELETE请求错误405

一、方案1 1、IIS管理器&#xff0c;处理程序映射。 2、找到aspNetCore&#xff0c;双击。点击请求限制...按钮&#xff0c;并在谓词选项卡上&#xff0c;添加两者DELETE和PUT. 二、方案2 打开web.config文件&#xff0c;添加<remove name"WebDAVModule" />&…