Чӣ гуна метавон сиёсати шабака (NetworkPolicy) дар Kubernetes танзим кард, то подҳо аз як namespace бо подҳо аз дигар namespace ҳамкорӣ накунанд?
sobes.tech AI
Ҷавоб аз AI
Для ограничения взаимодействия подов из одного namespace с подами из другого в Kubernetes можно использовать объект NetworkPolicy с указанием namespaceSelector.
Пример NetworkPolicy, который разрешает входящий трафик только от подов внутри того же namespace и блокирует все остальные:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-cross-namespace
namespace: target-namespace
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- podSelector: {} # Разрешаем трафик только от подов внутри того же namespace
Если нужно явно запретить трафик из других namespace, можно не указывать разрешающие правила для них, так как по умолчанию все запрещено, если есть хотя бы одна NetworkPolicy, применённая к подам.
Для более сложных сценариев можно использовать namespaceSelector, например, чтобы разрешить трафик только из определённых namespace:
from:
- namespaceSelector:
matchLabels:
name: allowed-namespace
podSelector: {}
Таким образом, чтобы полностью запретить взаимодействие между namespace, достаточно создать в каждом namespace NetworkPolicy, разрешающую трафик только внутри namespace.