跳至內容

設定預設 ConfigMap

config-defaults ConfigMap,又稱為預設 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
  • 每個修訂註解鍵: 不適用
  • 可能的值: 整數
  • 預設值: "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 MB 的儲存空間)

範例

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 值指定容器一次可以處理的最大請求數。超過此臨界值的請求會排隊。將值設定為零會停用此節流,並讓 Pod 接收到的所有請求都通過。

  • 全域鍵: 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。

注意

即使設定了此值,使用者仍可選擇 containerConcurrency 的值為零(無限制),除非 allow-container-concurrency-zero 設定為 "false"

  • 全域鍵: container-concurrency-max-limit
  • 每個修訂註解鍵: 不適用
  • 可能的值: 整數
  • 預設值: "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
  • 每個修訂註解鍵: 不適用
  • 可能的值: 布林值
  • 預設值: "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
  • 每個修訂註解鍵: 不適用
  • 可能的值: true|false|default
  • 預設值: "false"

範例

apiVersion:  v1
kind:  ConfigMap
metadata:
  name:  config-defaults
  namespace:  knative-serving
data:
  enable-service-links: "false"

我們使用分析和 Cookie 來了解網站流量。您使用我們網站的相關資訊會與 Google 分享,以達到該目的。了解更多。