Knativeのリクエストタイムアウト設定を確認

ワークロードに合うリクエスト時間制限を確認してください。

説明

Knative Serviceのspec.template.spec.timeoutSecondsはリクエストのタイムアウトを指定します。省略するとクラスターのrevision-timeout-secondsのデフォルトが適用されるため、省略だけで処理時間が無制限になるわけではありません。

想定される影響

長すぎる制限はリソースの占有を増やし、短すぎる制限は正常なリクエストを中断する場合があります。

対処方法

実際の処理時間とクラスターのデフォルトを確認し、必要に応じてtimeoutSecondsを指定してください。クラスターの上限や、アプリケーション側での処理中止とも整合させてください。

例

デフォルトの使用と、明示的な600秒の設定を比較します。600秒は一律の推奨値ではなく、その時間を許可するクラスターと、その処理時間が必要な処理を前提としています。例示イメージは実際のイメージに置き換えてください。

変更前

yaml
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: dummy
spec:
  template:
    spec:
      containers:
        - name: app
          image: images.my-company.example/app:v4
      containerConcurrency: 100

変更後

yaml
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: dummy
spec:
  template:
    spec:
      containers:
        - name: app
          image: images.my-company.example/app:v4
      containerConcurrency: 100
      timeoutSeconds: 600

参考資料