NetworkPolicy配置解读

一、配置文件

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:			##标签选择器		
    matchLabels:		##匹配标签
      role: db
  policyTypes:			##策略类型
    - Ingress				##入规则
    - Egress				##出规则
  ingress:					##入规则明细
    - from:					##入规则限制源地址
        - ipBlock:			##ip地址段
            cidr: 172.17.0.0/16		##这些地址允许
            except:					##这些地址不允许
              - 172.17.1.0/24
        - namespaceSelector:		##命名空间选择
            matchLabels:			##标签选择器
              project: myproject
        - podSelector:				##pod选择
            matchLabels:
              role: frontend
      ports:						##源端口和协议
        - protocol: TCP
          port: 6379
  egress:						##出规则明细
    - to:
        - ipBlock:				##目的地址IP段
            cidr: 10.0.0.0/24	
      ports:					##目的端口&协议
        - protocol: TCP
          port: 5978

所以,该网络策略示例:
1.隔离 default 名字空间下 role=db 的 Pod (如果它们不是已经被隔离的话)
2.(Ingress 规则)允许以下 Pod 连接到 default 名字空间下的带有 role=db 标签的所有 Pod 的 6379 TCP 端口:

  • default 名字空间下带有 role=frontend 标签的所有 Pod
  • 带有 project=myproject 标签的所有名字空间中的 Pod
  • IP 地址范围为 172.17.0.0–172.17.0.255 和 172.17.2.0–172.17.255.255 (即,除了 172.17.1.0/24 之外的所有 172.17.0.0/16)

3.(Egress 规则)允许 default 名字空间中任何带有标签 role=db 的 Pod 到 CIDR 10.0.0.0/24 下 5978 TCP 端口的连接。

二、特殊场景

1.默认拒绝所有入站

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

2.允许所有入站

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all-ingress
spec:
  podSelector: {}
  ingress:
  - {}
  policyTypes:
  - Ingress

3.拒绝所有出站

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

4.允许所有出站

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all-egress
spec:
  podSelector: {}
  egress:
  - {}
  policyTypes:
  - Egress
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值