Итак, я боролся с этим последние несколько дней, и у меня заканчиваются идеи. Предпосылки:
Я пытаюсь создать сеть 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
Насколько я могу судить, вроде все в порядке ... но я все еще не могу получить трафик в контейнер. Я просмотрел все файлы журнала, которые смог найти, и ничего. Кто-нибудь сталкивался с чем-то подобным раньше или знает, где я могу начать искать, чтобы это отладить? Спасибо