Я включил привилегированный режим в контейнере и добавил к нему правило,
iptables -N udp2rawDwrW_191630ce_C0
iptables -F udp2rawDwrW_191630ce_C0
iptables -I udp2rawDwrW_191630ce_C0 -j DROP
iptables -I INPUT -p tcp -m tcp --dport 4096 -j udp2rawDwrW_191630ce_C0
и kt exec
в контейнер и использую iptables --table filter -L
, я вижу добавленные правила.
/ # iptables --table filter -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
udp2rawDwrW_191630ce_C0 tcp -- anywhere anywhere tcp dpt:4096
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain udp2rawDwrW_191630ce_C0 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
Когда я вошел в систему на узле, где находится контейнер, и запустил sudo iptalbes --table filter -L
, я не смогу увидеть тот же результат.
Я думал, что по умолчанию previleged
отброшен, потому что контейнер может использовать его, чтобы изменить что-то вроде iptables в узле, однако это выглядит не так.
Поэтому мой вопрос: «Какова связь между i8s K8S и контейнером внутри модуля?» и «почему мы запрещаем пользователю изменять iptables контейнера без поля privileged
»?