当前位置: 首页 > 知识库问答 >
问题:

如何更改Kubernetes维护的nginx入口中的默认TCP service proxy\u超时?

羊丰茂
2023-03-14

我尝试将k8s维护的nginx入口中的tcp服务的默认proxy\u超时(600秒)更改为3600秒。但它不起作用。

我已经执行了nginx控制器吊舱,并在nginx.conf.

# TCP services

server {
        preread_by_lua_block {
                ngx.var.proxy_upstream_name="tcp-test-test-db-test-lb-dev-7687";
        }

        listen                  7687;

        proxy_timeout           600s;
        proxy_pass              upstream_balancer;

}

我使用了以下configmap,发现它不工作。我仍然有600秒的超时。

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-nginx
  annotations:
    ingress.kubernetes.io/proxyTimeout: 3600s
    ingress.kubernetes.io/proxy-stream-timeout: 3600s
    ingress.kubernetes.io/proxy-connect-timeout: 3600s
    ingress.kubernetes.io/proxy-read-timeout: 3600s
    ingress.kubernetes.io/proxy-send-timeout: 3600s
    ingress.kubernetes.io/proxy_timeout: 3600s
data:
   7687: "test-test-db/test-lb-dev:7687"
   8687: "test-test-db/test-lb-test:8687"

任何人请帮我把这个问题缩短。

共有3个答案

鲁烨熠
2023-03-14

注释在tcp服务中不适用于更新nginx中的代理超时参数。您需要更新configmap ingress nginx控制器,并在数据下添加代理流超时:“3600s”。(以下示例)

apiVersion: v1
kind: ConfigMap
metadata:
  name: ingress-nginx-controller
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
data:
  proxy-connect-timeout: "10"
  proxy-read-timeout: "120"
  proxy-send-timeout: "120"
  proxy-stream-timeout: "3600s"
卫念
2023-03-14

它不正确。不在tcp-cm中,也不作为注释。添加为Data-

萧浩漫
2023-03-14

使用这些注释时,您必须将它们设置为数字(整数)值。例如:

 ingress.kubernetes.io/proxy-stream-timeout: "3600"

而不是:

ingress.kubernetes.io/proxy-stream-timeout: 3600s

如果您需要有关超时选项的更多详细信息,请查看官方文档。

 类似资料:
  • 我在RedHat EC2实例上安装了Minikube v1.3.1以进行一些测试。 由于nginx-ingress-控制器默认使用的端口已经在使用中,我正在尝试在部署中更改它们,但没有结果。有人能建议如何做吗? 如何知道端口已在使用? 当我使用命令kubectl-n kube system get deployment | grep nginx列出系统吊舱时,我得到: nginx入口控制器0/1

  • 我可以启动响应js与默认端口3000.但是,当我将端口自定义为4200,(在package.json中刚刚更改)时,我无法启动reactjs应用程序。

  • 我刚开始用Wildfly8.2开发JAVA EE。我的第一个问题是如何将默认端口8080更改为其他端口? 我发现许多xml文件包含下面的行。

  • 我试图从http客户机向kafka发送一些度量标准,从而探索Kafka-REST。我的客户机本身使用并需要端口8082。我试图将kafka-rest服务的默认端口更改为8082以外的端口,但它似乎不接受我对confluent-1.0/etc/kafka-rest/kafka-rest.properties所做的任何更改 主要是我不确定我是否知道在这个属性文件中设置正确的键。我尝试简单地指定port

  • 我正在使用Yii 2高级应用程序模板,AdminLTE资产包和Gii代码生成器。 以下是我的例子: 我需要更改模板,以便删除“CreateLabTiposMovimentos”按钮(并修改更多内容)。 在Gii创建CRUD后,我删除了每个按钮,但我想更改模板,以便Gii可以自动执行。

  • 问题内容: 如何更改默认的Virtualenvwrapper提示符?默认情况下,使用“ workon <name_of_env>”之类的命令在特定的虚拟环境上工作,会将virtualenv的名称添加到提示中。如果您未使用默认命令提示符,则此方法可能效果不佳。 问题答案: 默认情况下,当使用命令“ workon ”切换到virtualenv时,virtualenvwrapper将在字符串(( ))前