kubernetes网络隔离(Networkpolicy)

Kubernetes中的NetworkPolicy用于实现Pod的网络隔离,通过定义允许的流量规则实现“白名单”策略。NetworkPolicy对象通过podSelector选择应用Pod,并通过ingress和egress定义流入和流出规则。CNI网络插件如Calico、Weave和kube-router支持NetworkPolicy,通过iptables规则在宿主机上实现隔离。当Pod被选中时,它会进入拒绝所有状态,除非符合特定的白名单规则。iptables的PREROUTING、FORWARD、OUTPUT等链在其中起到关键作用,确保流量按规则过滤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Kubernetes 里,网络隔离能力的定义,是依靠一种专门的 API 对象来描述的,即:NetworkPolicy。

一个完整的 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:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
  ports:
  - protocol: TCP
    port: 5978

Kubernetes 里的 Pod 默认都是“允许所有”(Accept All)的即:Pod 可以接收来自任何发送方的请求;或者,向任何接收方发送请求。而如果你要对这个情况作出限制,就必须通过 NetworkPol

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kjkdd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值