172 похожих чатов

Как можно ограничить трафик между namespace, но при этом не

заблочить NodePort?
Дело в том, что k8s поднят на baremeal и сервисы публикуются через nodePort, а уже на внешнем nginx прописываются proxy_pass, ssl терминация и всякие специфичные редиректы.

Если применять политику из документации:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-from-other-namespaces
spec:
podSelector:
matchLabels:
ingress:
- from:
- podSelector: {}

К двум например namespace, то внутри пространства трафик ходит, а с другого - нет, собственно как и должно, но при этом блокируется и внешний трафик на NodePort.

3 ответов

19 просмотров

namespaceSelector and podSelector: A single to/from entry that specifies both namespaceSelector and podSelector selects particular Pods within particular namespaces. Be careful to use correct YAML syntax; this policy:

apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: test-network-policy namespace: default spec: podSelector: matchLabels: role: db policyTypes: - Ingress ingress: - from: - ipBlock: cidr: <ПОДСЕТЬ НЖИНКСА>

Николай-Емашев Автор вопроса
Grigoriy Rochev
apiVersion: networking.k8s.io/v1 kind: NetworkPoli...

пробовал вчера и так и сяк. В итоге походу обычными k8s политиками тут не обойтись, решил использовать родной calicoctl. Сначала решил попробовать ограничить namespace, как в примере выше через k8s NP, и применить разрешающее правило через calicoctl - не прокатило. Сейчас рассматриваю вариант, как это сделать средствами calicoctl. Если создать правило, как в документации на глобальную политику, которая будет разрешать входящий трафик к 30000-32000 портам, а потом правила ограничения по NS, то результат тот же. apiVersion: projectcalico.org/v3 kind: NetworkPolicy metadata: name: deny-from-other-namespaces namespace: np1 spec: selector: all() types: - Ingress ingress: - action: Allow source: selector: all() --- apiVersion: projectcalico.org/v3 kind: NetworkPolicy metadata: name: deny-from-other-namespaces namespace: np2 spec: selector: all() types: - Ingress ingress: - action: Allow source: selector: all() --- apiVersion: projectcalico.org/v3 kind: GlobalNetworkPolicy metadata: name: allow-nodeport spec: preDNAT: true applyOnForward: true order: 10 ingress: - action: Allow protocol: TCP destination: selector: has(node-role.kubernetes.io/master) ports: [30000:32000] selector: has(node-role.kubernetes.io/master)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта