注意:下面讲解,都是用的截图,在文章的最后,有个用的yaml文件汇总,可直接粘贴复制使用~
首先我按照平时部署nginx的思路,在nginx配置文件中添加访问deny all,如下图所示(注意:我的配置文件在k8s中写入了configmap中,所以直接在configmap中修改添加了):
修改完之后,访问结果如如图所示:
(30012端口是我给nginx创建的一个service-nodeport)
可以看到,仍能正常访问到,所以在k8s中使用deny all这种设置不起作用
可能的原因:
在 Kubernetes 中,Nginx 配置是由 Ingress Controller 管理的。Ingress Controller 负责将请求转发到相应的后端服务,并根据 Ingress 资源中的规则进行路由。因此,即使你在 Nginx 配置文件中设置了 deny all;
,它不会直接影响到访问性。
要实现拒绝所有用户访问的效果,需要结合 Kubernetes 的 Ingress 资源来设置适当的规则。
因此在原有配置的基础上,我又添加了一个ingress资源,如图所示:
添加ingresszi资源后,访问结果如下(结果:成功拒绝访问):