kubernetes - Knative服务http超时设置

标签 kubernetes knative knative-serving

需要哪些设置来确保队列代理不会在 60 秒内超时? 我的 http 请求在 60 秒后超时并且队列代理有这些错误消息

{"level":"error","ts":"2020-02-27T11:44:58.886Z","logger":"queueproxy","caller":"network/error_handler.go:31","msg":"error reverse proxying request; sockstat: sockets: used 375\nTCP: inuse 5 orphan 1 tw 95 alloc 54 mem 7\nUDP: inuse 0 mem 3\nUDPLITE: inuse 0\nRAW: inuse 0\nFRAG: inuse 0 memory 0\n","commit":"96cffff","knative.dev/key":"playground-flows-master/sleeper-service-pclb2","knative.dev/pod":"sleeper-service-pclb2-deployment-6bc5479789-gzmcj","error":"context canceled","stacktrace":"knative.dev/serving/pkg/network.ErrorHandler.func1\n\t/home/prow/go/src/knative.dev/serving/pkg/network/error_handler.go:31\nnet/http/httputil.(*ReverseProxy).ServeHTTP\n\t/usr/local/go/src/net/http/httputil/reverseproxy.go:251\nknative.dev/serving/pkg/queue.(*requestMetricHandler).ServeHTTP\n\t/home/prow/go/src/knative.dev/serving/pkg/queue/request_metric.go:71\nmain.handler.func1\n\t/home/prow/go/src/knative.dev/serving/cmd/queue/main.go:197\nnet/http.HandlerFunc.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2007\nknative.dev/serving/pkg/queue.ForwardedShimHandler.func1\n\t/home/prow/go/src/knative.dev/serving/pkg/queue/forwarded_shim.go:100\nnet/http.HandlerFunc.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2007\nknative.dev/serving/pkg/queue.(*timeoutHandler).ServeHTTP.func1\n\t/home/prow/go/src/knative.dev/serving/pkg/queue/timeout.go:80"}

版本和设置如下。

Knative 版本 v0.11.0

Istio 版本:1.3.5

本地服务:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: sleeper-service
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/maxScale: "1"
    spec:
      containerConcurrency: 0
      containers:
      - env:
        - name: MILLISECONDS
          value: "330000"
        image: <image>
        name: user-container
        ports:
        - containerPort: 8000
          name: http1
          protocol: TCP
        readinessProbe:
          successThreshold: 1
          tcpSocket:
            port: 0
        resources: {}
      timeoutSeconds: 500
  traffic:
  - latestRevision: true
    percent: 100

当 maxScaling 设置为 1 且每个请求花费的时间超过 60 秒时,队列中的其他请求将超时。

最佳答案

这很可能是客户端超时。查看您的服务,如果根本没有发送响应数据,它将在 500 秒后在内部超时。

"error":"context canceled"

通常是赠品。

关于kubernetes - Knative服务http超时设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60452769/

相关文章:

amazon-web-services - Pod 重新调度时,AWS EBS/GCP PersistentDisk 能否拒绝 ReadWriteOnce PVC?

kubernetes - kaniko sh : sleep: not found

amazon-web-services - k8s从集群获取资源花费太多时间

kubernetes - 如何在 Knative 中设置 MaxRevisionTimeoutSeconds?

kubernetes - 在生产中使用 kubeadm 有什么风险?

linux - Knative 设置的确切系统要求是什么?为什么基本设置指南导致我资源耗尽?

docker - KNative Service无法从Docker HUB下载Hello World镜像

elasticsearch - Knative日志记录:日志存储-Kibana无法获取映射

knative - Knative 是否可以始终为每个传入请求启动 pod?

kubernetes - 无法访问 Knative 中的私有(private)注册表