Explicit request-timeout not set

ID

api_server_request_timeout

Severity

low

Vendor

Kubernetes

Resource

kube-apiserver

Tags

reachable

Description

--request-timeout establish the length of time to wait before giving up on a single server request

By default, it is set to 1 minute, but it is recommended to make this limit explicit as appropriate.

Examples

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    component: kube-apiserver
    tier: control-plane
  name: weak
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-apiserver (1)
    - --authorization-mode=RBAC,Node
    image: gcr.io/google_containers/kube-apiserver-amd64:v1.6.0
1 Default --request-timeout is 60 seconds.

Mitigation / Fix

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    component: kube-apiserver
    tier: control-plane
  name: good
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-apiserver
    - --authorization-mode=RBAC,Node
    - --request-timeout=1m30s (1)
    image: gcr.io/<image>
1 Increase `--request-timeout' when requests exceed the default 60 seconds or decrease to avoid resource exhaustion.