Тема
Интеграция VXLAN Tunnel Endpoint (VTEP)
Интеграция VTEP позволяет сторонним устройствам напрямую обмениваться трафиком с подами Cilium через VXLAN.
Внимание
Требуется ядро Linux 5.2+
Примечание
VXLAN VNI должен быть настроен как 2 (соответствует идентичности world в Cilium).
Включение интеграции
Настройка через ConfigMap
Включить интеграцию VTEP можно отредактировав ConfigMap с именем cilium-config.
Отредактируйте ConfigMap:
bashkubectl edit configmap -n kube-system cilium-configДобавьте или обновите следующие параметры:
enable-vtep: установите значение"true", чтобы активировать функциональность VTEP.vtep-endpoint: список IP-адресов удаленных VTEP-устройств (через пробел).vtep-cidr: список CIDR-диапазонов, доступных через эти VTEP (через пробел).vtep-mask: маска подсети (например,255.255.255.0), общая для всех VTEP endpoint.vtep-mac: список MAC-адресов удаленных VTEP-устройств (через пробел).
Важно
Списки vtep-endpoint, vtep-cidr и vtep-mac должны иметь одинаковое количество записей для корректной валидации (соотношение 1:1:1).
Например:
yaml
enable-vtep: "true"
vtep-endpoint: "10.169.72.236 10.169.72.238"
vtep-cidr: "10.1.1.0/24 10.1.2.0/24"
vtep-mask: "255.255.255.0"
vtep-mac: "82:36:4c:98:2e:56 82:36:4c:98:2e:58"Перезапустите Cilium агенты: Чтобы изменения вступили в силу, необходимо перезапустить все поды
cilium:bashkubectl rollout restart ds/cilium -n kube-systemПроверьте статус: После перезапуска убедитесь, что агенты перешли в состояние
Running, и проверьте логи на отсутствие ошибок валидации VTEP.shellkubectl get po -n kube-system -l app.kubernetes.io/name=cilium-agent -w
Тестирование (Linux VM)
Запустите виртуальную машину Linux, расположенную в одном L2 широковещательном домене с узлами Cilium. Для настройки необходимы права суперпользователя root.
Test VTEP Integration
Node IP: 10.169.72.233
+--------------------------+ VM IP: 10.169.72.236
| | +------------------+
| CiliumNode | | Linux VM |
| | | |
| +---------+ | | |
| | busybox | | | |
| | | ens192<------>ens192 |
| +--eth0---+ | | |
| | | +-----vxlan2-------+
| | |
| lxcxxx |
| | |
+------+-----cilium_vxlan--+shell
# создание VXLAN интерфейса
ip link add vxlan2 type vxlan id 2 dstport 8472 local 10.169.72.236 dev ens192
ip link set dev vxlan2 address 82:36:4c:98:2e:56
ip link set vxlan2 up
# Настройка адресации и маршрутизации
# Терминация адреса 10.1.1.236 на VTEP для приема трафика на CIDR 10.1.1.0/24
ip addr add 10.1.1.236/24 dev vxlan2
# Добавление маршрута на Pod CIDR кластера
ip route add 172.20.0.0/16 dev vxlan2
# ARP/FDB (FDB запись для отправки трафика на узел Cilium)
bridge fdb append 00:00:00:00:00:00 dst 10.169.72.233 dev vxlan2Должна появиться связность между подами кластера и Linux VM.
shell
# запуск ping до адреса пода на узле Cilium с Linux VM
ping 172.20.5.204Ограничения
- Несовместимо с IPsec-шифрованием между подами, управляемыми Cilium и устройствами VTEP.