| Summary: | Не использует опции Docker: DOCKER_NETWORK_OPTIONS → OPTIONS | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Evgeny Shesteperov <alimektor> |
| Component: | flannel | Assignee: | Alexey Shabalin <shaba> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | geochip, shaba |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
Это похоже на что-то такое https://github.com/kubernetes-sigs/kubespray/issues/748 Решение совсем неправильное предложено. Эти опции надо передать сервису dockerd.service, а flanneld.service править не надо. Отправили в сизиф пакет docker-engine с исправлением. Если есть есть возможность, перепроверьте пожалуйста. |
Описание проблемы Пытаюсь настроить 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