You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes中基于CIDR实现Calico网络策略管控Pod流量的问题咨询

前置依赖插件
  • 运行状态正常的Kubernetes集群,版本与你选择的Calico版本兼容
  • Calico CNI 插件(本身已内置网络策略支持,无需额外安装网络策略相关第三方插件)
  • 可选:calicoctl 命令行工具,方便后续调试、管理Calico资源
Calico 安装清单修改要点

默认Calico安装清单大部分场景无需大幅调整,仅特殊场景需要修改对应配置:

  • 若使用原生YAML安装Calico,找到calico-node DaemonSet的env配置段:
    • 确认CALICO_NETWORKING_BACKEND参数值与你的网络模式匹配(bird对应BGP模式,vxlan对应VXLAN模式),保证跨节点Pod网络连通
    • 若需要管控Pod到宿主机的流量,可将FELIX_DEFAULTENDPOINTTOHOSTACTION默认值ACCEPT改为DROP,后续可通过网络策略单独放通需要的流量
  • 若使用Calico Operator安装,只需确认Installation自定义资源中spec.calicoNetwork.policy字段未设置为Disabled即可,默认状态下网络策略功能已开启
具体实现步骤

步骤1:确认Calico运行状态

执行kubectl get pods -n calico-system,确认所有Calico相关Pod均处于Running状态,无异常重启。

步骤2:编写基于CIDR的Calico网络策略

Calico支持两种策略资源:K8s原生NetworkPolicy(单命名空间生效)、Calico自定义GlobalNetworkPolicy(集群全局生效),网络策略默认为白名单机制,匹配到放行规则的流量允许通过,未匹配流量默认丢弃。
以下为两个常用场景示例:

场景1:指定命名空间下的业务Pod仅允许10.0.0.0/8网段访问80端口,且Pod仅能访问192.168.1.0/24网段

创建cidr-policy.yaml文件,内容如下:

apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
  name: cidr-traffic-control
  namespace: your-app-namespace # 替换为业务应用所在命名空间
spec:
  selector: app=your-business # 替换为你的业务Pod标签,写all()则匹配该命名空间下所有Pod
  types:
  - Ingress
  - Egress
  # 入站规则
  ingress:
  - action: Allow
    source:
      cidr: 10.0.0.0/8
    destination:
      ports:
      - 80
  # 出站规则
  egress:
  - action: Allow
    destination:
      cidr: 192.168.1.0/24
  # 可选配置:放通DNS解析流量,避免Pod无法解析域名
  - action: Allow
    destination:
      cidr: 10.96.0.0/12 # 替换为你的集群Service CIDR
      ports:
      - 53
    protocol: UDP

场景2:集群全局所有Pod禁止访问172.16.0.0/12网段

使用全局网络策略配置:

apiVersion: projectcalico.org/v3
kind: GlobalNetworkPolicy
metadata:
  name: deny-private-segment
spec:
  selector: all()
  types:
  - Egress
  egress:
  - action: Deny
    destination:
      cidr: 172.16.0.0/12

步骤3:生效网络策略

执行命令kubectl apply -f cidr-policy.yaml即可完成策略下发。

步骤4:验证规则有效性

可在业务Pod中通过ping、curl等工具访问允许/禁止的CIDR地址,确认流量管控符合预期;也可通过calicoctl查看规则匹配计数:
calicoctl get networkpolicy cidr-traffic-control -n your-app-namespace -o wide


内容的提问来源于stack exchange,提问作者solveit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 18:06:03