Назад | Перейти на главную страницу

Openshift macvlan не получает сетевой трафик

Итак, я боролся с этим последние несколько дней, и у меня заканчиваются идеи. Предпосылки:

Я пытаюсь создать сеть macvlan в своем кластере openshift, чтобы некоторые из моих модулей могли получать внешний многоадресный трафик UDP. (Раньше я использовал сети docker macvlan и надеюсь, что ту же концепцию можно применить к Macvlan Openshift. Пожалуйста, поправьте меня, если я ошибаюсь). Я могу создать дополнительную сеть macvlan и даже успешно прикрепить ее к модулю. Однако по какой-то причине я не могу получить трафик в капсулу. Я пробовал подключиться к тому же нику, которому назначен DHCP для кластера. Я пробовал создать новый ник и связать его. Я пробовал установить оба сетевых адаптера в режим promisc, и это, похоже, не имело никакого эффекта. Я даже попытался создать мост macvlan на самой ОС Node в попытке выполнить эхо-запрос с хост-машины (попытка этого кажется заморозкой всей ОС, поэтому, если бы кто-нибудь мог объяснить это мне, я бы хотел понять, почему) момент, когда мне интересно, создает ли openshift мост macvlan. Вот мои конфигурации:

oc редактировать кластер network.operator.openshift.io

 additionalNetworks:
 - name: macvlan-shore
   namespace: aacn-integration
   type: SimpleMacvlan
   simpleMacvlanConfig:
     master: ens224
     ipamConfig:
       type: static
       staticIPAMConfig:
         addresses:
         - address: 10.20.3.214/26
           gateway: 10.20.3.193

Моя конфигурация развертывания:

apiVersion: v1
kind: DeploymentConfig
metadata:
  name: gps-service
spec:
  selector:
    app: gps-service
  template: 
    metadata:
      annotations:
        k8s.v1.cni.cncf.io/networks: macvlan-shore
      labels:
        name: gps-service
        app: gps-service

Я проверил, что nic действительно виден внутри контейнера как из терминала, так и из консоли Openshift: аннотации:

    k8s.v1.cni.cncf.io/networks: macvlan-shore
    k8s.v1.cni.cncf.io/networks-status: |-
      [{
          "name": "openshift-sdn",
          "interface": "eth0",
          "ips": [
              "10.129.0.67"
          ],
          "dns": {},
          "default-route": [
              "10.129.0.1"
          ]
      },{
          "name": "macvlan-shore",
          "interface": "net1",
          "ips": [
              "10.20.3.214"
          ],
          "mac": "32:c1:91:ec:86:dc",
          "dns": {}
      }]

ip addr изнутри контейнера

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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
3: eth0@if93: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default 
    link/ether 0a:58:0a:81:00:53 brd ff:ff:ff:ff:ff:ff
    inet 10.129.0.83/23 brd 10.129.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::bce7:c2ff:fe2e:f510/64 scope link 
       valid_lft forever preferred_lft forever
4: net1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 16:cb:83:66:5b:13 brd ff:ff:ff:ff:ff:ff
    inet 10.20.3.214/26 brd 10.20.3.255 scope global net1
       valid_lft forever preferred_lft forever
    inet6 fe80::14cb:83ff:fe66:5b13/64 scope link 
       valid_lft forever preferred_lft forever

NIC:

ens224: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        ether 00:50:56:a6:af:d7  txqueuelen 1000  (Ethernet)
        RX packets 936  bytes 85051 (83.0 KiB)
        RX errors 0  dropped 9  overruns 0  frame 0
        TX packets 2730  bytes 461636 (450.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Насколько я могу судить, вроде все в порядке ... но я все еще не могу получить трафик в контейнер. Я просмотрел все файлы журнала, которые смог найти, и ничего. Кто-нибудь сталкивался с чем-то подобным раньше или знает, где я могу начать искать, чтобы это отладить? Спасибо