k8s pod网络故障注入,命令行实现

工具介绍

  • crictl工具:用于查询k8s pod和容器信息
  • nsenter工具:用于进入容器的网络命名空间
  • tc工具:注入网络故障

实现k8s pod级别网络故障

  1. 首先查找故障注入的pod的宿主机,并ssh登陆进去
bash 复制代码
kubectl get pod -n <namespace> -owide
  1. 使用 kubectl 获取 Pod 的容器 ID,例如第1个
bash 复制代码
kubectl get pod <pod-name> -o jsonpath='{.status.containerStatuses[0].containerID}' | cut -d'/' -f3
  1. 使用crictl获取容器的 PID
bash 复制代码
crictl inspect --output=go-template --template="{{.info.pid}}" <pod_container_id>
  1. 使用nsenter进入网络命名空间
bash 复制代码
nsenter -n -t $pod_pid

进入网络空间前后对比,进入网络空间后,eth0的ip应为pod ip。

bash 复制代码
(tob_env) root@n73-001-014:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.72.3.100  netmask 255.255.255.0  broadcast 10.72.3.250
        inet6 fe50::216:3eff:fe50:fe50  prefixlen 64  scopeid 0x20<link>
        ether 00:36:3e:36:5b:36  txqueuelen 1000  (Ethernet)
        RX packets 38875633274  bytes 15496787166310 (14.0 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 31492296646  bytes 17143859349471 (15.5 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(tob_env) root@n73-001-014:~# nsenter -n -t 501532

(tob_env) root@n73-001-014:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 172.26.25.6  netmask 255.255.255.255  broadcast 172.26.25.6
        inet6 fe80::b322:e9ff:fe7e:b322  prefixlen 64  scopeid 0x20<link>
        ether ba:22:e9:22:b3:22  txqueuelen 0  (Ethernet)
        RX packets 8077026811  bytes 1361131463473 (1.2 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6472821861  bytes 1134318477480 (1.0 TiB)
        TX errors 0  dropped 1 overruns 0  carrier 0  collisions 0
  1. 进入网络命名空间后,你就可以在该命名空间中执行各种网络相关的命令了

    • 通过tc工具注入网络故障
bash 复制代码
tc qdisc add dev eth0 root netem loss 100%
sleep 300
tc qdisc del dev eth0 root
相关推荐
2301_780789662 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
todoitbo4 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
星融元asterfusion4 小时前
工业网络升级实战:100G 双轨 Leaf-Spine 架构破解高并发出货网络瓶颈
网络·架构·spine
Da Da 泓4 小时前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
云和数据.ChenGuang5 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
ESDWAN6 小时前
企业网络监控应该监测哪些目标?网关、网络节点还是业务系统?
服务器·网络·php
mennekes6 小时前
临时用电线路标识:插头颜色、钟面标识配套规范
运维·网络·科技·安全·制造
发光小北7 小时前
EtherNet/IP 转 ModbusTCP 网关现场应用中会遇到什么问题?
服务器·网络·tcp/ip
海宇大数据7 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化持牌网络小贷小微商户极速助业贷秒级全维风险决策网关
网络·人工智能·架构·自动化
tongyiixiaohuang8 小时前
供应商主数据同步实战:从易快报到金蝶云星空的单一策略落地
java·网络·数据库