我试图限制我的openvpn以允许访问内部基础结构,并且仅通过“开发”命名空间对其进行限制,因此我从简单的策略开始,该策略拒绝所有出口流量,并且从群集中看不到任何影响或任何反馈,应用后,我已经阅读了所有官方文档,也没有阅读所有文档,也没有找到解决方案,这是我的政策:
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 pod连接到任何东西,如何调试它并查看我的政策有什么问题?
对我来说,这似乎是一个黑匣子,只能尝试使用try-error方法,而该方法似乎不起作用。
我如何验证它找到吊舱并对其应用策略?
我正在使用GKE提供的最新kubernetes集群
我注意到我没有在Google云端设置中选中“使用networkpolicy”,并且在我检查vpn刚刚停止工作之后,但我不知道如何检查它,或者为什么vpn只允许我连接并阻止所有网络请求,非常奇怪,有没有一种方法可以代替随机更改内容?
答案 0 :(得分:4)
运行时,您可以检查用于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
Pod选择器将向您显示该netpol也应用了哪些标签。 然后,您可以通过以下方式显示所有带有此标签的豆荚:
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
答案 1 :(得分:0)
GKE使用calico实施网络策略。在应用网络策略之前,需要为主节点和节点启用网络网络策略。您可以通过在kube-system名称空间中查找calico pod来验证是否启用了calico。
kubectl get pods --namespace=kube-system
有关验证网络策略的信息,请参见以下命令。
kubectl get networkpolicy
kubectl describe networkpolicy <networkpolicy-name>