0

我有一个带有法兰绒的 kubernetes 集群。它工作正常。但是当我用docker run命令启动容器时,容器无法到达外面。

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

10.33.46.2是我集群中的另一个节点,ping 失败。

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 已关闭。我知道它在 kubernetes 集群中将 cni 用于 docker 容器。但我找不到任何可用的网络

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

我没有理想的如何docker run在我的集群中使用。

4

1 回答 1

0

我在我的 K8S 集群上遇到了这个问题,我的 Buildkite 代理无法运行 docker 构建,因为它没有互联网访问权限。我通过简单地在 Docker 命令中通知 --network=host 使用主机网络而不是默认桥接网络来解决它。我不知道这样做是否正确,但是,它解决了我的问题。

于 2018-01-23T15:31:50.733 回答