説明
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