【问题标题】:How to check if network policy have been applied to pod?如何检查网络策略是否已应用于 Pod?
【发布时间】:2019-07-16 13:34:36
【问题描述】:

我正在尝试限制我的 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 连接到任何东西,如何调试它并查看有什么问题我的政策?

这对我来说似乎是一个黑匣子,只能做尝试错误方法,这似乎不是它应该如何工作。

我如何验证它是否找到了 pod 并将策略应用于它们?

我正在使用 GKE 提供的最新 kubernetes 集群

我注意到我没有在谷歌云设置中检查“使用网络策略”,在我检查了我的 vpn 之后就停止了工作,但我不知道如何检查它,或者为什么 vpn 只允许我连接和阻止所有的网络请求,很奇怪,有没有办法调试而不是随机改变东西?

【问题讨论】:

    标签: kubernetes google-kubernetes-engine kubernetes-networkpolicy gke-networking


    【解决方案1】:

    GKE 使用 calico 实现网络策略。在应用网络策略之前,您需要为主节点和节点启用网络网络策略。您可以通过在 kube-system 命名空间中查找 calico pod 来验证是否启用了 calico。

    kubectl get pods --namespace=kube-system
    

    为了验证网络策略,您可以查看以下命令。

    kubectl get networkpolicy
    kubectl describe networkpolicy <networkpolicy-name>
    

    【讨论】:

      【解决方案2】:

      运行时可以检查用于 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 也应用了哪些标签。 然后,您可以通过以下方式呈现所有带有此标签的 pod:

      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
      

      【讨论】:

        猜你喜欢
        • 2019-08-26
        • 2020-06-16
        • 2021-07-15
        • 2014-07-21
        • 2020-11-15
        • 1970-01-01
        • 1970-01-01
        • 2020-11-23
        • 2019-09-25
        相关资源
        最近更新 更多