我有一个关于 IPv6 和 Swarm 的问题。
虽然我知道 Docker Swarm 不支持 IPv6 覆盖网络,但我想知道是否有办法从 Docker Swarm 集群访问仅 IPv6(没有双栈,所以这里没有 IPv4)。
我是一个简单的集群,在双栈网络上有 3 个节点,在仅 IPv6 网络上有一个辅助接口(无法触及那个,因此 IPv4 在那里不是一个选项)。
我尝试设置 MacVlan 和 IpVlan,但没有成功。Docker compose 不允许我使用任何 IPv6 相关参数,如果我尝试直接在其中一个主机上创建网络,IPv6 相关参数似乎会消失(但仅在使用 scope=swarm 时):
> docker network create --driver macvlan --ipv6 --subnet fd2b:a315:a66f:75e7::/64 --attachable storagenet
> docker inspect storagenet
[
{
"Name": "storagenet",
"Id": "acde8763026c8b83319f542bf056b1ae3aac1a1dda2918929f296ef83a86cc87",
"Created": "2019-06-20T22:21:01.66099475+02:00",
"Scope": "local",
"Driver": "macvlan",
"EnableIPv6": true,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.96.0/20",
"Gateway": "192.168.96.1"
},
{
"Subnet": "fd2b:a315:a66f:75e7::/64"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
> docker network rm storagenet
> docker network create --driver macvlan --scope=swarm --ipv6 --subnet fd2b:a315:a66f:75e7::/64 --attachable storagenet
> docker inspect storagenet
[
{
"Name": "storagenet",
"Id": "zljkxaebgc54l9l8dbav6oz4k",
"Created": "2019-06-20T20:22:18.596857196Z",
"Scope": "swarm",
"Driver": "macvlan",
"EnableIPv6": true,
"IPAM": {
"Driver": "",
"Options": null,
"Config": []
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": null,
"Options": null,
"Labels": null
}
]
我尝试连接到该网络的每个容器都会抛出一个错误,提示我找不到任何可以租用的 IPv6 地址(这是预料之中的,因为未设置子网)。
您知道从容器本身访问仅 IPv6 网络的任何方法吗?
多谢