当前位置: 首页 > news >正文

k8s 中使用 Service 访问时NetworkPolicy不生效问题排查

背景

针对一个服务如下NetworkPolicy, 表示只有n9e命名空间的POD才能访问 k8s-man 服务

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:name: k8s-mannamespace: n9elabels:app: k8s-manversion: v1
spec:podSelector:matchLabels:app: k8s-manversion: v1ingress:- ports:- protocol: TCPfrom:- namespaceSelector:matchLabels:project: n9e- ipBlock:cidr: 172.16.239.0/24- ipBlock:cidr: 172.16.46.0/24policyTypes:- Ingress

NetworkPolicy 创建后, 在n9e命名空间中发现使用POD的IP访问 k8s-man服务是可以的, 但是使用 service 不行

排查过程

进入 k8s-man所在的Node节点.
执行 iptables -L | grep k8s-man
找到

MARK       tcp  --  anywhere             anywhere             /* cali:vXxAzmXgtXdiHYG_ */ /* Policy n9e/knp.default.k8s-man ingress */ match-set cali40s:SgNpHWMUr8ifdpNh8A29AuF src MARK or 0x10000

确认使用的式cali40s:SgNpHWMUr8ifdpNh8A29AuF 这个ipset
执行 ipset list cali40s:SgNpHWMUr8ifdpNh8A29AuF
得到如下结果:

[root@node3 ~]# ipset list cali40s:SgNpHWMUr8ifdpNh8A29AuF
Name: cali40s:SgNpHWMUr8ifdpNh8A29AuF
Type: hash:net
Revision: 6
Header: family inet hashsize 1024 maxelem 1048576
Size in memory: 888
References: 1
Number of entries: 8
Members:
172.16.139.213
172.16.143.67
172.16.178.43
172.16.178.37
172.16.239.190
172.16.85.24
172.16.46.157
172.16.139.237

发现对应的Ip是n9e 命名空间下pod的IP。

猜测是经过service 后发生了NAT转换,Ip成了源POD所在节点的的容器IP端。
修改网络策略如下, 172.16.239.0/24 和 172.16.46.0/24 是源POD节点的容器网段:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:name: k8s-mannamespace: n9elabels:app: k8s-manversion: v1
spec:podSelector:matchLabels:app: k8s-manversion: v1ingress:- ports:- protocol: TCPfrom:- namespaceSelector:matchLabels:project: n9e- ipBlock:cidr: 172.16.239.0/24- ipBlock:cidr: 172.16.46.0/24policyTypes:- Ingress

说明通过service访问的话,源IP经过的NAT转换成了源POD所在节点上的容器IP,导致 NetworkPolicy不生效。

相关文章:

  • ubuntu24.04上安装NVIDIA driver+CUDA+cuDNN+Anaconda+Pytorch
  • 计算机视觉最不卷的方向:三维重建学习路线梳理
  • 分布式2(Zookeeper )
  • ubuntu 22.04 wifi网卡配置地址上网
  • OpenHarmony轻量系统--BearPi-Nano开发板网络程序测试
  • 常见排序算法及其java实现
  • Redis缓存穿透、雪崩、击穿的解决方案?
  • 基于OpenCV中的图像拼接方法详解
  • Python----神经网络(《Searching for MobileNetV3》论文概括和MobileNetV3网络)
  • 前端安全:XSS、CSRF 防御与最佳实践
  • 【漫话机器学习系列】259.神经网络参数的初始化(Initialization Of Neural Network Parameters)
  • AI与机器学习深度集成:从设备端能力爆发到开发工具智能化
  • C++笔记-AVL树(包括单旋和双旋等)
  • 比亚迪固态电池突破:王传福的技术哲学与产业重构|创客匠人热点评述
  • 第29节:现代CNN架构-Inception系列模型
  • 深度学习中的查全率与查准率:如何实现有效权衡
  • 在RAG中 如何提高向量搜索的准确性?
  • 视频编解码学习十二之Android疑点
  • openfeign 拦截器实现微服务上下文打通
  • 【机器人】复现 SG-Nav 具身导航 | 零样本对象导航的 在线3D场景图提示
  • 昆明警方重拳打击经济领域违法犯罪:去年抓获905名嫌犯
  • 落实中美经贸高层会谈重要共识,中方调整对美加征关税措施
  • 2025年上海科技节5月17日启动,56家重点实验室和大科学设施将向公众开放
  • 从600名外到跻身大满贯,孙发京:走过的路成就了现在的我
  • 新华时评:中美经贸会谈为全球经济纾压增信
  • 中医的千年传承:网络科学描绘其演化之路|PNAS速递