4.2. 使用 QoS 策略限制网络流量
您可以在 OpenShift (RHOSO)网络服务(neutron)质量上创建一个 Red Hat OpenStack Services,以限制 RHOSP 网络、端口、浮动 IP 或网关 IP (技术预览)上的带宽,并丢弃超过指定率的任何流量。
先决条件
-
您的管理员已使用
qos服务插件启用了 Networking 服务。(默认情况下会加载插件。) -
管理员已为您创建一个项目,并为您提供了一个
clouds.yaml文件来访问云。 python-openstackclient软件包驻留在您的工作站上。dnf list installed python-openstackclient
$ dnf list installed python-openstackclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
确认为您的云设置了系统
OS_CLOUD变量:echo $OS_CLOUD
$ echo $OS_CLOUD my_cloudCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果需要,重置变量:
export OS_CLOUD=my_other_cloud
$ export OS_CLOUD=my_other_cloudCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为替代方案,您可以在每次运行
openstack命令时添加--os-cloud <cloud_name> 选项指定云名称。确认
qos服务插件已加载到网络服务中:openstack network qos policy list
$ openstack network qos policy listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有加载
qos服务插件,则您会收到ResourceNotFound错误,并且您必须加载qos服务插件,然后才能继续。如需更多信息,请参阅您的 RHOSO 管理员。识别您要为其创建 QoS 策略的项目的 ID:
openstack project list
$ openstack project listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用上一步中的项目 ID,为项目创建一个 QoS 策略。
示例
在本例中,为
admin项目创建一个名为bw-limiter的 QoS 策略:openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiter
$ openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置策略的规则。
注意您可以在策略中添加多个规则,只要每个规则的类型或方向不同。例如,您可以指定两个带宽限制规则,一个用于出口,另一个具有入口方向。
示例
在本例中,为名为
bw-limiter的策略创建 QoS 入口和出口规则,带宽限制为50000kbps,最大突发大小为50000kbps:openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --ingress bw-limiter openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --egress bw-limiter$ openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --ingress bw-limiter $ openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --egress bw-limiterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以创建一个附加策略的端口,或将策略附加到预先存在的端口。
示例 - 创建带有附加策略的端口
在本例中,策略
bw-limiter与端口port2关联:openstack port create --qos-policy bw-limiter --network private port2
$ openstack port create --qos-policy bw-limiter --network private port2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 - 将策略附加到预先存在的端口
在本例中,策略
bw-limiter与port1关联:openstack port set --qos-policy bw-limiter port1
$ openstack port set --qos-policy bw-limiter port1Copy to Clipboard Copied! Toggle word wrap Toggle overflow