Как проверить, применена ли сетевая политика к модулю?

Я пытаюсь ограничить свой openvpn, чтобы разрешить доступ к внутренней инфраструктуре и ограничить его только пространством имен «develop», поэтому я начал с простой политики, которая запрещает весь исходящий трафик и не вижу никакого эффекта или какой-либо обратной связи от кластера, который был применен, я Я прочитал все документы, как официальные, так и нет, и не нашел решения, вот моя политика:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: policy-openvpn
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: openvpn
  policyTypes:
  - Egress
  egress: []

Я применил вышеупомянутую сетевую политику с помощью команды kubectl apply -f policy.yaml, но я не вижу никакого эффекта от этой политики, я все еще могу подключиться к чему-либо из своего модуля openvpn, как отладить это и посмотреть, что не так с моей политикой?

Для меня это похоже на черный ящик, и все, что можно сделать, это метод пробной ошибки, который, похоже, не так, как он должен работать.

Как я могу убедиться, что он находит модули и применяет к ним политику?

Я использую последний кластер Kubernetes, предоставленный GKE

Я заметил, что я не проверял `` использовать сетевую политику '' в настройках облака Google, и после того, как я проверил, мой vpn просто перестал работать, но я не знаю, как это проверить или почему vpn просто позволяет мне подключаться и блокирует все сетевые запросы , очень странно, есть ли способ отладки вместо случайного изменения материала?


person animekun    schedule 22.02.2019    source источник


Ответы (2)


GKE использует ситцевую ткань для реализации сетевой политики. Перед применением сетевой политики необходимо включить сетевую политику для мастера и узлов. Вы можете проверить, включен ли calico, посмотрев модули calico в пространстве имен kube-system.

kubectl get pods --namespace=kube-system

Для проверки сетевых политик вы можете увидеть следующие команды.

kubectl get networkpolicy
kubectl describe networkpolicy <networkpolicy-name>
person newoxo    schedule 27.07.2019

При запуске вы можете проверить метку, используемую для селектора POD:

k describe netpol <networkpolicy-name>
Name:         <networkpolicy-name>
Namespace:    default
Created on:   2020-06-08 15:19:12 -0500 CDT
Labels:       <none>
Annotations:  Spec:
  PodSelector:     app=nginx

Селектор подов покажет вам, какие метки применены и к этому нетполу. Затем вы можете представить все капсулы с этим ярлыком:

k get pods -l app=nginx
NAME                              READY   STATUS    RESTARTS   AGE
nginx-deployment-f7b9c7bb-5lt8j   1/1     Running   0          19h
nginx-deployment-f7b9c7bb-cf69l   1/1     Running   0          19h
nginx-deployment-f7b9c7bb-cxghn   1/1     Running   0          19h
nginx-deployment-f7b9c7bb-ppw4t   1/1     Running   0          19h
nginx-deployment-f7b9c7bb-v76vr   1/1     Running   0          19h
person Trigoman    schedule 09.06.2020