pod路由与IP不匹配

我在裸机CoreOS 1235.6.0中使用Kubernetes 1.5.2,在覆盖networking中使用calico v1.0.2。 容器获得正确的IP地址,但他们的路线不匹配:

/ # ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop qlen 1 link/ipip 0.0.0.0 brd 0.0.0.0 4: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 82:df:73:ee:d1:15 brd ff:ff:ff:ff:ff:ff inet 10.2.154.97/32 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::80df:73ff:feee:d115/64 scope link valid_lft forever preferred_lft forever / # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 169.254.1.1 0.0.0.0 UG 0 0 0 eth0 169.254.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 

结果,podnetworking被破坏了。 传出stream量超时,无论是ICMP还是TCP,无论是主机,同一主机上的另一个吊舱,apiserver还是公共互联网。 唯一有效的交通工具是这个吊舱自己说话。

以下是我如何运行kubelet:

 [Unit] After=network-online.target Wants=network-online.target [Service] Environment=KUBELET_VERSION=v1.5.2_coreos.0 Environment="RKT_OPTS=--uuid-file-save=/var/run/kubelet-pod.uuid \ --volume var-log,kind=host,source=/var/log \ --mount volume=var-log,target=/var/log \ --dns=host \ --volume cni-conf,kind=host,source=/etc/cni \ --mount volume=cni-conf,target=/etc/cni \ --volume cni-bin,kind=host,source=/opt/cni/bin \ --mount volume=cni-bin,target=/opt/cni/bin" ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests ExecStartPre=/usr/bin/mkdir -p /var/log/containers ExecStartPre=/usr/bin/mkdir -p /etc/cni/net.d ExecStartPre=/usr/bin/mkdir -p /opt/cni/bin ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/run/kubelet-pod.uuid ExecStart=/usr/lib/coreos/kubelet-wrapper \ --allow-privileged=true \ --api-servers=https://master.example.com \ --cluster_dns=10.3.0.10 \ --cluster_domain=cluster.local \ --container-runtime=docker \ --kubeconfig=/etc/kubernetes/worker-kubeconfig.yaml \ --network-plugin=cni \ --pod-manifest-path=/etc/kubernetes/manifests \ --tls-cert-file=/etc/kubernetes/ssl/worker.pem \ --tls-private-key-file=/etc/kubernetes/ssl/worker-key.pem ExecStop=-/usr/bin/rkt stop --uuid-file=/var/run/kubelet-pod.uuid Restart=always RestartSec=10 [Install] WantedBy=multi-user.target 

白棉布configuration是标准configuration。

我错了什么configuration?

容器内的寻址和路由看起来很好。 主机上容器外的路由会更有趣。 鉴于你所看到的(veth创build,这意味着CNI插件正在工作),我会检查策略控制器和标准节点正常运行(例如没有错误日志/重新启动循环)。

您也可以尝试从社区获得实时支持:在https://slack.projectcalico.org注&#x518C;

Interesting Posts