Сетевая политика Calico Kubernetes запрещает весь трафик и не работает должным образом
Я пытаюсь реализовать некоторые сетевые политики Kubernetes на основе Calico. Я уже настроил Calico в своем кластере, и все модули на базе Calico работают нормально.
В моем кластере есть два модуля.
1. Модуль Nginx
2. Модуль Apache
Мое требование состоит в том, что мне нужно добавить NetworkPolicy для управления сетевым трафиком в модуле Nginx. Я хочу, чтобы исходящий трафик из модуля Nginx в модуль Apache был заблокирован. Однако я хочу выполнить пинг до 8.8.8.8 из модуля Nginx.
Короче говоря, я хочу заблокировать только трафик к поду Apache из модуля Nginx.
Мой файл YAML выглядит следующим образом:
Calico-deny-range-policy-yaml
apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
name: deny-egress-external
namespace: nginx
spec:
selector:
app == 'nginx'
types:
- Egress
egress:
- action: Deny
protocol: TCP
source:
nets:
- 192.168.163.0/25
destination:
nets:
- 192.168.163.204/32
notNets:
- 8.8.8.8/32
Но проблема в том, что модуль Nginx получает эффект «Запретить все». Я не могу пропинговать какие-либо IP-адреса из модуля Nginx. Весь трафик блокируется.
Как я могу настроить исходящий и входящий трафик в соответствии со своими потребностями? Приветствуются любые рабочие примеры для вышеуказанного требования.
1 ответ
Вам необходимо указать модуль назначения в метке селектора пункта назначения, как показано ниже:
apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
name: deny-egress-external
namespace: nginx
spec:
selector:
app == 'nginx'
types:
- Egress
egress:
- action: Deny
protocol: TCP
source:
nets:
- 192.168.163.0/25
destination:
Selector:
app == 'apache'
nets:
- 192.168.163.204/32
notNets:
- 8.8.8.8/32
Пожалуйста, обратитесь к этому документу за сетевой политикой Calico и несколькими примерами .