如何在Nginx Ingress Controller中禁用TLS?恢复HTTP访问遇阻
以下是排查和修复的具体步骤:
确认Ingress资源的TLS配置已完全移除
执行kubectl get ingress <你的Ingress名称> -o yaml查看资源配置,确保spec字段下没有tls块。如果还存在,运行kubectl edit ingress <你的Ingress名称>,删除整个tls节点后保存退出。检查并禁用HTTPS强制重定向注解
Nginx Ingress默认可能会开启HTTPS重定向,即使你删除了TLS配置。查看Ingress的注解:kubectl get ingress <你的Ingress名称> -o yaml | grep annotations,如果发现nginx.ingress.kubernetes.io/ssl-redirect: "true",将其修改为"false",或者直接删除该注解。重启Ingress Controller Pod以加载新配置
有时候配置变更不会自动触发Ingress Controller的重载,手动删除Pod让它重启:kubectl delete pod -n <Ingress控制器所在命名空间> <Ingress控制器Pod名称>。也可以通过kubectl logs -n <Ingress控制器所在命名空间> <Ingress控制器Pod名称>查看日志,确认配置已成功更新。清理残留的TLS Secret(可选)
如果不再需要之前创建的my-tls-secret,执行kubectl delete secret my-tls-secret删除,避免后续可能的配置干扰。验证HTTP访问
用curl http://localhost/<你的服务路径>测试,或者直接在浏览器访问HTTP地址。如果仍有问题,检查Ingress的rules配置是否正确关联了后端服务和HTTP路径。
内容的提问来源于stack exchange,提问作者Rohit

