отношения между K8S iptables и контейнером внутри стручка - PullRequest
0 голосов
/ 14 февраля 2020

Я включил привилегированный режим в контейнере и добавил к нему правило,

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»?

1 Ответ

2 голосов
/ 15 февраля 2020

если вы хотите манипулировать iptables узла, то вам определенно нужно поместить модуль в сеть хоста (hostNetwork: true в пределах spec модуля). После этого достаточно предоставить контейнеру NET_ADMIN и NET_RAW возможности (в containers[i].securityContext.capabilities.add). пример json slice:

  "spec": {
    "hostNetwork": true,
    "containers": [{
      "name": "netadmin",
      "securityContext": {"capabilities": { "add": ["NET_ADMIN", "NET_RAW"] } }

Я не уверен, имеет ли привилегированный режим какое-либо отношение к манипулированию iptables хоста в наши дни.

...