#nginx #kubernetes #nginx-ingress
#nginx #kubernetes #nginx-ingress
Вопрос:
Я попытался изменить значение proxy_timeout по умолчанию (600 секунд) на 3600 секунд для служб tcp в nginx-входе, поддерживаемом k8s.Но это не работает.
Я выполнил модули nginx-controller и получил следующее в 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;
}
я использовал следующую конфигурационную карту и обнаружил, что она не работает.Я все еще получаю тайм-аут в 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"
Кто-нибудь, пожалуйста, помогите мне устранить эту проблему.
Ответ №1:
При использовании этих аннотаций вы должны установить для них числовые (integer) значения. Например:
ingress.kubernetes.io/proxy-stream-timeout: "3600"
вместо:
ingress.kubernetes.io/proxy-stream-timeout: 3600s
Если вам нужна более подробная информация о параметрах тайм-аута, пожалуйста, ознакомьтесь с официальными документами.
Комментарии:
1. спасибо за ответ, тогда я думаю ingress.kubernetes.io/proxy-stream-timeout : «3600s», поскольку он принимает строку в соответствии с документом, который вы упомянули
Ответ №2:
Аннотации не работают в tcp-сервисах для обновления proxy_timeout
параметра в nginx. Вам нужно обновить configmap ingress-nginx-controller
и добавить proxy-stream-timeout: "3600s"
в data
. (Пример ниже)
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"
Ответ №3:
Это неверно. Не в tcp-cm и не в качестве аннотации. Добавьте в качестве данных -> proxy-stream-timeout: 3600 в другую конфигурационную карту.