У меня есть небольшой кластер Kubernetes, который я настроил с помощью kubeadm
. Мои серверы подключены через VLAN, в которую мой провайдер позволяет мне добавлять свои серверы.
VLAN добавляет сетевой адаптер ( ens6
), на котором я создал виртуальный адаптер ( veth0
), который назначает каждому серверу IP-адрес в моей VLAN.
соответствующий netcfg
выглядит так:
vlans:
veth0:
id: 0
link: ens6
addresses: [10.96.0.1/24]
Сервер 01 имеет IP 10.96.0.1, Сервер 02 имеет IP 10.96.0.2.
Проверка трафика с помощью 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 = <общедоступный IP для удаленного kubeadm>
. Другой сервер также подключился с использованием IP-адреса VLAN.
Проверка ens3
с использованием nethogs
на обоих серверах. Я вижу внешний трафик от kubelet
и kube-apiserver
.
Как я могу проверить, что оба узла обмениваются данными через VLAN, и как лучше всего отладить, откуда исходит этот избыточный сетевой трафик? Как полностью ограничить трафик кластера в виртуальной локальной сети?
VLAN
с помощью tcpdump
с опцией -e и vlan
.VLAN
:# tcpdump -i eno1 -nn -e vlan
To capture the issue live.
или
# tcpdump -i eno1 -nn -e vlan -w /tmp/vlan.pcap
To write to the capture to a file.