我在kubernetes中使用nginx-ingress控制器设置了一个Web应用程序 . 我可以通过Nginx入口控制器公共IP访问我的应用程序 .
对于超过1分钟的请求,我们得到网关连接超时错误(504) . 我通过连接到pod来检查Nginx入口控制器配置,它的connection_timeout值为60s . (问题的根本原因)
我已经尝试将参数更改为更高的值,并且对于长请求它可以正常工作,尽管Nginx入口控制器配置在一段时间后重新加载到默认值 .
我们如何更改/保留Nginx入口控制器配置参数?
感谢任何帮助 . 提前致谢 .
2 回答
nginx入口控制器可通过configmap进行定制 .
您可以通过将参数
--configmap
传递给入口控制器来实现此目的 . 资料来源:https://github.com/kubernetes/ingress/tree/master/controllers/nginx#command-line-arguments在
kube-system
命名空间中,创建一个configmap,命名为nginx-load-balancer-conf
,然后编辑入口控制器的复制控制器或守护进程并添加--configmap=nginx-load-balancer-conf
参数 .以下是configmap的外观示例:
如果您要将上述内容保存到名为
nginx-load-balancer-conf.yaml
的文件中,请按以下步骤创建它configmap的有效配置参数:https://github.com/kubernetes/ingress/blob/master/controllers/nginx/configuration.md#allowed-parameters-in-configuration-configmap
资料来源:https://github.com/kubernetes/ingress/blob/master/examples/customization/custom-configuration/nginx/README.md
我在Mac上运行Minikube
v0.28.0
并且能够使用以下命令修改nginx控制器的配置映射(使用加载项启动):通过添加/删除属性来编辑文件,然后保存/退出 . 如果您为nginx-controller pod添加日志,您将看到配置映射动态更新(无需重新启动pod):