Описание проблемы Пытаюсь настроить Docker с использованием Flannel. Пакет предоставляет файл /lib/systemd/system/docker.service.d/flannel.conf: # cat /lib/systemd/system/docker.service.d/flannel.conf [Service] EnvironmentFile=-/run/flannel/docker # cat /run/flannel/docker DOCKER_OPT_BIP="--bip=172.16.53.1/24" DOCKER_OPT_IPMASQ="--ip-masq=true" DOCKER_OPT_MTU="--mtu=1472" DOCKER_NETWORK_OPTIONS=" --bip=172.16.53.1/24 --ip-masq=true --mtu=1472" Но в сервисе Docker нет использования опций выше: # systemctl cat docker | grep DOCKER_NETWORK_OPTIONS # grep DOCKER_NETWORK_OPTIONS /etc/sysconfig/docker # grep DOCKER_NETWORK_OPTIONS /etc/sysconfig/docker-storage Вместо этого он использует OPTIONS: # systemctl cat docker | grep OPTIONS $OPTIONS \ $DOCKER_STORAGE_OPTIONS # grep OPTIONS /etc/sysconfig/docker OPTIONS="" Версия - flannel-0.21.4-alt1 Дистрибутивы - p10-server-10.1-x86-64, обновленный до Sisyphus Шаги воспроизведения # apt-get install -y flannel etcd docker-engine # systemctl enable --now etcd && sleep 10; systemctl status etcd --no-pager -l # etcdctl put /coreos.com/network/config '{"Network": "172.16.0.0/12"}' # systemctl enable --now flanneld && sleep 5; systemctl status flanneld # systemctl enable --now docker && sleep 5; systemctl status docker --no-pager -l # ip addr show flannel0 # ip addr show docker0 Ожидаемый результат: адрес интерфейса берётся из настроек Flannel (/run/flannel/subnet.env, FLANNEL_SUBNET=172.16.53.1/24) - flannel0: 172.16.53.0/32 - docker0: 172.16.53.1/24 Фактический результат: адрес интерфейса не берётся из настроек Flannel: - flannel0: 172.16.53.0/32 - docker0: 172.17.0.1/16 Дополнительно. Решается следующим образом: # sed -i 's|DOCKER_NETWORK_OPTIONS|OPTIONS|g' /lib/systemd/system/flanneld.service # systemctl daemon-reload # systemctl restart flanneld.service && sleep 5; systemctl status flanneld.service # systemctl restart docker.service && sleep 5; systemctl status docker.service
Это похоже на что-то такое https://github.com/kubernetes-sigs/kubespray/issues/748
Решение совсем неправильное предложено. Эти опции надо передать сервису dockerd.service, а flanneld.service править не надо. Отправили в сизиф пакет docker-engine с исправлением. Если есть есть возможность, перепроверьте пожалуйста.
docker-engine-23.0.3-alt2 -> sisyphus: Mon Apr 17 2023 Alexey Shabalin <shaba@altlinux> 23.0.3-alt2 - fix integration with flannel (ALT#45878), read DOCKER_NETWORK_OPTIONS from /run/flannel/docker