コンテンツへスキップ

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 の値は、ユーザーが containerConcurrency0 (無制限) を指定できるかどうかを決定します。

  • グローバルキー: 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 の値は、ユーザーによって省略された場合の PodSpecenableServiceLinks フィールドに使用されるデフォルト値を指定します。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"

当サイトでは、サイトのトラフィックを把握するために分析と Cookie を使用しています。当サイトの利用に関する情報は、その目的のために Google と共有されます。詳しくはこちら