gpt4 book ai didi

cni - 如何使用 podman 复制 docker macvlan 网络?

转载 作者:行者123 更新时间:2023-12-04 15:36:43 31 4
gpt4 key购买 nike

我在用于托管 Unifi 网络 Controller 应用程序的 Fedora 工作站上有一个可用的 docker 实现。我使用 macvlan 为 Controller 分配静态 IP。用于创建 macvlan 的 docker network 命令是:

docker network create -d macvlan -o parent=enp8s0  --subnet 192.168.110.0/24 --gateway 192.168.110.1 --ip-range 192.168.110.224/27 --aux-address 'host=192.168.110.225' unifinet

Controller 运行的容器被分配了一个静态 ip:
docker run --rm --init --network unifinet --ip 192.168.110.226 ....
我想使用 podman 作为替代来实现这一点。有没有有用的在线教程解释如何使用podman使用的CNI的实现?特别是macvlan插件?我无法决定是应该使用静态 IPAM 插件还是本地主机 IPAM 插件。

Brent Baude 的 Leasing Routable IP addresses with Podman containers是一个好的开始,但专注于使用 dhcp IPAM 插件。

谢谢你

最佳答案

我看到你有一个适合你的解决方案,但我建议使用 host-local取而代之的是 IPAM 插件,而不是 static (这需要您显式分配地址)。相应的配置可能如下所示:

{
"cniVersion": "0.3.0",
"name": "unifinet",
"plugins": [
{
"type": "macvlan",
"mode": "bridge",
"master": "eth0",
"ipam": {
"type": "host-local",
"ranges": [
[{
"subnet": "192.168.110.0/24",
"rangeStart": "192.168.110.226",
"rangeEnd": "192.168.110.255",
"gateway": "192.168.110.1"
}]
],
"routes": [
{"dst": "0.0.0.0/0"}
]
}
}
]
}
就像你原来的 docker network create命令,这将从 192.168.110.224/27 范围内分配 192.168.110.0/24 网络上的地址(我实际上已经指定了 192.168.110.226 的范围开始,这将避免分配您保留的 192.168.110.22 地址)与 --aux-address )。

您可以使用 --ip 启动具有特定 IP 的容器。论据 podman run .鉴于上面定义的网络,我们可以运行:
podman run --net unifinet --ip 192.168.110.230 ...

关于cni - 如何使用 podman 复制 docker macvlan 网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59515026/

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