web-dev-qa-db-ja.com

GKEで入力要求のタイムアウトを構成する方法

現在、GKE(k8s 1.2)でIngressを構成して、アプリケーションのポッドにリクエストを転送しています。長い時間(秒)とアプリケーションからのタイムアウト(504)がかかる可能性のあるリクエストがあります。そうするとき、私が受け取る応答は、私自身の504ではなく、6秒後にGoogleロードバランサーのように見えるものからの502であることがわかります。

私はさまざまなステータスコードと期間を試してみましたが、ちょうど30秒後に、発行されたステータスコードに関係なく、この奇妙な動作を受け取り始めました。

誰かが私がこれを修正する方法の手がかりを持っていますか?この動作を再構成する方法はありますか?

27

GKEで入力を作成する場合、デフォルトの設定では、指定したバックエンドを使用してGLBCHTTPロードバランサーが作成されます。デフォルトでは、アプリケーションが要求を処理するために30秒のタイムアウトで構成されます。

より長いタイムアウトが必要な場合は、Googleクラウドコンソールの HTTPロードバランサー のバックエンドでセットアップした後、これを手動で編集する必要があります。

enter image description here

10

1.11.3-gke.18以降、kubernetesでタイムアウト設定を直接構成できるようになりました。

最初にbackendConfigを追加します。

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: my-bsc-backendconfig
spec:
  timeoutSec: 40

次に、このbackendConfigを使用するために、Serviceに注釈を追加します。

apiVersion: v1
kind: Service
metadata:
  name: my-bsc-service
  labels:
    purpose: bsc-config-demo
  annotations:
    beta.cloud.google.com/backend-config: '{"ports": {"80":"my-bsc-backendconfig"}}'
spec:
  type: NodePort
  selector:
    purpose: bsc-config-demo
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080

そして、ビオラ、入力ロードバランサーのタイムアウトがデフォルトの30秒ではなく40秒になりました。

https://cloud.google.com/kubernetes-engine/docs/how-to/configure-backend-service#creating_a_backendconfig を参照してください

7
Zhe Li