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

其中20081 为部署的k8s 中的一个应用
50001 为部署的springboot 项目,在服务器中使用java -jar 直接启动的。
运行结果及报错内容
- 通过设定之后,现在http://192.168.77.67:50001 不能访问网页 -这是预期的
- 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 启动的服务?