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"