我有一个使用kubeadm
设置的小型Kubernetes集群。我的服务器通过VLAN连接,我的提供商允许我将服务器添加到其中。
VLAN添加了一个网络适配器(ens6
),我在其上创建了一个虚拟适配器(veth0
),该虚拟适配器为我的VLAN上的每个服务器分配了一个IP。
相关的netcfg
如下所示:
vlans:
veth0:
id: 0
link: ens6
addresses: [10.96.0.1/24]
服务器01的IP为10.96.0.1,服务器02的IP为10.96.0.1。
使用bmon
检查流量,我在群集中服务器之间的veth0
接口上看到一些流量。
RX (S01) TX (S01)
4.77GiB 60.28GiB
RX (S02) TX (S02)
59.70GiB 5.48GiB
在查看我的公共LAN接口(ens3
)时,我发现群集上的流量非常可疑,几乎没有部署任何应用程序:
RX (S01) TX (S01)
46.60GiB 304.84GiB
RX (S02) TX (S02)
309.69GiB 40.86GiB
我使用此命令kubeadm init --pod-network-cidr 10.98.0.0/16 --apiserver-advertise-address=10.96.0.1 --apiserver-cert-extra-sans=<public ip for remote kubeadm>
自举了集群。另一台服务器也使用VLAN IP加入。
在两台服务器上都使用ens3
检查nethogs
,我看到来自kubelet
和kube-apiserver
的外部流量。
如何验证两个节点都通过VLAN进行通信,以及如何最好地调试这些多余的网络流量来自何处?如何将群集流量完全限制到虚拟LAN?