我正在使用“Learn Kubernetes the Hard Way”从头开始设置集群。我注意到跨节点的 pod 无法通信。实际上他们也无法访问互联网。
似乎cni0
作为默认网关的接口没有正确路由数据包。
我没有使用任何网络驱动程序,例如calico
基本flannel
的 L3 路由。
这是我的设置:
2个具有外部ip的节点:
10.10.10.21-22
- POD CIDR -
10.200.1-2.0/24
CNI Bridge conf如下:
{ "cniVersion": "0.3.1", "name": "bridge", "type": "bridge", "bridge": "cnio0", "isGateway": true, "ipMasq": true, "ipam": { "type": "host-local", "ranges": [ [{"subnet": "10.200.2.0/24"}] ], "routes": [{"dst": "0.0.0.0/0"}] }}
Kubelet 服务:
[Unit] Description=Kubernetes Kubelet Documentation=https://github.com/kubernetes/kubernetes After=containerd.service Requires=containerd.service [Service] ExecStart=/usr/local/bin/kubelet \ --config=/var/lib/kubelet/kubelet-config.yaml \ --container-runtime=remote \ --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock \ --image-pull-progress-deadline=2m \ --kubeconfig=/var/lib/kubelet/kubeconfig \ --network-plugin=cni \ --node-ip="10.10.10.22" --address="10.10.10.22" --register-node=true \ --v=2 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
每个节点的路由如下(取自一个节点):
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.200.1.0 10.10.10.21 255.255.255.0 UG 0 0 0 eth2
10.200.2.0 0.0.0.0 255.255.255.0 U 0 0 0 cnio0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
从工作节点 - 我能够从另一个节点到达豆荚。只有在容器内,路由似乎不起作用。
来自 pod 的路由表:
/ # netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.200.2.1 0.0.0.0 UG 0 0 0 eth0
10.200.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
请注意,这里的默认网关是 worker-2 的 10.200.2.1 - 这映射到cni0
worker 2 的接口。
worker-2 workerbins]$ ifconfig
cnio0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.200.2.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::1cc0:7fff:fe7f:1b55 prefixlen 64 scopeid 0x20<link>
ether 0a:58:0a:c8:02:01 txqueuelen 1000 (Ethernet)
RX packets 37801 bytes 2660893 (2.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20394 bytes 2502884 (2.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
请协助