k8s中的NetworkPolicy

K8s NetworkPolicy详解

在 Kubernetes (k8s) 中,NetworkPolicy 是一种用于控制 Pod 之间网络流量的资源对象,它基于 Pod 标签(Labels)和命名空间(namespace)来定义网络访问规则,实现了对 Pod 进出流量的精细化控制。

核心作用

  • 隔离网络流量:默认情况下,k8s 集群中所有 Pod 之间可以自由通信,NetworkPolicy 可限制这种通信,只允许符合规则的流量通过。
  • 定义访问策略:通过规则指定 “哪些 Pod 可以被谁访问” 或 “哪些 Pod 可以访问谁”。
  • 增强安全性:遵循最小权限原则,只开放必要的网络访问,减少攻击面。

工作原理

NetworkPolicy 依赖 网络插件(CNI) 实现(如 Calico、Cilium、Weave Net 等),不同插件对策略的支持可能存在差异。其核心逻辑是:

  1. 基于 Pod 标签和命名空间筛选目标 Pod(策略作用的对象)。
  2. 对目标 Pod 的入站(Ingress)和出站(Egress)流量定义允许 / 拒绝规则。
  3. 规则匹配的维度包括:源 / 目标 Pod 标签、命名空间标签、IP 地址段、端口等。

关键概念

  1. Pod 选择器(podSelector)用于指定策略作用于哪些 Pod(通过标签匹配)。若为空,则匹配命名空间内所有 Pod。

  2. 命名空间选择器(namespaceSelector)用于匹配特定命名空间(通过标签),常与 podSelector 结合使用,限定跨命名空间的流量。

  3. 入站规则(Ingress)控制流入目标 Pod 的流量,可定

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值