Centos 7 中 firewall 配置的rich rules 对 k8s 服务不起作用

背景和需求
  1. 在centos 7 系统中,部署了 k8s 的应用服务
  2. 系统开启了防火墙firewall,并已经开放20080 端口
  3. 某个pod对外暴露的端口为20080,现在通过特定的IP+20080 是可以请求到网页服务
  4. 现在有个需求:不允许特定的一个IP(比如:192.168.77.67)+ 20080 访问网页
问题遇到的现象和发生背景
  1. 通过在firewall 中设定rich rules,

img

其中20081 为部署的k8s 中的一个应用

50001 为部署的springboot 项目,在服务器中使用java -jar 直接启动的。

运行结果及报错内容
  1. 通过设定之后,现在http://192.168.77.67:50001 不能访问网页 -这是预期的
  2. https://192.168.77.67:20081 依旧可以访问到页面 - 这不是预期的

[root@k8s-node1 ~]# netstat -tlnp | grep :50001 -可以实现通过配置rich-rule实现拦截特定IP
tcp6 0 0 :::50001 :::* LISTEN 15631/java
[root@k8s-node1 ~]# netstat -tlnp | grep :20081 -不可以实现通过配置rich-rule实现拦截特定IP
tcp6 0 0 :::20081 :::* LISTEN 27552/kube-proxy

问题

为什么通过firewall 设定rich rules之后, 拦截了通过springboot 启动的项目,但是为什么没有拦截k8s 启动的服务?

是要firewall 禁止一个ip来访问?

有没试过抓包来看看情况如何?