gpt4 book ai didi

docker - docker 容器可以连接到 SRIOV 虚拟功能吗?

转载 作者:行者123 更新时间:2023-12-02 20:27:29 26 4
gpt4 key购买 nike

使用现有的支持 SR-IOV 的 NIC 会很棒。我想了解是否可以将 docker 容器附加到虚拟功能,以便它们通过 NIC 硬件桥接(而不是虚拟 docker0 桥接)进行通信。

更具体地说,考虑这种情况:
容器 A 连接到 VF#1
容器 B 连接到 VF#2

A 和 B 链接在一起,当它们交换数据时,它应该通过 NIC 上的硬件桥接(而不是 docker0)进行。

以上内容是否在 docker 中原生支持?

如果没有,管道工程可以在这里提供帮助吗? (我听说管道工程可以做惊人的事情)

示例将非常有帮助。

最佳答案

好吧,我认为对管道脚本进行一些修改可以让我们将 VF 附加到容器。以这种方式设置的容器能够相互 ping 通,而无需创建 macvlan 子接口(interface)或软件桥接。这表明适配器中的硬件网桥正在为它们进行 L2 交换。

管道的变化基本上是这样的:

[ "$IFTYPE" = phys ] && {
[ "$VLAN" ] && {
[ ! -d "/sys/class/net/${IFNAME}.${VLAN}" ] && {
ip link add link "$IFNAME" name "$IFNAME.$VLAN" mtu "$MTU" type vlan id "$VLAN"
}
ip link set "$IFNAME" up
IFNAME=$IFNAME.$VLAN
}
# Let's not create the macvlan subinterface
# GUEST_IFNAME=ph$NSPID$CONTAINER_IFNAME
# ip link add link "$IFNAME" dev "$GUEST_IFNAME" mtu "$MTU" type macvlan mode bridge
GUEST_IFNAME=$IFNAME
ip link set "$IFNAME" up
}

ip link set "$GUEST_IFNAME" netns "$NSPID"
ip netns exec "$NSPID" ip link set "$GUEST_IFNAME" name "$CONTAINER_IFNAME"
---

一个更简洁的方法是在脚本中添加一个新参数(“--direct-attach”或其他东西)以不同地处理指定的接口(interface)

关于docker - docker 容器可以连接到 SRIOV 虚拟功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29974520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com