設定預設 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
值指定當使用者省略 PodSpec
的 enableServiceLinks
欄位時所使用的預設值。請參閱 關於 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"