как использовать docker run в кластере kubernetes с фланелевой сетью

у меня есть кластер кубернетов с фланелью. Работает нормально. Но когда я запускаю контейнер с помощью команды docker run, контейнер не может выйти наружу.

$ docker run --rm -ti centos:7.3.1611 bash
[root@d8a7d18b312a /]# ping 10.33.46.2

10.33.46.2 - еще один узел в моем кластере, и проверка связи не удалась.

ip a show docker0
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
    link/ether 02:42:77:05:f5:6c brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:77ff:fe05:f56c/64 scope link
        valid_lft forever preferred_lft forever

он показывает, что мой docker0 не работает. Я знаю, что он использует cni для контейнера докеров в кластере Kubernetes. Но я не могу найти доступную сеть в

docker network list
NETWORK ID          NAME                DRIVER              SCOPE
a3bd58929a71        bridge              bridge              local
925a55f8f13d        host                host                local
f0c9234fb13f        none                null                local

у меня нет идеала, как использовать docker run в моем кластере.


person kaven    schedule 26.07.2017    source источник


Ответы (1)


Я столкнулся с этой проблемой на моем кластере K8S, где мои агенты Buildkite не могут запускать сборки докеров, потому что у них нет доступа в Интернет. Я решил это, просто указав --network = host в команде Docker, чтобы использовать сеть хоста вместо сети моста по умолчанию. Я не знаю, правильно ли это, но это решило мою проблему.

person Cleber benjamin Warmling    schedule 23.01.2018