Docker容器间的网络控制工具——Pumba使用

Pumba是一款用于Docker容器的网络混沌工程工具,它能模拟各种网络异常,如延迟、抖动、丢包和带宽限制等。通过Linux内核的tcnetem实现,Pumba可以帮助测试应用在不同网络条件下的性能。本文介绍了Pumba的安装步骤,并展示了如何使用基本的网络控制指令来模拟网络状况,包括设置延迟、抖动、丢包率和带宽限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目:https://github.com/alexei-led/pumba

参考:https://cloud.tencent.com/developer/article/1616202

一、Pumba介绍

将应用部署至Docker中后,我们往往需要测试应用在特定网络状况下的性能。

Pubma 能够完成网络模拟,模拟包括一系列的网络问题(延迟,丢包,使用不同的丢包模型,带宽限制等等)。针对网络模拟,Pumba使用的是Linux内核tc netem实现的。 如果目标container不支持tc的话,Pumba将会使用sidekick 附着到目标容器进行控制。

二、Pumba安装

# Download binary from https://github.com/gaia-adm/pumba/releases
curl -L https://github.com/alexei-led/pumba/releases/download/0.5.2/pumba_darwin_amd64 --
# Linux
curl -L https://github.com/alexei-led/pumba/releases/download/0.5.2/pumba_linux_amd64 --

output /usr/local/bin/pumba
chmod +x /usr/local/bin/pumba && pumba --help

# Install with Homebrew (MacOS only)
brew install pumba && pumba --help

# Use Docker image
docker run gaiaadm/pumba pumba --help

三、基本网络控制指令

(1) 延时

# 将container容器与其他容器间的RTT设置为3000ms,时长2m
pumba netem --duration 2m --tc-image gaiadocker/iproute2 delay --time 3000 container

(2) 抖动

# 将container容器与其他容器间的RTT范围为1000±100ms,呈正态分布,时长2m
pumba netem --duration 2m --tc-image gaiadocker/iproute2 delay --time 1000 ---jitter 100 --distribution normal container

(3) 丢包

# 将container容器与其他容器间的丢包率设置为20%,时长2m
pumba netem --duration 2m --tc-image gaiadocker/iproute2 loss --percent 20 container

(4) 带宽

# 将container容器与其他容器间的带宽限制为100kbit,时长2m
Pumba netem --duration 2m --tc-image gaiadocker/iproute2 rate --rate 100kbit container
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值