Defaults ConfigMapの設定¶
Defaults ConfigMapとして知られるconfig-defaults
ConfigMapには、Knativeがリソースのデフォルト値を設定する方法を決定する設定が含まれています。
このConfigMapはknative-serving
名前空間にあります。
次のコマンドを実行することで、現在のconfig-defaults
ConfigMapを表示できます。
kubectl get configmap -n knative-serving config-defaults -oyaml
config-defaults ConfigMapの例¶
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-timeout-seconds: "300"
max-revision-timeout-seconds: "600"
revision-response-start-timeout-seconds: "300"
revision-idle-timeout-seconds: "0" # infinite
revision-cpu-request: "400m"
revision-memory-request: "100M"
revision-ephemeral-storage-request: "500M"
revision-cpu-limit: "1000m"
revision-memory-limit: "200M"
revision-ephemeral-storage-limit: "750M"
container-name-template: "user-container"
container-concurrency: "0"
container-concurrency-max-limit: "1000"
allow-container-concurrency-zero: "true"
enable-service-links: "false"
各プロパティの説明については、以下を参照してください。
プロパティ¶
リビジョンタイムアウト秒数¶
リビジョンタイムアウト値は、リビジョンのリクエストごとのタイムアウトに使用するデフォルトの秒数を、何も指定されていない場合に使用する秒数を決定します。
- グローバルキー:
revision-timeout-seconds
- リビジョンごとの仕様キー:
timeoutSeconds
- 指定可能な値: 整数
- デフォルト:
"300"
(5分)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-timeout-seconds: "300"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
timeoutSeconds: 300
containers:
- image: ghcr.io/knative/helloworld-go:latest
リビジョンの最大タイムアウト秒数¶
max-revision-timeout-seconds
値は、revision-timeout-seconds
に使用できる最大秒数を決定します。この値は、revision-timeout-seconds
以上である必要があります。省略した場合、システムデフォルトが使用されます(600秒)。
この値を増やす場合は、アクティベーターのterminationGracePeriodSeconds
も、インフライトのリクエストが中断されないように増やす必要があります。
- グローバルキー:
max-revision-timeout-seconds
- リビジョンごとのアノテーションキー: N/A
- 指定可能な値: 整数
- デフォルト:
"600"
(10分)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
max-revision-timeout-seconds: "600"
リビジョンのレスポンス開始タイムアウト秒数¶
リビジョンのレスポンス開始タイムアウト値は、コンテナに配信されたリクエストがネットワークトラフィックの送信を開始するまで、リクエストルーティングレイヤーが待機する最大秒数を決定します。省略した場合、システムデフォルトが使用されます(300秒)。
- グローバルキー:
revision-response-start-timeout-seconds
- リビジョンごとの仕様キー:
responseStartTimeoutSeconds
- 指定可能な値: 整数
- デフォルト:
"300"
(5分)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-response-start-timeout-seconds: "300"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
responseStartTimeoutSeconds: 300
containers:
- image: ghcr.io/knative/helloworld-go:latest
リビジョンのアイドルタイムアウト秒数¶
リビジョンのアイドルタイムアウト値は、ユーザーアプリケーションから何もバイトを受信していないときにリクエストがオープン状態を維持できる最大秒数を決定します。省略した場合、システムデフォルトが使用されます(無限)。
- グローバルキー:
revision-idle-timeout-seconds
- リビジョンごとの仕様キー:
idleTimeoutSeconds
- 指定可能な値: 整数
- デフォルト:
"0"
(無限)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-idle-timeout-seconds: "0"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
idleTimeoutSeconds: 0
containers:
- image: ghcr.io/knative/helloworld-go:latest
リビジョンのCPUリクエスト¶
revision-cpu-request
値は、デフォルトでリビジョンに割り当てられるCPU割り当てを決定します。この値を省略した場合、システムデフォルトが使用されます。このキーは、Knativeではデフォルトで有効になっていません。
- グローバルキー:
revision-cpu-request
- リビジョンごとのアノテーションキー:
cpu
- 指定可能な値: 整数
- デフォルト:
"400m"
(0.4 CPU、または400ミリCPU)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-cpu-request: "400m"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: ghcr.io/knative/helloworld-go:latest
resources:
requests:
cpu: "400m"
リビジョンのメモリーリクエスト¶
revision-memory-request
値は、デフォルトでリビジョンに割り当てられるメモリー割り当てを決定します。この値を省略した場合、システムデフォルトが使用されます。このキーは、Knativeではデフォルトで有効になっていません。
- グローバルキー:
revision-memory-request
- リビジョンごとのアノテーションキー:
memory
- 指定可能な値: 整数
- デフォルト:
"100M"
(100メガバイトのメモリ)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-memory-request: "100M"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: ghcr.io/knative/helloworld-go:latest
resources:
requests:
memory: "100M"
リビジョンのエフェメラルストレージリクエスト¶
revision-ephemeral-storage-request
値は、デフォルトでリビジョンに割り当てられるエフェメラルストレージ割り当てを決定します。この値を省略した場合、システムデフォルトが使用されます。このキーは、Knativeではデフォルトで有効になっていません。
- グローバルキー:
revision-ephemeral-storage-request
- リビジョンごとのアノテーションキー:
ephemeral-storage
- 指定可能な値: 整数
- デフォルト:
"500M"
(500メガバイトのストレージ)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-ephemeral-storage-request: "500M"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: ghcr.io/knative/helloworld-go:latest
resources:
requests:
ephemeral-storage: "500M"
リビジョンのCPU制限¶
revision-cpu-limit
値は、リビジョンのデフォルトのCPU割り当て制限を決定します。この値を省略した場合、システムデフォルトが使用されます。このキーは、Knativeではデフォルトで有効になっていません。
- グローバルキー:
revision-cpu-limit
- リビジョンごとのアノテーションキー:
cpu
- 指定可能な値: 整数
- デフォルト:
"1000m"
(1 CPU、または1000ミリCPU)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-cpu-limit: "1000m"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: ghcr.io/knative/helloworld-go:latest
resources:
requests:
cpu: "1000m"
リビジョンのメモリ制限¶
revision-memory-limit
値は、リビジョンのデフォルトのメモリ割り当て制限を決定します。この値を省略した場合、システムデフォルトが使用されます。このキーは、Knativeではデフォルトで有効になっていません。
- グローバルキー:
revision-memory-limit
- リビジョンごとのアノテーションキー:
memory
- 指定可能な値: 整数
- デフォルト:
"200M"
(200メガバイトのメモリ)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-memory-limit: "200M"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: ghcr.io/knative/helloworld-go:latest
resources:
requests:
memory: "200M"
リビジョンのエフェメラルストレージ制限¶
revision-ephemeral-storage-limit
値は、リビジョンに割り当てられるデフォルトのエフェメラルストレージ制限を決定します。この値を省略した場合、システムデフォルトが使用されます。このキーは、Knativeではデフォルトで有効になっていません。
- グローバルキー:
revision-ephemeral-storage-limit
- リビジョンごとのアノテーションキー:
ephemeral-storage
- 指定可能な値: 整数
- デフォルト:
"750M"
(750メガバイトのストレージ)
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
revision-ephemeral-storage-limit: "750M"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: ghcr.io/knative/helloworld-go:latest
resources:
requests:
ephemeral-storage: "750M"
コンテナ名テンプレート¶
container-name-template
値は、コンテナ名が指定されていない場合に、デフォルトのコンテナ名のテンプレートを提供します。このフィールドはGoテンプレートをサポートしており、囲んでいるサービスまたは構成のObjectMeta
によって提供されるため、{{.Name}}
などの値も有効です。
- グローバルキー:
container-name-template
- リビジョンごとのアノテーションキー:
name
- 指定可能な値: 文字列
- デフォルト:
"user-container"
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
container-name-template: "user-container"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- name: user-container
image: ghcr.io/knative/helloworld-go:latest
コンテナの同時実行数¶
container-concurrency
値は、コンテナが一度に処理できる最大リクエスト数を指定します。このしきい値を超えるリクエストはキューに入れられます。値をゼロに設定すると、このスロットリングが無効になり、ポッドが受信するリクエストをすべて許可します。
- グローバルキー:
container-concurrency
- リビジョンごとの仕様キー:
containerConcurrency
- 指定可能な値: 整数
- デフォルト:
"0"
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
container-concurrency: "0"
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containerConcurrency: 0
コンテナの同時実行数の最大制限¶
container-concurrency-max-limit
設定は、個々のリビジョンの任意に大きな同時実行値、または自動スケーリングのターゲットを無効にします。container-concurrency
のデフォルト設定は、この値以下である必要があります。container-concurrency-max-limit
設定の値は 1 より大きい必要があります。
注記
この設定が有効な場合でも、allow-container-concurrency-zero
が "false"
に設定されていない限り、ユーザーは containerConcurrency
の値をゼロ(無制限)に選択できます。
- グローバルキー:
container-concurrency-max-limit
- リビジョンごとのアノテーションキー: N/A
- 指定可能な値: 整数
- デフォルト:
"1000"
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
container-concurrency-max-limit: "1000"
apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
name: knative-serving
namespace: knative-serving
spec:
config:
defaults:
container-concurrency-max-limit: "1000"
コンテナの同時実行数ゼロを許可する¶
allow-container-concurrency-zero
の値は、ユーザーが containerConcurrency
に 0
(無制限) を指定できるかどうかを決定します。
- グローバルキー:
allow-container-concurrency-zero
- リビジョンごとのアノテーションキー: N/A
- 可能な値: boolean
- デフォルト:
"true"
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
allow-container-concurrency-zero: "true"
サービスリンクの有効化¶
enable-service-links
の値は、ユーザーによって省略された場合の PodSpec
の enableServiceLinks
フィールドに使用されるデフォルト値を指定します。enableServiceLinks
機能に関する Kubernetes のドキュメントは、こちらを参照してください。
これは、(true|false|default) のいずれかの値を取る三状態フラグです。
多数のサービスがある環境では、この値を false
に設定することをお勧めします。詳細については、serving#8498 を参照してください。
- グローバルキー:
enable-service-links
- リビジョンごとのアノテーションキー: N/A
- 可能な値:
true|false|default
- デフォルト:
"false"
例
apiVersion: v1
kind: ConfigMap
metadata:
name: config-defaults
namespace: knative-serving
data:
enable-service-links: "false"