如何使用网络策略允许外部流量并拒绝Pod间通信?

我正在我的kubernetes集群中设置我的默认名称空间,以允许来自外部节点/主机的传入流量,但拒绝任何可能的pod间通信。我有2个Nginx pod,我想将它们完全隔离在集群内部。这两个pod均使用nodePort类型的服务公开,并且可以从外部进行访问。

我首先应用以下默认拒绝网络策略:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
  - Ingress

然后,我尝试使用以下网络策略允许外部流量:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-external
spec:
  podSelector: {}
  ingress:
    - from:
        - ipBlock:
            cidr: 192.168.0.0/16

但是不幸的是,我无法从集群的内部和外部访问该服务。

运行示例: -macOS High Sierra v10.13.6 -minikube v1.5.2->使用网络插件= cilium -kubectl v1.16.2

我怎么面对这个问题?

ff136158 回答:如何使用网络策略允许外部流量并拒绝Pod间通信?

如果要允许任何传入的流量到除群集中的流量之外的任何Pod,可以在允许来自所有IP的流量的规则中使用“除外”符号。在下面的内容中,将172.17.1.0/24替换为包含您的广告连播的cidr:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-internal
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  ingress:
  - from:
    - ipBlock:
        cidr: 0.0.0.0/0
        except:
        - 172.17.1.0/24
本文链接:https://www.f2er.com/3159753.html

大家都在问