kubernetes之NetworkPolicy

一、背景

        如果希望在OSI模型中第三层或第四层控制网络流量,则应该使用NetworkPolicy这个对象;NetworkPolicy以应用为中心,主要用来控制Pod网络流量的进入和流出

二、实例说明

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: 
  name: network-policy-test
  namespace: luoxianming
spec: 
  podSelector: 
    matchLabels: 
      app: web
  policyTypes: 
    - Ingress
    - Egress
  ingress: 
    - from: 
        - ipBlock: 
            cidr: 172.17.0.0/16
            except: 
              - 172.17.0.0/24
        - namespaceSelector: 
            matchLabels: 
              project: luoxianming
        - podSelector: 
            matchLabels: 
              app: web
      ports: 
        - protocol: TCP
          port: 8080 
  egress: 
    - to: 
        - ipBlock: 
            cidr: 10.0.0.0/24
      ports: 
        - protocol: TCP
          port: 8080

三、参数解释

podSelector: 每个NetworkPolicy中都包括一个podSelector,表示一组Pod进行选择

policyTypes: 每个NetworkPolicy都包含一个policyTypes列表,其中包含Ingress或Egress或者两者兼有;表示对给定的Pod是控制Ingress还是Egress还是两者兼有

Ingress: Ingress白名单列表

egress: egress白名单列表

四、选择器 

在Ingress或egress部分中,在from或to字段部分可以定义如下四种选择器:

podSelector: 选择特定Pod

namespaceSelector: 选择特定的名称空间,应将所有Pod用于入站流量或出站流量

ipBlock: 选择特定IP,这些IP应该是集群外部IP

namespaceSelecotr和PodSelecotr: 一个指定 namespaceSelector 和 podSelector 的 to/from 条目选择特定名字空间中的特定 Pod

 五、参考文档链接

网络策略 | Kubernetes

仅做学习笔记参考使用

你可能感兴趣的:(kubernetes,kubernetes,容器,云原生)