Создание маршрута в основной таблице “main”

1apiVersion: network.deckhouse.io/v1alpha1
2kind: RoutingTable
3metadata:
4  name: myrt-main
5spec:
6  ipRoutingTableID: 254 # main routing table id is 254
7  routes:
8  - destination: 10.0.0.0/8
9    gateway: 192.168.0.1
10  nodeSelector:
11    node-role.deckhouse.io: load-balancer

Согласно данному ресурсу на узлах, попадающих под nodeSelector, будет создан маршрут 10.0.0.0/8 via 192.168.0.1:

1$ ip -4 route ls
2...
310.0.0.0/8 via 192.168.0.1 dev eth0 realm 216
4...

Инструкция realm 216 в маршруте используется как маркер для идентификации маршрута под управлением модуля (d8 hex = 216 dec).

Создание маршрута в дополнительной таблице

1apiVersion: network.deckhouse.io/v1alpha1
2kind: RoutingTable
3metadata:
4  name: myrt-extra
5spec:
6  routes:
7  - destination: 0.0.0.0/0
8    gateway: 192.168.0.1
9  nodeSelector:
10    node-role.deckhouse.io: load-balancer
11status:
12  ipRoutingTableID: 10000 # если spec.ipRoutingTableID не указан, он будет сгенерирован автоматически и размещён в status
13  ...

Согласно данному ресурсу на узлах, попадающих под nodeSelector, будет создан маршрут 0.0.0.0/0 via 192.168.0.1 в таблице 10000:

1$ ip -4 route ls table 10000
2default via 192.168.0.1 dev eth0 realm 216

Создание ip rule

1apiVersion: network.deckhouse.io/v1alpha1
2kind: IPRuleSet
3metadata:
4  name: myiprule
5spec:
6  rules:
7  - selectors:
8      from:
9      - 192.168.111.0/24
10      - 192.168.222.0/24
11      to:
12      - 8.8.8.8/32
13      - 172.16.8.0/21
14      sportRange:
15        start: 100
16        end: 200
17      dportRange:
18        start: 300
19        end: 400
20      ipProto: 6
21    actions:
22      lookup:
23        routingTableName: myrt-extra
24    priority: 50
25  nodeSelector:
26    node-role.deckhouse.io: load-balancer

Согласно данному ресурсу на узлах, попадающих под nodeSelector, будет создан ip rule:

1$ ip rule list
2...
350: from 192.168.111.0/24 to 172.16.8.0/21 ipproto tcp sport 100-200 dport 300-400 lookup 10000 realms 216
450: from 192.168.222.0/24 to 8.8.8.8 ipproto tcp sport 100-200 dport 300-400 lookup 10000 realms 216
550: from 192.168.222.0/24 to 172.16.8.0/21 ipproto tcp sport 100-200 dport 300-400 lookup 10000 realms 216
650: from 192.168.111.0/24 to 8.8.8.8 ipproto tcp sport 100-200 dport 300-400 lookup 10000 realms 216
7...